Powered by AppSignal & Oban Pro
Would you like to see your link here? Contact us

Playing ACC audio from a file

examples/audio.livemd

Playing ACC audio from a file

File.cd(__DIR__)
Logger.configure(level: :error)

Mix.install([
  {:membrane_core, "~> 0.11.2"},
  {:membrane_kino_plugin, path: ".."},
  {:membrane_file_plugin, "~> 0.13.0"},
  {:membrane_aac_plugin, "~> 0.13.0"}
])

Pipeline definition

Input video is loaded from the file and directly played using Kino.Video sink/player.

import Membrane.ChildrenSpec

alias Membrane.{
  File,
  Kino
}

alias Membrane.AAC.Parser
alias Membrane.RemoteControlled, as: RC

input_filepath = "./res/input.aac"
kino = Membrane.Kino.Player.new(audio: true)

structure =
  child(:file_input, %File.Source{location: input_filepath})
  |> child(:parser, Parser)
  |> via_in(:audio)
  |> child(:video_player, %Kino.Player.Sink{kino: kino})

:ok

Playing pipeline

pipeline = RC.Pipeline.start!()
RC.Pipeline.exec_actions(pipeline, spec: structure, playback: :playing)
kino