Профили данных RTP

В коммуникационных приложениях для общения, аудио и видео конференций в режиме реального времени, использующих транспортный протокол реального времени (RTP), применяется Протокол описания сеанса (SDP), чтобы описать технические параметры потоков медиа-данных, переносимых в мультимедиа сессии. Такой набор параметров RTP потока мультимедиа-данных и методы его кодирования известен как профиль RTP, или 'RTP audio video profile' ( 'RTP / AVP' ). Каждый профиль определен с помощью стандартного идентификатора типа полезной нагрузки (payload type).[1]


Использование профилей в SDP

Сообщения SDP с параметрами медиа-сессии используются в протоколах IP-телефонии — SIP, MGCP. Протокол SIP или MGCP служит для процедур инициации и установления соединения, а встраиваемые сообщения SDP — для описания возможных параметров формируемой медиа-сессии между устройствами.

Рассмотрим, как тип мультимедиа-данных определяется в SDP на конкретном примере.

v=0
o=- 1815849 0 IN IP4 194.67.15.181
s=Cisco SDP 0
c=IN IP4 194.67.15.181
t=0 0
m=audio 20062 RTP/AVP 99 18 101 100
a=rtpmap:99 G.729b/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=rtpmap:100 X-NSE/8000
a=fmtp:100 200-202

В приведенном выше сообщении SDP содержится следующая информация. Медиа-трафик будет ожидаться на устройстве с IP-адресом (IPv4) 194.167.15.181, порту 20062. Данное устройство поддерживает несколько разновидностей аудио-трафика (кодеков), описанных при помощи типов (payload type) 99, 18, 100 и 101. Это указано в строке m=audio. Ниже, в строчках a=rtpmap приводится уточнение параметров типов данных, так как некоторые типы являются динамическими и не могут быть определены однозначно, просто по строке m=audio. Так, под типом данных 99 данное устройство подразумевает голосовой кодек G.729b (G.729 Annex B, то есть с поддержкой подавления шума). Динамически тип данных 101 в данном случае, это возможность приёма тональных сигналов DTMF (telephone event) по стандарту, описанному в RFC 2833. Для payload type 18 уточнений нет, и это может означать, что устройство поддерживает голосовой кодек G.729, вместе с более простой вариацией того же кодека описанного в приложении Annex A (или кодек G.729a), так как тип данных 18 однозначно закреплён за этими кодеками.


Типы данных для звука и видео в RTP/AVP

В RFC 3551 перечислены детали каждого формата полезной нагрузки (payload type) или ссылка на подробное описание. Идентификаторы с 0 по 95, зарезервированы для конкретных типов данных статически. Идентификаторы полезной нагрузки с 96 по 127 используется для полезной нагрузки, определяемой динамическии в процессе установления сессии. Документ рекомендует динамические назначенные номера портов, хотя номера портов 5004 и 5005 были зарегистрированы для использования профиля при динамическом назначении порт не требуется. Стандарт также описывает процесс регистрации новых типов полезной нагрузки в IANA.

Приложения, работающие с этими профилями должны всегда поддерживать PCMU (кодек G.711 с μ-законом, тип полезной нагрузки 0). Ранее DVI4 (тип полезной нагрузки 5) также рекомендовался в таком качестве, но эта рекомендация была удалена в августе 2013 году RFC 7007, потому что «многие реализации RTP не поддерживают DVI4, и есть мало оснований, чтобы использовать его, когда доступны гораздо более современные кодеки.»


Тип данных (Payload type / PT) Название Тип Кол-во каналов Тактовая частота (Гц)[Примечание 1] Размер фрейма (мс) Размер пакета по умолчанию (мс) Описание Ссылки
0 PCMU звук 1 8000 любой 20 ITU-T G.711 PCM µ-Law звук 64 Кбит/с RFC 3551
1 зарезервировано (ранее 1016) звук 1 8000 зарезервировано, ранее CELP звук 4.8 Кбит/с RFC 3551, ранее RFC 1890
2 зарезервировано (ранее G.721) звук 1 8000 зарезервировано, ранее ITU-T G.721 ADPCM звук 32 Кбит/с RFC 3551, ранее RFC 1890
3 GSM звук 1 8000 20 20 European GSM Full Rate звук 13 Кбит/с (GSM 06.10) RFC 3551
4 G.723 звук 1 8000 30 30 ITU-T G.723.1 звук RFC 3551
5 DVI4 звук 1 8000 любой 20 IMA ADPCM звук 32 Кбит/с RFC 3551
6 DVI4 звук 1 16000 любой 20 IMA ADPCM звук 64 Кбит/с RFC 3551
7 LPC звук 1 8000 любой 20 Experimental Linear Predictive Coding звук 5.6 Кбит/с RFC 3551
8 PCMA звук 1 8000 любой 20 ITU-T G.711 PCM A-Law звук 64 Кбит/с RFC 3551
9 G.722 звук 1 8000[Примечание 2] любой 20 ITU-T G.722 звук 64 Кбит/с RFC 3551 — Page 14
10 L16 звук 2 44100 любой 20 Linear PCM 16-битный стерео звук 1411.2 Кбит/с,[2][3][4] несжатый RFC 3551, Page 27
11 L16 звук 1 44100 любой 20 Linear PCM 16-битный звук 705.6 Кбит/с, несжатый RFC 3551, Page 27
12 QCELP звук 1 8000 20 20 QCELP (Qualcomm Code Excited Linear Prediction) RFC 2658, RFC 3551
13 CN звук 1 8000 Комфортный шум.

