Membrane.FFmpeg.Transcoder (Membrane FFmpeg Transcoder Plugin v1.2.6)
View SourceTasks as input an unparsed stream and provides on each pad an unparsed, transcoded stream with the desired properties.
Input might be MPEG-TS or FLV but other streaming containers might work as well. If the input stream contains more than 1 video and 1 audio stream, which one will be picked is undefined behaviour.
Pads
:input
Accepted formats:
Membrane.RemoteStream| Direction: | :input |
| Availability: | :always |
:video
Accepted formats:
Membrane.RemoteStream| Direction: | :output |
| Availability: | :on_request |
Pad options:
copyboolean()Default value:
false
If enabled, the stream will not be re-encodedresolution{integer(), integer()}Default value:
{-2, 720}
Resolution of the given output.bitratepos_integer()Default value:
3300000
Maximum bitrateprofileatom()Default value:
:high
H264 Profilecrfpos_integer()Default value:
26presetatom()Default value:
:hightuneatom()Default value:
:zerolatencyfpspos_integer()Default value:
30gop_sizepos_integer()Default value:
60b_framespos_integer()Default value:
3levelString.t()Default value:
"3.1"
:audio
Accepted formats:
Membrane.RemoteStream| Direction: | :output |
| Availability: | :on_request |
Pad options:
copyboolean()Default value:
false
If enabled, the stream will not be re-encodedbitratepos_integer()Default value:
128000
Maximum bitratesample_ratepos_integer()Default value:
48000
Summary
Types
@type audio_pad_opts() :: [ copy: boolean(), bitrate: pos_integer(), sample_rate: pos_integer() ]
Options for pad :audio
@type video_pad_opts() :: [ copy: boolean(), resolution: {integer(), integer()}, bitrate: pos_integer(), profile: atom(), crf: pos_integer(), preset: atom(), tune: atom(), fps: pos_integer(), gop_size: pos_integer(), b_frames: pos_integer(), level: String.t() ]
Options for pad :video