RTP Payload Format for Elementary Streams with MPEG Surround Multi-Channel Audio
updates
- rfc-3640 — RTP Payload Format for Transport of MPEG-4 Elementary Streams
Extracted elements (22)
MPEG Surround (SAC) enables N-channel audio reconstruction from M < N transmitted channels plus control data, where M is typically mono or stereo. This design ensures backwards compatibility: legacy stereo decoders ignore the spatial data and play back the downmix without quality degradation, while MPEG-Surround-enabled decoders deliver full multi-channel audio.
Two transport modes are defined: embedding SpatialFrame()s inside AAC payloads via extension_payload() (Section 4.1), and transmitting MPEG Surround as a separate elementary stream alongside the downmix (Section 4.2). The embedded mode reuses existing RFC 3640 transport without a new mode; the separate stream mode is required when high-bitrate applications exceed the AAC decoder buffer limit.
If HE AAC is used as the coding scheme for the downmix, the RTP clock-rate of the downmix MAY be the sampling rate of the AAC core, meaning the clock-rate of the MPEG Surround elementary stream is an integer multiple of the downmix stream's clock-rate.
Any SpatialSpecificConfig (SSC) present in a SacDataFrame() MUST be identical to the SSC conveyed via SDP for that stream.
Because separate RTP streams have different random RTP timestamp offsets, RTCP MUST be used to synchronize the coded downmix audio data and the MPEG Surround elementary stream.
For high-bitrate applications where the AU size exceeds the AAC decoder buffer limit defined in ISO/IEC 14496-3, all MPEG Surround data MUST be placed in a separate elementary stream as defined in Section 4.2.
In MPS-hbr mode, the parameters sizeLength (fixed value 13), indexLength (fixed value 3), and indexDeltaLength (fixed value 3) MUST be present with those fixed values. maxDisplacement MUST be present when interleaving. The fixed AU duration MUST be signaled by constantDuration.
In MPS-lbr mode, the parameters sizeLength (fixed value 6), indexLength (fixed value 2), and indexDeltaLength (fixed value 2) MUST be present with those fixed values. The parameter maxDisplacement MUST be present when interleaving. The fixed AU duration MUST be signaled by the constantDuration parameter.
The media clocks of the MPEG Surround elementary stream and the downmix stream SHALL operate in the same clock domain (derived from a common clock) and MUST NOT drift. RTCP sender reports MUST indicate that stream timestamps are not drifting.
The mode signaled and used for an MPEG Surround elementary stream MUST be either MPS-hbr or MPS-lbr. MPS-hbr SHALL be used when the frame size may exceed 63 bytes, e.g., when high-bitrate residual coding is in use.
The optional parameters MPS-profile-level-id and MPS-config are defined for AAC-hbr and AAC-lbr modes only and SHALL NOT be used for the MPS-hbr and MPS-lbr modes.
The sampling rate of the MPEG Surround signal and the decoded downmix signal MUST be identical.
When using the embedded mode (SpatialFrame()s inside AAC payloads), either the AAC-lbr or AAC-hbr mode SHOULD be used, and the additional Media Type parameters defined in Section 5.1 SHOULD be present.
MPS-hbr mode (mode=MPS-hbr) supports transport of one fragment of an AU, one complete AU, or several complete AUs, each consisting of a single MPEG Surround SpatialFrame(). Maximum SpatialFrame() size is 8191 bytes. Receivers MUST support de-interleaving.
MPS-lbr mode (mode=MPS-lbr) supports transport of one or more complete Access Units each consisting of a single MPEG Surround SpatialFrame(). Maximum SpatialFrame() size is 63 bytes. Fragmentation MUST NOT be used; receivers MUST support de-interleaving.
The MPS-config parameter carries a hexadecimal representation of the AudioSpecificConfig (ASC) for MPEG Surround, mapped MSB-first. The AOT in this ASC SHALL have value 30, and the SSC inside the ASC MUST have sacPayloadEmbedding set to 1 (for embedded mode).
The MPS-profile-level-id parameter carries a decimal representation of the MPEG Surround Profile and Level Indication as defined in ISO/IEC 14496-3. It MUST be used in capability exchange or session set-up to indicate the required decoder capability.
This memo registers two new mode values — 'MPS-hbr' and 'MPS-lbr' — for the 'mode' parameter of the 'audio/mpeg4-generic' media subtype in the IANA repository defined by RFC 3640, to support MPEG Surround elementary streams.
RTP packets carrying this payload are subject to confidentiality, integrity, and source authenticity requirements. Confidentiality is achieved by encrypting the RTP payload; integrity and source authentication require a cryptographic mechanism. SRTP is recommended where suitable; IPsec and TLS (RTP over TCP) are noted as alternatives.
The AAC extension_payload() mechanism used to embed MPEG Surround data creates a covert channel: extra data is gracefully skipped by decoders that do not support it and could be used to transmit unauthorized data inside an otherwise valid stream.
In MPS-hbr mode, the 2-octet AU-header encodes the size of each AAC frame as 13 bits and 3 bits of index information (AU-Index or AU-Index-delta). Each AU-Index field MUST be coded with value 0. The AU Header Section MUST be preceded by the 16-bit AU-headers-length field. The Auxiliary Section MUST be empty.
In MPS-lbr mode, the 1-octet AU-header encodes the size of each AAC frame as 6 bits and 2 bits of index information. The AU Header Section MUST be preceded by the 16-bit AU-headers-length field. The Auxiliary Section MUST be empty.