View Source Membrane.MP4.Muxer.ISOM (Membrane MP4 plugin v0.34.2)
Puts payloaded streams into an MPEG-4 container.
Element options
Passed via struct Membrane.MP4.Muxer.ISOM.t/0
fast_start
boolean()
Default value:
false
Generates a container more suitable for streaming by allowing media players to start playback as soon as they start to receive its media data.When set to
true
, the container metadata (moov
atom) will be placed before media data (mdat
atom). The equivalent of FFmpeg's-movflags faststart
option. [IMPORTANT] Due to the structure of MPEG-4 containers, the muxer withfast_start: true
has to be used along withMembrane.File.Sink
or any other sink that can handleMembrane.File.SeekSinkEvent
, since that event is used to insertmoov
box at the beginning of the file.chunk_duration
Time.t()
Default value:
1000000000
Expected duration of each chunk in the resulting MP4 container.Once the total duration of samples received on one of the input pads exceeds that threshold, a chunk containing these samples is flushed. Interleaving chunks belonging to different tracks may have positive impact on performance of media players.
Pads
:input
Accepted formats:
%Membrane.AAC{config: {:esds, _esds}}
%Membrane.H264{stream_structure: {:avc1, _dcr}, alignment: :au}
%Membrane.H265{stream_structure: {_hevc, _dcr}, alignment: :au}
%Membrane.Opus{self_delimiting?: false}
Direction: | :input |
Availability: | :on_request |
Flow control: | :manual |
Demand unit: | :buffers |
:output
Accepted formats:
%RemoteStream{type: :bytestream, content_format: MP4}
Direction: | :output |
Availability: | :always |
Flow control: | :manual |
Demand unit: | nil |
Summary
Types
Struct containing options for Membrane.MP4.Muxer.ISOM
Types
@type t() :: %Membrane.MP4.Muxer.ISOM{ chunk_duration: Membrane.Time.t(), fast_start: boolean() }
Struct containing options for Membrane.MP4.Muxer.ISOM
Functions
@spec options() :: keyword()
Returns description of options available for this module