В коммуникационных приложениях для общения посредством компьютерных сетей, аудио и видеоконференций в режиме реального времени, использующих транспортный протокол реального времени (RTP), применяются различные варианты описания технических параметры потоков медиа-данных, переносимых в мультимедиа сессии (например протокол описания сеанса (SDP) или H.245). Такой набор параметров 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.67.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
|
- ↑ «Тактовая частота» — это скорость, с которой метка в заголовке RTP увеличивается, что бы не быть такой же, как частота дискретизации кодека. Например, кодеки, как правило, используют тактовую частоту 90000, так что их кадры могут быть более точно совпадает с временной меткой RTCP NTP, хотя видео частоты дискретизации, как правило, в диапазоне от 1 до 60 семплов в секунду.
- ↑ Хотя частотой дискретизации для G.722 является 16 000, его тактовая частота может быть и 8000 для обратной совместимости с RFC 1890, в котором неправильно используется это значение[1].
- ↑ Поскольку Opus можно изменить частоту дискретизации динамически, его тактовая частота установлена как 48000, даже когда кодек будет работать при пониженной частотой дискретизации. Параметры
maxplaybackrate и sprop-maxcapturerate в SDP может быть использован для указания подсказки / предпочтения о максимальной частоте дискретизации для кодирования / декодирования.
См. также
Ссылки
Внешние ресурсы
Information related to Профили данных RTP |