rfc-8860

Sending Multiple Types of Media in a Single RTP Session

M. Westerlund, C. Perkins, J. Lennox
date2021-01 streamIETF areawit wgavtcore statusPROPOSED STANDARD pages15 canonicalhttps://www.rfc-editor.org/rfc/rfc8860 doi10.17487/RFC8860
This document specifies how an RTP session can contain RTP streams with media from multiple media types such as audio, video, and text. This has been restricted by the RTP specifications (RFCs 3550 and 3551), and thus this document updates RFCs 3550 and 3551 to enable this behaviour for applications that satisfy the applicability for using multiple media types in a single RTP session.

updates

Extracted elements (23)

design-rationale §4

Applications requiring significantly different network QoS or RTCP configuration for different streams are better served by separate RTP sessions; this specification is only applicable when all media streams can be treated equally at the network layer.

rtp, realtime, qos

design-rationale §3

RTP was originally restricted to single media types per session because RTCP timing rules assume all media flows in a session have broadly similar reporting requirements; mixing audio and video can result in either excessive or insufficient RTCP for some flows depending on configuration.

rtp, realtime

design-rationale §3

The motivation for multiplexing multiple media types into a single RTP session is to reduce transport-layer flows, which decreases setup delay, middlebox state consumption, and risk of flow establishment failure in NAT/firewall-heavy environments.

rtp, realtime, nat

design-rationale §5.3

The per-SSRC media type restriction exists because each SSRC has its own sequence number and timestamp spaces; allowing media type changes would make packet loss detection impossible and clock rate determination ambiguous for a given SSRC.

rtp, realtime

interoperability-note §4

Implementing a gateway that interconnects endpoints using separate RTP sessions per media type with endpoints using a single multi-media-type session is generally not feasible, due to SSRC collision risks and the difficulty of remapping SSRCs across all possible RTCP packet types.

rtp, realtime, webrtc

interoperability-note §6.1

In SSRC-multiplexed retransmission mode (RFC 4588), when multiple original RTP streams are sent in one session, original and retransmission stream association must be done via heuristics or via distinct payload types using the 'apt' parameter.

rtp, realtime

interoperability-note §6.1

Session-multiplexed retransmission mode (RFC 4588) is unaffected by multiple media types in a single session, since each media type uses a different SSRC which is preserved in the retransmission session. SDP grouping uses BUNDLE plus FID grouping, requiring a separate 'm=' line per retransmitted original source.

rtp, realtime

interoperability-note §4

Some RTP/RTCP extensions rely on multiple RTP sessions or are specific to a single media type and cannot be used when multiple media types are combined in a single session; applications must avoid such extensions.

rtp, realtime

interoperability-note §6.2

The ssrc-group 'FEC' semantic from RFC 5576 cannot be used with generic FEC (RFC 5109/2733) in a multi-media-type session, because generic FEC requires the repair packets to share the same SSRC as the source packets being protected.

rtp, realtime

interoperability-note §4

This specification is not compatible with unmodified RFC 3550 endpoints; use requires signalling and mutual agreement by all participants. Declarative signalling may attempt to enforce this, but solutions lacking feature negotiation may still encounter compatibility failures.

rtp, realtime

interoperability-note §6.3

When using redundant audio encoding (RFC 2198) with generic FEC in a multi-media-type session, each media type requires a distinct payload type for its FEC stream (e.g., audio/ulpfec and text/ulpfec separately), which can rapidly exhaust the 7-bit RTP payload type space.

rtp, realtime

normative-requirement §5.3 MUST NOT

An SSRC in an RTP session MUST NOT change its media type during its lifetime. It can change between different formats of the same media type (e.g., audio codecs), but cannot switch from audio to video.

rtp, realtime, webrtc

normative-requirement §5.3 MUST

Different SSRCs MUST be used for different media sources when multiple media types are configured in a single RTP session, mirroring the requirement for multiple sources of the same media type.

rtp, realtime, webrtc

normative-requirement §6.2 RECOMMENDED

For generic FEC sent as a separate stream, it is RECOMMENDED to use the 'application/ulpfec' or 'application/parityfec' media type rather than media-specific payload format names, to avoid unnecessary payload type consumption.

rtp, realtime

normative-requirement §5.1 MUST NOT

Payload types of different media types SHALL NOT be multiplexed within a single RTP session unless RFC 8860 is used and the application conforms to its applicability constraints (updating RFC 3551).

rtp, realtime

normative-requirement §5.1 SHOULD NOT

Separate audio and video media sources SHOULD NOT be carried in a single RTP session unless the guidelines of RFC 8860 are followed (updating RFC 3550's prohibition).

rtp, realtime, webrtc

normative-requirement §5.3 MUST

The RTP payload type MUST be unique across all payload configurations independent of media type within an RTP session carrying multiple media types.

rtp, realtime

normative-requirement §5.4 MUST

When sending multiple types of media with different rates in a single RTP session, endpoints MUST follow the RTCP guidelines in Section 7 of RFC 8108.

rtp, realtime

protocol-element §5.2

RTP demultiplexing within a multi-media-type session proceeds by SSRC first (identifying the RTP stream), then payload type is used solely to select the appropriate media decoder—payload type is never used to distinguish RTP streams.

rtp, realtime

protocol-element §7

Signalling for multi-media-type RTP sessions must ensure: (1) all participants are aware of the multi-media-type nature, (2) payload type values are globally unique across all media types in the session, (3) session-level RTCP and transport parameters are consistent, and (4) RTP/RTCP functions are reused rather than duplicated.

rtp, realtime, webrtc

protocol-element §7

When using SDP signalling to establish a single RTP session with multiple media types, the BUNDLE extension (RFC 8843) is the designated mechanism.

rtp, realtime, webrtc

security-consideration §8

RTP provides strong security mechanisms applicable to multi-media-type sessions (RFC 7201, RFC 7202), but implementors must verify that the chosen security mechanism is compatible with all media types present in the session.

rtp, realtime, security

security-consideration §8

Sending multiple media types in a single RTP session generally requires all media to use the same security mechanism. When different media types have different security requirements, separate RTP sessions may be necessary, at the cost of increased resource usage and setup time.

rtp, realtime, security