View Source Membrane.H264.FFmpeg.Parser (Membrane H264 FFmpeg plugin v0.21.4)
Membrane element providing parser for H264 encoded video stream. Uses the parser provided by FFmpeg.
By default, this parser splits the stream into h264 access units,
each of which is a sequence of NAL units corresponding to one
video frame, and equips them with the following metadata entries
under :h264 key:
key_frame?: boolean- determines whether the frame is a h264 I frame.
Setting custom packetization options affects metadata, see alignment
and attach_nalus? options for details.
element-options
Element options
Passed via struct Membrane.H264.FFmpeg.Parser.t/0
framerateH264.framerate_t() | nilDefault value:
nil
Framerate of video stream, seet:Membrane.Caps.Video.H264.framerate_t/0spsanyDefault value:
""
Sequence Parameter Set NAL unit - if absent in the stream, should be provided via this option.ppsanyDefault value:
""
Picture Parameter Set NAL unit - if absent in the stream, should be provided via this option.alignment:au | :nalDefault value:
:au
Stream units carried by each output buffer. Seet:Membrane.Caps.Video.H264.alignment_t.If alignment is
:nal, the following metadata entries are added:type- h264 nalu typenew_access_unit: access_unit_metadata- added whenever the new access unit starts.access_unit_metadatais the metadata that would be merged into the buffer metadata normally (ifalignmentwas:au).end_access_unit: true- added for each NALu that ends an access unit.
attach_nalus?booleanDefault value:
false
Determines whether to attach NAL units list to the metadata whenalignmentoption is set to:au. For details seet:Membrane.Caps.Video.H264.nalu_in_metadata_t/0.skip_until_keyframe?booleanDefault value:
false
Determines whether to drop the stream until the first key frame is received.skip_until_parameters?booleanDefault value:
true
Determines whether to drop the stream until the first set of SPS and PPS is received.
pads
Pads
input
:input
| Availability | :always |
| Caps | :any |
| Demand mode | :auto |
| Demand unit | :buffers |
| Direction | :input |
| Mode | :pull |
| Name | :input |
output
:output
| Availability | :always |
| Caps | Membrane.H264, restrictions:stream_format: :byte_stream |
| Demand mode | :auto |
| Demand unit | :buffers |
| Direction | :output |
| Mode | :pull |
| Name | :output |
Link to this section Summary
Types
Struct containing options for Membrane.H264.FFmpeg.Parser
Functions
Returns pads descriptions for Membrane.H264.FFmpeg.Parser
Returns description of options available for this module
Link to this section Types
@type t() :: %Membrane.H264.FFmpeg.Parser{ alignment: :au | :nal, attach_nalus?: boolean(), framerate: Membrane.H264.framerate_t() | nil, pps: any(), skip_until_keyframe?: boolean(), skip_until_parameters?: boolean(), sps: any() }
Struct containing options for Membrane.H264.FFmpeg.Parser
Link to this section Functions
@spec membrane_pads() :: [{Membrane.Pad.name_t(), Membrane.Pad.description_t()}]
Returns pads descriptions for Membrane.H264.FFmpeg.Parser
@spec options() :: keyword()
Returns description of options available for this module