Membrane.MPEG.TS.Muxer (Membrane MPEG.TS Plugin v2.3.12)

View Source

Experimental MPEG-TS Muxer. Supports 1 program with AAC and H264 in it only for now.

Inputs must be attached before the element enters the playing state. Audio&Video are going to be interleaved by their timing.

Each buffer is going to end in its own PES packet, hence NALu units must be grouped accordingly, as well as ADTS AAC frames.

Pads

:input

Accepted formats:

_any
Direction::input
Availability::on_request
Flow control::auto

Pad options:

  • stream_type

    atom() | nil

    Default value: nil
    Each input is going to become a stream in the PMT with this assigned type. See MPEG.TS.PMT.

  • pid

    pos_integer() | nil

    Default value: nil
    Allows to specify the PID in which this stream should be muxed.

  • wait_on_buffers?

    boolean()

    Default value: true
    Block muxer until a buffer on this pad arrives.

  • pcr?

    boolean()

    Default value: false
    Mark this stream as the PCR (Program Clock Reference) stream. This sets the stream's PID as pcr_pid in the PMT and embeds PCR values in the adaptation field of packets. Typically used for video streams.

:output

Accepted formats:

Membrane.RemoteStream
Direction::output
Availability::always
Flow control::auto

Summary

Types

Options for pad :input

Types

input_pad_opts()

@type input_pad_opts() :: [
  stream_type: atom() | nil,
  pid: pos_integer() | nil,
  wait_on_buffers?: boolean(),
  pcr?: boolean()
]

Options for pad :input