The Real-time Transport Protocol (RTP) specifies a general-purpose data format and network protocol for transmitting digital media streams on Internet Protocol (IP) networks. The details of media encoding, such as signal sampling rate, frame size and timing, are specified in an RTP payload format. The format parameters of the RTP payload are typically communicated between transmission endpoints with the Session Description Protocol (SDP), but other protocols, such as the Extensible Messaging and Presence Protocol (XMPP) may be used.
RFC 3551, entitled RTP Profile for Audio and Video (RTP/AVP), specifies the technical parameters of payload formats for audio and video streams.
The standard also describes the process of registering new payload types with IANA; additional payload formats and payload types are defined in the following specifications:
Payload identifiers 96–127 are used for payloads defined dynamically during a session. It is recommended to dynamically assign port numbers, although port numbers 5004 and 5005 have been registered for use of the profile when a dynamically assigned port is not required.
Applications should always support PCMU (payload type 0); previously, DVI4 (payload type 5) was also recommended, but this was removed in 2013 by RFC 7007.
Payload type (PT) | Name | Type | No. of channels | Clock rate (Hz) [note 1] | Frame size (byte) | Default packet interval (ms) | Description | References |
---|---|---|---|---|---|---|---|---|
0 | PCMU | audio | 1 | 8000 | any | 20 | ITU-T G.711 PCM μ-Law audio 64 kbit/s | RFC 3551 |
1 | reserved (previously FS-1016 CELP) | audio | 1 | 8000 | reserved, previously FS-1016 CELP audio 4.8 kbit/s | RFC 3551, previously RFC 1890 | ||
2 | reserved (previously G721 or G726-32) | audio | 1 | 8000 | reserved, previously ITU-T G.721 ADPCM audio 32 kbit/s or ITU-T G.726 audio 32 kbit/s | RFC 3551, previously RFC 1890 | ||
3 | GSM | audio | 1 | 8000 | 20 | 20 | European GSM Full Rate audio 13 kbit/s (GSM 06.10) | RFC 3551 |
4 | G723 | audio | 1 | 8000 | 30 | 30 | ITU-T G.723.1 audio | RFC 3551 |
5 | DVI4 | audio | 1 | 8000 | any | 20 | IMA ADPCM audio 32 kbit/s | RFC 3551 |
6 | DVI4 | audio | 1 | 16000 | any | 20 | IMA ADPCM audio 64 kbit/s | RFC 3551 |
7 | LPC | audio | 1 | 8000 | any | 20 | Experimental Linear Predictive Coding audio 5.6 kbit/s | RFC 3551 |
8 | PCMA | audio | 1 | 8000 | any | 20 | ITU-T G.711 PCM A-Law audio 64 kbit/s | RFC 3551 |
9 | G722 | audio | 1 | 8000 [note 2] | any | 20 | ITU-T G.722 audio 64 kbit/s | RFC 3551 - Page 14 |
10 | L16 | audio | 2 | 44100 | any | 20 | Linear PCM 16-bit Stereo audio 1411.2 kbit/s, [2] [3] [4] uncompressed | RFC 3551, Page 27 |
11 | L16 | audio | 1 | 44100 | any | 20 | Linear PCM 16-bit audio 705.6 kbit/s, uncompressed | RFC 3551, Page 27 |
12 | QCELP | audio | 1 | 8000 | 20 | 20 | Qualcomm Code Excited Linear Prediction | RFC 2658, RFC 3551 |
13 | CN | audio | 1 | 8000 | Comfort noise. Payload type used with audio codecs that do not support comfort noise as part of the codec itself such as G.711, G.722.1, G.722, G.726, G.727, G.728, GSM 06.10, Siren, and RTAudio. | RFC 3389 | ||
14 | MPA | audio | 1, 2 | 90000 | 8–72 | MPEG-1 or MPEG-2 audio only | RFC 3551, RFC 2250 | |
15 | G728 | audio | 1 | 8000 | 2.5 | 20 | ITU-T G.728 audio 16 kbit/s | RFC 3551 |
16 | DVI4 | audio | 1 | 11025 | any | 20 | IMA ADPCM audio 44.1 kbit/s | RFC 3551 |
17 | DVI4 | audio | 1 | 22050 | any | 20 | IMA ADPCM audio 88.2 kbit/s | RFC 3551 |
18 | G729 | audio | 1 | 8000 | 10 | 20 | ITU-T G.729 and G.729a audio 8 kbit/s; Annex B is implied unless the annexb=no parameter is used | RFC 3551, Page 20, RFC 3555, Page 15 |
19 | reserved (previously CN) | audio | reserved, previously comfort noise | RFC 3551 | ||||
25 | CELLB | video | 90000 | Sun CellB video [5] | RFC 2029 | |||
26 | JPEG | video | 90000 | JPEG video | RFC 2435 | |||
28 | nv | video | 90000 | Xerox PARC's Network Video (nv) [6] [7] | RFC 3551, Page 32 | |||
31 | H261 | video | 90000 | ITU-T H.261 video | RFC 4587 | |||
32 | MPV | video | 90000 | MPEG-1 and MPEG-2 video | RFC 2250 | |||
33 | MP2T | audio/video | 90000 | MPEG-2 transport stream | RFC 2250 | |||
34 | H263 | video | 90000 | H.263 video, first version (1996) | RFC 3551, RFC 2190 | |||
72–76 | reserved | reserved because RTCP packet types 200–204 would otherwise be indistinguishable from RTP payload types 72–76 with the marker bit set | RFC 3550, RFC 3551 | |||||
77–95 | unassigned | note that RTCP packet type 207 (XR, Extended Reports) would be indistinguishable from RTP payload types 79 with the marker bit set | RFC 3551, RFC 3611 | |||||
dynamic | H263-1998 | video | 90000 | H.263 video, second version (1998) | RFC 3551, RFC 4629, RFC 2190 | |||
dynamic | H263-2000 | video | 90000 | H.263 video, third version (2000) | RFC 4629 | |||
dynamic (or profile) | H264 AVC | video | 90000 | H.264 video (MPEG-4 Part 10) | RFC 6184, previously RFC 3984 | |||
dynamic (or profile) | H264 SVC | video | 90000 | H.264 video | RFC 6190 | |||
dynamic (or profile) | H265 | video | 90000 | H.265 video (HEVC) | RFC 7798 | |||
dynamic (or profile) | theora | video | 90000 | Theora video | draft-barbato-avt-rtp-theora | |||
dynamic | iLBC | audio | 1 | 8000 | 20, 30 | 20, 30 | Internet low Bitrate Codec 13.33 or 15.2 kbit/s | RFC 3952 |
dynamic | PCMA-WB | audio | 1 | 16000 | 5 | ITU-T G.711.1 A-law | RFC 5391 | |
dynamic | PCMU-WB | audio | 1 | 16000 | 5 | ITU-T G.711.1 μ-law | RFC 5391 | |
dynamic | G718 | audio | 32000 (placeholder) | 20 | ITU-T G.718 | draft-ietf-payload-rtp-g718 | ||
dynamic | G719 | audio | (various) | 48000 | 20 | ITU-T G.719 | RFC 5404 | |
dynamic | G7221 | audio | 16000, 32000 | 20 | ITU-T G.722.1 and G.722.1 Annex C | RFC 5577 | ||
dynamic | G726-16 | audio | 1 | 8000 | any | 20 | ITU-T G.726 audio 16 kbit/s | RFC 3551 |
dynamic | G726-24 | audio | 1 | 8000 | any | 20 | ITU-T G.726 audio 24 kbit/s | RFC 3551 |
dynamic | G726-32 | audio | 1 | 8000 | any | 20 | ITU-T G.726 audio 32 kbit/s | RFC 3551 |
dynamic | G726-40 | audio | 1 | 8000 | any | 20 | ITU-T G.726 audio 40 kbit/s | RFC 3551 |
dynamic | G729D | audio | 1 | 8000 | 10 | 20 | ITU-T G.729 Annex D | RFC 3551 |
dynamic | G729E | audio | 1 | 8000 | 10 | 20 | ITU-T G.729 Annex E | RFC 3551 |
dynamic | G7291 | audio | 16000 | 20 | ITU-T G.729.1 | RFC 4749 | ||
dynamic | GSM-EFR | audio | 1 | 8000 | 20 | 20 | ITU-T GSM-EFR (GSM 06.60) | RFC 3551 |
dynamic | GSM-HR-08 | audio | 1 | 8000 | 20 | ITU-T GSM-HR (GSM 06.20) | RFC 5993 | |
dynamic (or profile) | AMR | audio | (various) | 8000 | 20 | Adaptive Multi-Rate audio | RFC 4867 | |
dynamic (or profile) | AMR-WB | audio | (various) | 16000 | 20 | Adaptive Multi-Rate Wideband audio (ITU-T G.722.2) | RFC 4867 | |
dynamic (or profile) | AMR-WB+ | audio | 1, 2 or omit | 72000 | 13.3–40 | Extended Adaptive Multi Rate – WideBand audio | RFC 4352 | |
dynamic (or profile) | vorbis | audio | (various) | (various) | Vorbis audio | RFC 5215 | ||
dynamic (or profile) | opus | audio | 1, 2 | 48000 [note 3] | 2.5–60 | 20 | Opus audio | RFC 7587 |
dynamic (or profile) | speex | audio | 1 | 8000, 16000, 32000 | 20 | Speex audio | RFC 5574 | |
dynamic | mpa-robust | audio | 1, 2 | 90000 | 24–72 | Loss-Tolerant MP3 audio | RFC 5219 (previously RFC 3119) | |
dynamic (or profile) | MP4A-LATM | audio | 90000 or others | MPEG-4 Audio (includes AAC) | RFC 6416 (previously RFC 3016) | |||
dynamic (or profile) | MP4V-ES | video | 90000 or others | MPEG-4 Visual | RFC 6416 (previously RFC 3016) | |||
dynamic (or profile) | mpeg4-generic | audio/video | 90000 or other | MPEG-4 Elementary Streams | RFC 3640 | |||
dynamic | VP8 | video | 90000 | VP8 video | RFC 7741 | |||
dynamic | VP9 | video | 90000 | VP9 video | draft-ietf-payload-vp9 | |||
dynamic | AV1 | video | 90000 | AV1 video | av1-rtp-spec | |||
dynamic | L8 | audio | (various) | (various) | any | 20 | Linear PCM 8-bit audio with 128 offset | RFC 3551 Section 4.5.10 and Table 5 |
dynamic | DAT12 | audio | (various) | (various) | any | 20 (by analogy with L16) | IEC 61119 12-bit nonlinear audio | RFC 3190 Section 3 |
dynamic | L16 | audio | (various) | (various) | any | 20 | Linear PCM 16-bit audio | RFC 3551 Section 4.5.11, RFC 2586 |
dynamic | L20 | audio | (various) | (various) | any | 20 (by analogy with L16) | Linear PCM 20-bit audio | RFC 3190 Section 4 |
dynamic | L24 | audio | (various) | (various) | any | 20 (by analogy with L16) | Linear PCM 24-bit audio | RFC 3190 Section 4 |
dynamic | raw | video | 90000 | Uncompressed Video | RFC 4175 | |||
dynamic | ac3 | audio | (various) | 32000, 44100, 48000 | Dolby AC-3 audio | RFC 4184 | ||
dynamic | eac3 | audio | (various) | 32000, 44100, 48000 | Enhanced AC-3 audio | RFC 4598 | ||
dynamic | t140 | text | 1000 | Text over IP | RFC 4103 | |||
dynamic | EVRC EVRC0 EVRC1 | audio | 8000 | EVRC audio | RFC 4788 | |||
dynamic | EVRCB EVRCB0 EVRCB1 | audio | 8000 | EVRC-B audio | RFC 4788 | |||
dynamic | EVRCWB EVRCWB0 EVRCWB1 | audio | 16000 | EVRC-WB audio | RFC 5188 | |||
dynamic | jpeg2000 | video | 90000 | JPEG 2000 video | RFC 5371 | |||
dynamic | UEMCLIP | audio | 8000, 16000 | UEMCLIP audio | RFC 5686 | |||
dynamic | ATRAC3 | audio | 44100 | ATRAC3 audio | RFC 5584 | |||
dynamic | ATRAC-X | audio | 44100, 48000 | ATRAC3+ audio | RFC 5584 | |||
dynamic | ATRAC-ADVANCED-LOSSLESS | audio | (various) | ATRAC Advanced Lossless audio | RFC 5584 | |||
dynamic | DV | video | 90000 | DV video | RFC 6469 (previously RFC 3189) | |||
dynamic | BT656 | video | ITU-R BT.656 video | RFC 3555 | ||||
dynamic | BMPEG | video | Bundled MPEG-2 video | RFC 2343 | ||||
dynamic | SMPTE292M | video | SMPTE 292M video | RFC 3497 | ||||
dynamic | RED | audio | Redundant Audio Data | RFC 2198 | ||||
dynamic | VDVI | audio | Variable-rate DVI4 audio | RFC 3551 | ||||
dynamic | MP1S | video | MPEG-1 Systems Streams video | RFC 2250 | ||||
dynamic | MP2P | video | MPEG-2 Program Streams video | RFC 2250 | ||||
dynamic | tone | audio | 8000 (default) | tone | RFC 4733 | |||
dynamic | telephone-event | audio | 8000 (default) | DTMF tone | RFC 4733 | |||
dynamic | aptx | audio | 2 – 6 | (equal to sampling rate) | 4000 ÷ sample rate | 4 [note 4] | aptX audio | RFC 7310 |
dynamic | jxsv | video | 90000 | JPEG XS video | RFC 9134 | |||
dynamic | scip | audio/video | 8000 or 90000 | SCIP | RFC 9607 |
maxplaybackrate
and sprop-maxcapturerate
parameters in SDP can be used to indicate hints/preferences about the maximum sampling rate to encode/decode.H.263 is a video compression standard originally designed as a low-bit-rate compressed format for videotelephony. It was standardized by the ITU-T Video Coding Experts Group (VCEG) in a project ending in 1995/1996. It is a member of the H.26x family of video coding standards in the domain of the ITU-T.
The Real-Time Streaming Protocol (RTSP) is an application-level network protocol designed for multiplexing and packetizing multimedia transport streams over a suitable transport protocol. RTSP is used in entertainment and communications systems to control streaming media servers. The protocol is used for establishing and controlling media sessions between endpoints. Clients of media servers issue commands such as play, record and pause, to facilitate real-time control of the media streaming from the server to a client or from a client to the server.
The Real-time Transport Protocol (RTP) is a network protocol for delivering audio and video over IP networks. RTP is used in communication and entertainment systems that involve streaming media, such as telephony, video teleconference applications including WebRTC, television services and web-based push-to-talk features.
The Session Initiation Protocol (SIP) is a signaling protocol used for initiating, maintaining, and terminating communication sessions that include voice, video and messaging applications. SIP is used in Internet telephony, in private IP telephone systems, as well as mobile phone calling over LTE (VoLTE).
The Session Description Protocol (SDP) is a format for describing multimedia communication sessions for the purposes of announcement and invitation. Its predominant use is in support of streaming media applications, such as voice over IP (VoIP) and video conferencing. SDP does not deliver any media streams itself but is used between endpoints for negotiation of network metrics, media types, and other associated properties. The set of properties and parameters is called a session profile.
G.711 is a narrowband audio codec originally designed for use in telephony that provides toll-quality audio at 64 kbit/s. It is an ITU-T standard (Recommendation) for audio encoding, titled Pulse code modulation (PCM) of voice frequencies released for use in 1972.
The RTP Control Protocol (RTCP) is a binary-encoded out-of-band signaling protocol that functions alongside the Real-time Transport Protocol (RTP). Its basic functionality and packet structure is defined in RFC 3550. RTCP provides statistics and control information for an RTP session. It partners with RTP in the delivery and packaging of multimedia data but does not transport any media data itself.
G.729 is a royalty-free narrow-band vocoder-based audio data compression algorithm using a frame length of 10 milliseconds. It is officially described as Coding of speech at 8 kbit/s using code-excited linear prediction speech coding (CS-ACELP), and was introduced in 1996. The wide-band extension of G.729 is called G.729.1, which equals G.729 Annex J.
G.722 is an ITU-T standard 7 kHz wideband audio codec operating at 48, 56 and 64 kbit/s. It was approved by ITU-T in November 1988. Technology of the codec is based on sub-band ADPCM (SB-ADPCM). The corresponding narrow-band codec based on the same technology is G.726.
G.726 is an ITU-T ADPCM speech codec standard covering the transmission of voice at rates of 16, 24, 32, and 40 kbit/s. It was introduced to supersede both G.721, which covered ADPCM at 32 kbit/s, and G.723, which described ADPCM for 24 and 40 kbit/s. G.726 also introduced a new 16 kbit/s rate. The four bit rates associated with G.726 are often referred to by the bit size of a sample, which are 2, 3, 4, and 5-bits respectively. The corresponding wide-band codec based on the same technology is G.722.
Extended Adaptive Multi-Rate – Wideband (AMR-WB+) is an audio codec that extends AMR-WB. It adds support for stereo signals and higher sampling rates. Another main improvement is the use of transform coding additionally to ACELP. This greatly improves the generic audio coding. Automatic switching between transform coding and ACELP provides both good speech and audio quality with moderate bit rates.
MPEG transport stream or simply transport stream (TS) is a standard digital container format for transmission and storage of audio, video, and Program and System Information Protocol (PSIP) data. It is used in broadcast systems such as DVB, ATSC and IPTV.
Real-Time Messaging Protocol (RTMP) is a communication protocol for streaming audio, video, and data over the Internet. Originally developed as a proprietary protocol by Macromedia for streaming between Flash Player and the Flash Communication Server, Adobe has released an incomplete version of the specification of the protocol for public use.
Internet Low Bitrate Codec (iLBC) is a royalty-free narrowband speech audio coding format and an open-source reference implementation (codec), developed by Global IP Solutions (GIPS) formerly Global IP Sound. It was formerly freeware with limitations on commercial use, but since 2011 it is available under a free software/open source license as a part of the open source WebRTC project. It is suitable for VoIP applications, streaming audio, archival and messaging. The algorithm is a version of block-independent linear predictive coding, with the choice of data frame lengths of 20 and 30 milliseconds. The encoded blocks have to be encapsulated in a suitable protocol for transport, usually the Real-time Transport Protocol (RTP).
ATSC-M/H is a U.S. standard for mobile digital TV that allows TV broadcasts to be received by mobile devices.
Pulse-code modulation (PCM) is a method used to digitally represent analog signals. It is the standard form of digital audio in computers, compact discs, digital telephony and other digital audio applications. In a PCM stream, the amplitude of the analog signal is sampled at uniform intervals, and each sample is quantized to the nearest value within a range of digital steps.
RTP-MIDI is a protocol to transport MIDI messages within Real-time Transport Protocol (RTP) packets over Ethernet and WiFi networks. It is completely open and free, and is compatible both with LAN and WAN application fields. Compared to MIDI 1.0, RTP-MIDI includes new features like session management, device synchronization and detection of lost packets, with automatic regeneration of lost data. RTP-MIDI is compatible with real-time applications, and supports sample-accurate synchronization for each MIDI message.
AES67 is a technical standard for audio over IP and audio over Ethernet (AoE) interoperability. The standard was developed by the Audio Engineering Society and first published in September 2013. It is a layer 3 protocol suite based on existing standards and is designed to allow interoperability between various IP-based audio networking systems such as RAVENNA, Wheatnet, Livewire, Q-LAN and Dante.
JPEG XS is an interoperable, visually lossless, low-latency and lightweight image and video coding system used in professional applications. Applications of the standard include streaming high-quality content for virtual reality, drones, autonomous vehicles using cameras, gaming, and broadcasting. It was the first ISO codec ever designed for this specific purpose. JPEG XS, built on core technology from both intoPIX and Fraunhofer IIS, is formally standardized as ISO/IEC 21122 by the Joint Photographic Experts Group with the first edition published in 2019. Although not official, the XS acronym was chosen to highlight the eXtra Small and eXtra Speed characteristics of the codec. Today, the JPEG committee is still actively working on further improvements to XS, with the second edition scheduled for publication and initial efforts being launched towards a third edition.
SMPTE 2110 is a suite of standards from the Society of Motion Picture and Television Engineers (SMPTE) that describes how to send digital media over an IP network.