Membrane Element: H264 v0.4.1 Membrane.Element.FFmpeg.H264.Parser View Source

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

Passed via struct Membrane.Element.FFmpeg.H264.Parser.t/0

  • framerate

    Default value: {0, 1} Framerate of video stream, see Membrane.Caps.Video.H264.framerate_t/0

  • sps

    Default value: "" Sequence Parameter Set NAL unit - if absent in the stream, should be provided via this option.

  • pps

    Default value: "" Picture Parameter Set NAL unit - if absent in the stream, should be provided via this option.

  • alignment

    Default value: :au Stream units carried by each output buffer. See t:Membrane.Caps.Video.H264.alignment_t. If alignment is :nal, the following metadata entries are added:

    • type - h264 nalu type
    • new_access_unit: access_unit_metadata - added whenever the new access unit starts. access_unit_metadata is the metadata that would be merged into the buffer metadata normally (if alignment was :au).
  • attach_nalus?

    Default value: false Determines whether to attach NAL units list to the metadata when alignment option is set to :au. For details see Membrane.Caps.Video.H264.nalu_in_metadata_t/0.

Pads

:input

Availability:always
Bin?false
Caps:any
Demand unit:buffers
Direction:input
Mode:pull
Name:input

:output

Availability:always
Bin?false
CapsMembrane.Caps.Video.H264, restrictions:<br />&nbsp;&nbsp;stream_format: :byte_stream
Direction:output
Mode:pull
Name:output

Link to this section Summary

Types

t()

Struct containing options for Membrane.Element.FFmpeg.H264.Parser

Functions

Returns description of options available for this module

Link to this section Types

Specs

t() :: %Membrane.Element.FFmpeg.H264.Parser{
  alignment: :au | :nal,
  attach_nalus?: boolean(),
  framerate: Membrane.Caps.Video.H264.framerate_t(),
  pps: any(),
  sps: any()
}

Struct containing options for Membrane.Element.FFmpeg.H264.Parser

Link to this section Functions

Specs

membrane_pads() :: [{Membrane.Pad.name_t(), Membrane.Pad.description_t()}]

Returns pads descriptions for Membrane.Element.FFmpeg.H264.Parser

Specs

options() :: keyword()

Returns description of options available for this module