Тип полезной нагрузки используются с кодеками, которые не поддерживают комфортный шум в алгоритме кодирования, то есть в таких как G.711, G.722.1, G.722, G.726, G.727, G.728, GSM 06.10, Siren и RTAudio.

RFC 3389
14 MPA звук 1, 2 90000 8-72 MPEG-1 или MPEG-2 только звук RFC 3551, RFC 2250
15 G728 звук 1 8000 2.5 20 ITU-T G.728 звук 16 Кбит/с RFC 3551
16 DVI4 звук 1 11025 любой 20 IMA ADPCM звук 44.1 Кбит/с RFC 3551
17 DVI4 звук 1 22050 любой 20 IMA ADPCM звук 88.2 Кбит/с RFC 3551
18 G729 звук 1 8000 10 20 ITU-T G.729 и G.729a звук 8 Кбит/с RFC 3551, Page 20
25 CELB видео 90000 Sun CellB видео[5] RFC 2029
26 JPEG видео 90000 JPEG видео RFC 2435
28 nv видео 90000 Xerox PARC's Network Video (nv)[6] RFC 3551, Page 32
31 H261 видео 90000 ITU-T H.261 видео RFC 4587
32 MPV видео 90000 MPEG-1 и MPEG-2 видео RFC 2250
33 MP2T звук/видео 90000 MPEG-2 транспортный поток RFC 2250
34 H263 видео 90000 H.263 видео, первая версия (1996) RFC 3551, RFC 2190
динамический H263-1998 видео 90000 H.263 видео, вторая версия (1998) RFC 3551, RFC 4629, RFC 2190
динамический H263-2000 видео 90000 H.263 видео, третья версия (2000) RFC 4629
динамический (или профиль) H264 AVC видео 90000 H.264 видео (MPEG-4 Part 10) RFC 6184, ранее RFC 3984
динамический (или профиль) H264 SVC видео 90000 H.264 видео RFC 6190
динамический (или профиль) H265 видео 90000 H.265 видео (HEVC) draft-ietf-payload-rtp-h265
динамический (или профиль) theora видео 90000 Theora видео draft-barbato-avt-rtp-theora
динамический iLBC звук 1 8000 20, 30 20, 30 iLBC 13.33 или 15.2 Кбит/с RFC 3952
динамический PCMA-WB звук 1 16000 5 ITU-T G.711.1 A-law RFC 5391
динамический PCMU-WB звук 1 16000 5 ITU-T G.711.1 µ-law RFC 5391
динамический G718 звук 32000 (placeholder) 20 ITU-T G.718 draft-ietf-payload-rtp-g718
динамический G719 звук разное 48000 20 ITU-T G.719 RFC 5404
динамический G7221 звук 16000, 32000 20 ITU-T G.722.1 и G.722.1 Annex C RFC 5577
динамический G726-16 звук 1 8000 любой 20 ITU-T G.726 звук 16 Кбит/с RFC 3551
динамический G726-24 звук 1 8000 любой 20 ITU-T G.726 звук 24 Кбит/с RFC 3551
динамический G726-32 звук 1 8000 любой 20 ITU-T G.726 звук 32 Кбит/с RFC 3551
динамический G726-40 звук 1 8000 любой 20 ITU-T G.726 звук 40 Кбит/с RFC 3551
динамический G729D звук 1 8000 10 20 ITU-T G.729 Annex D RFC 3551
динамический G729E звук 1 8000 10 20 ITU-T G.729 Annex E RFC 3551
динамический G7291 звук 16000 20 ITU-T G.729.1 RFC 4749
динамический GSM-EFR звук 1 8000 20 20 ITU-T GSM-EFR (GSM 06.60) RFC 3551
динамический GSM-HR-08 звук 1 8000 20 ITU-T GSM-HR (GSM 06.20) RFC 5993
динамический (или профиль) AMR звук разное 8000 20 Adaptive Multi-Rate звук RFC 4867
динамический (или профиль) AMR-WB звук разное 16000 20 AMR-WB звук (ITU-T G.722.2) RFC 4867
динамический (или профиль) AMR-WB+ звук 1, 2 или пустой 72000 13.3-40 AMR-WB+ звук RFC 4352
динамический (или профиль) vorbis звук разное разное Vorbis звук RFC 5215
динамический (или профиль) opus звук 1, 2 48000[Примечание 3] 2.5-60 20 Opus аудио RFC 7587
динамический (или профиль) speex звук 1 8000, 16000, 32000 20 Speex звук RFC 5574
динамический mpa-robust звук 1, 2 90000 24-72 Loss-Tolerant MP3 звук RFC 5219 (ранее RFC 3119)
динамический (или профиль) MP4A-LATM звук 90000 или другие MPEG-4 Audio RFC 6416 (ранее RFC 3016)
динамический (или профиль) MP4V-ES видео 90000 или другие MPEG-4 Visual RFC 6416 (ранее RFC 3016)
динамический (или профиль) mpeg4-generic звук/видео 90000 или другой MPEG-4 Elementary Streams RFC 3640
динамический VP8 видео 90000 VP8 видео draft-ietf-payload-vp8
динамический VP9 видео 90000 VP9 видео draft-uberti-payload-vp9
динамический L8 звук разное разное любой 20 Linear PCM 8-битный звук со смещением 128 RFC 3551 Раздел 4.5.10 и Таблица 5
динамический DAT12 звук разное разное любой 20 (по аналогии с L16) IEC 61119 12-битный нелинейный звук RFC 3190 Раздел 3
динамический L16 звук разное разное любой 20 Linear PCM 16-битный звук RFC 3551 раздел 4.5.11, RFC 2586
динамический L20 звук разное разное любой 20 (по аналогии с L16) Linear PCM 20-битный звук RFC 3190 раздел 4
динамический L24 звук разное разное любой 20 (по аналогии с L16) Linear PCM 24-битный звук RFC 3190 раздел 4
динамический raw видео 90000 Несжатое видеоизображение RFC 4175
динамический ac3 звук разное 32000, 44100, 48000 Dolby AC-3 звук RFC 4184
динамический eac3 звук разное 32000, 44100, 48000 Enhanced AC-3 звук RFC 4598
динамический t140 текст 1000 Текстовые сообщения (Text over IP) RFC 4103
динамический EVRC
EVRC0
EVRC1
звук 8000 EVRC звук RFC 4788
динамический EVRCB
EVRCB0
EVRCB1
звук 8000 EVRC-B звук RFC 4788
динамический EVRCWB
EVRCWB0
EVRCWB1
звук 16000 EVRC-WB звук RFC 5188
динамический jpeg2000 видео 90000 JPEG 2000 видео RFC 5371
динамический UEMCLIP звук 8000, 16000 UEMCLIP звук RFC 5686
динамический ATRAC3 звук 44100 ATRAC3 звук RFC 5584
динамический ATRAC-X звук 44100, 48000 ATRAC3+ звук RFC 5584
динамический ATRAC-ADVANCED-LOSSLESS звук разное ATRAC Advanced Lossless звук RFC 5584
динамический DV видео 90000 DV видео RFC 3189
динамический BT656 видео ITU-R BT.656 видео RFC 3555
динамический BMPEG видео Встроенное MPEG-2 видеоизображение RFC 2343
динамический SMPTE292M видео SMPTE 292M видео RFC 3497
динамический RED звук Резервные звуковые данные RFC 2198
динамический VDVI звук Звук DVI4 с изменяемой частотой RFC 3551
динамический MP1S видео MPEG-1 Systems потоковое видео RFC 2250
динамический MP2P видео MPEG-2 Program потоковое видео RFC 2250
динамический tone звук разное tone RFC 4733
динамический telephone-event звук разное DTMF сигнал RFC 4733
  1. «Тактовая частота» — это скорость, с которой метка в заголовке RTP увеличивается, что бы не быть такой же, как частота дискретизации кодека. Например, кодеки, как правило, используют тактовую частоту 90000, так что их кадры могут быть более точно совпадает с временной меткой RTCP NTP, хотя видео частоты дискретизации, как правило, в диапазоне от 1 до 60 семплов в секунду.
  2. Хотя частотой дискретизации для G.722 является 16 000, его тактовая частота может быть и 8000 для обратной совместимости с RFC 1890, в котором неправильно используется это значение[1].
  3. Поскольку Opus можно изменить частоту дискретизации динамически, его тактовая частота установлена как 48000, даже когда кодек будет работать при пониженной частотой дискретизации. Параметры maxplaybackrate и sprop-maxcapturerate в SDP может быть использован для указания подсказки / предпочтения о максимальной частоте дискретизации для кодирования / декодирования.

См. также

Ссылки

  1. RFC 3551, RTP Profile for Audio and Video Conferences with Minimal Control, H. Schulzrinne, S. Casner, The Internet Society (July 2003).
  2. RFC 2586 - The Audio/L16 MIME content type (May 1999). Дата обращения: 16 марта 2010.
  3. RFC 3108 - Conventions for the use of the Session Description Protocol (SDP) for ATM Bearer Connections (May 2001). Дата обращения: 16 марта 2010.
  4. RFC 4856 - Media Type Registration of Payload Formats in the RTP Profile for Audio and Video Conferences - Registration of Media Type audio/L16 (March 2007). Дата обращения: 16 марта 2010.
  5. XIL Programmer’s Guide, Chapter 22 «CellB Codec». August 1997. Retrieved on 2014-07-19.
  6. nv — network video on Henning Schulzrinne’s website, Network Video on The University of Toronto’s website, Retrieved on 2009-07-09.

Внешние ресурсы

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.