View Source Membrane.RTP.Muxer (Membrane RTP plugin v0.30.0)

Element that combines multiple streams into a single RTP stream.

Each new input stream is assigned a unique SSRC that the packets transporting this stream will have. When a new pad is conneted, it's required to pass it options sufficient to resolve what payload_type and clock_rate should be assumed. Timestamps are calculated based on assumed clock_rate.

Pads

:input

Accepted formats:

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

Pad options:

  • ssrc

    RTP.ssrc() | :random

    Default value: :random
    SSRC that this stream will be assigned. If not present, a random free value will be assigned.

  • payload_type

    RTP.payload_type() | nil

    Default value: nil
    Payload type of the stream. If not provided, determined from :encoding.

  • encoding

    RTP.encoding_name() | nil

    Default value: nil
    Encoding name of the stream. Used for determining payload_type, it it wasn't provided.

  • clock_rate

    non_neg_integer() | nil

    Default value: nil
    Clock rate to use. If not provided, determined from :payload_type.

:output

Accepted formats:

%RemoteStream{type: :packetized, content_format: RTP}
Direction::output
Availability::always
Flow control::auto

Summary

Types

Options for pad :input

Types

input_pad_opts()

@type input_pad_opts() :: [
  ssrc: Membrane.RTP.ssrc() | :random,
  payload_type: Membrane.RTP.payload_type() | nil,
  encoding: Membrane.RTP.encoding_name() | nil,
  clock_rate: non_neg_integer() | nil
]

Options for pad :input