Настройки SDP по умолчанию определены в исходном коде ядра WCS. Для того, чтобы изменить эти настройки, необходимо создать указанные файлы в каталоге /usr/local/FlashphonerWebCallServer/conf
.
При изменении настроек SDP, требуется перезапуск сервера.
flash_handler_publish.sdp
Файл настроек flash_handler_publish.sdp
описывает SDP для потоков, публикуемых с Flash клиента. По умолчанию файл содержит следующую настройку SDP:
v=0 o=- 1988962254 1988962254 IN IP4 0.0.0.0 c=IN IP4 0.0.0.0 t=0 0 a=sdplang:en m=video 0 RTP/AVP 119 127 a=rtpmap:119 H264/90000 a=fmtp:119 profile-level-id=42e01f;packetization-mode=1 a=rtpmap:127 FLV/90000 a=sendonly m=audio 0 RTP/AVP 97 8 0 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 a=rtpmap:97 SPEEX/16000 a=rtpmap:8 PCMA/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:102 mpeg4-generic/48000/1 a=rtpmap:103 mpeg4-generic/44100/1 a=rtpmap:104 mpeg4-generic/32000/1 a=rtpmap:105 mpeg4-generic/24000/1 a=rtpmap:106 mpeg4-generic/22050/1 a=rtpmap:107 mpeg4-generic/16000/1 a=rtpmap:108 mpeg4-generic/12000/1 a=rtpmap:109 mpeg4-generic/11025/1 a=rtpmap:110 mpeg4-generic/8000/1 a=rtpmap:111 mpeg4-generic/48000/2 a=rtpmap:112 mpeg4-generic/44100/2 a=rtpmap:113 mpeg4-generic/32000/2 a=rtpmap:114 mpeg4-generic/24000/2 a=rtpmap:115 mpeg4-generic/22050/2 a=rtpmap:116 mpeg4-generic/16000/2 a=rtpmap:117 mpeg4-generic/12000/2 a=rtpmap:118 mpeg4-generic/11025/2 a=rtpmap:119 mpeg4-generic/8000/2 a=sendonly
Отметим, что изменение данного файла позволяет только добавить или убрать поддержку аудио- и видеопотоков, но не изменить кодек, переданный публикующей стороной.
Например, если убрать из flash_handler_publish.sdp
аудио составляющую
v=0 o=- 1988962254 1988962254 IN IP4 0.0.0.0 c=IN IP4 0.0.0.0 t=0 0 a=sdplang:en m=video 0 RTP/AVP 119 127 a=rtpmap:119 H264/90000 a=fmtp:119 profile-level-id=42e01f;packetization-mode=1 a=rtpmap:127 FLV/90000 a=sendonly
то поток, опубликованный RTMP кодировщиком, на WCS будет только с видео, даже если он публикуется клиентом с видео и аудио.
В сборке 5.2.1487 добавлена настройка, позволяющая задать собственное имя файла
flash_handler_publish_sdp_filename=flash_handler_publish.sdp
Файл должен располагаться в каталоге /usr/local/FlashphonerWebCallServer/conf
flash_handler_play.sdp
Файл настроек flash_handler_play.sdp описывает SDP для потоков, воспроизводимых на Flash клиенте. По умолчанию файл содержит следующую настройку SDP:
v=0 o=- 1988962254 1988962254 IN IP4 0.0.0.0 c=IN IP4 0.0.0.0 t=0 0 a=sdplang:en m=video 0 RTP/AVP 96 a=rtpmap:96 H264/90000 a=fmtp:96 profile-level-id=42e01f;packetization-mode=1 a=recvonly m=audio 0 RTP/AVP 97 8 0 102 103 104 105 106 107 108 109 110 a=rtpmap:97 SPEEX/16000 a=rtpmap:8 PCMA/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:102 mpeg4-generic/48000/1 a=rtpmap:103 mpeg4-generic/44100/1 a=rtpmap:104 mpeg4-generic/32000/1 a=rtpmap:105 mpeg4-generic/24000/1 a=rtpmap:106 mpeg4-generic/22050/1 a=rtpmap:107 mpeg4-generic/16000/1 a=rtpmap:108 mpeg4-generic/12000/1 a=rtpmap:109 mpeg4-generic/11025/1 a=rtpmap:110 mpeg4-generic/8000/1 a=recvonly
В сборке 5.2.1487 добавлена настройка, позволяющая задать собственное имя файла
flash_handler_play_sdp_filename=flash_handler_play.sdp
Файл должен располагаться в каталоге /usr/local/FlashphonerWebCallServer/conf
media_transponder.sdp
Файл настроек media_transponder.sdp описывает SDP для републикации потоков по RTMP на стороннем сервере. По умолчанию файл содержит следующую настройку SDP:
v=0 o=- 1988962254 1988962254 IN IP4 0.0.0.0 c=IN IP4 0.0.0.0 t=0 0 a=sdplang:en m=video 0 RTP/AVP 95 96 a=rtpmap:95 H264/90000 a=fmtp:95 profile-level-id=42e01f;packetization-mode=0 a=rtpmap:96 H264/90000 a=fmtp:96 profile-level-id=42e01f;packetization-mode=1 a=recvonly m=audio 0 RTP/AVP 103 96 97 98 99 100 102 108 104 a=rtpmap:108 mpeg4-generic/48000/1 a=rtpmap:96 mpeg4-generic/8000/1 a=rtpmap:97 mpeg4-generic/11025/1 a=rtpmap:98 mpeg4-generic/12000/1 a=rtpmap:99 mpeg4-generic/16000/1 a=rtpmap:100 mpeg4-generic/22050/1 a=rtpmap:104 mpeg4-generic/24000/1 a=rtpmap:102 mpeg4-generic/32000/1 a=rtpmap:103 mpeg4-generic/44100/1 a=recvonly
В сборке 5.2.1487 добавлена настройка, позволяющая задать собственное имя файла
media_transponder_sdp_filename=media_transponder.sdp
Файл должен располагаться в каталоге /usr/local/FlashphonerWebCallServer/conf
rtmp_agent.sdp
Файл настроек rtmp_agent.sdp описывает SDP для захвата потоков по RTMP со стороннего сервера. По умолчанию файл содержит следующую настройку SDP:
v=0 o=- 1988962254 1988962254 IN IP4 0.0.0.0 c=IN IP4 0.0.0.0 t=0 0 a=sdplang:en m=video 0 RTP/AVP 95 a=rtpmap:95 H264/90000 a=fmtp:95 profile-level-id=42e01f;packetization-mode=1 a=sendonly m=audio 0 RTP/AVP 103 96 97 98 99 100 102 108 104 a=rtpmap:108 mpeg4-generic/48000/2 a=rtpmap:96 mpeg4-generic/8000/2 a=rtpmap:97 mpeg4-generic/11025/2 a=rtpmap:98 mpeg4-generic/12000/2 a=rtpmap:99 mpeg4-generic/16000/2 a=rtpmap:100 mpeg4-generic/22050/2 a=rtpmap:104 mpeg4-generic/24000/2 a=rtpmap:102 mpeg4-generic/32000/2 a=rtpmap:103 mpeg4-generic/44100/2 a=recvonly
В сборке 5.2.1487 добавлена настройка, позволяющая задать собственное имя файла
rtmp_agent_sdp_filename=rtmp_agent.sdp
Файл должен располагаться в каталоге /usr/local/FlashphonerWebCallServer/conf
rtsp_server.sdp
Файл настроек rtsp_server.sdp описывает SDP для воспроизведения потоков, опубликованных на сервере, как RTSP. По умолчанию файл содержит следующую настройку SDP:
v=0 o=- 1988962254 1988962254 IN IP4 192.168.1.5 c=IN IP4 192.168.1.5 t=0 0 a=sdplang:en a=range:npt=now- a=control:* m=audio 0 RTP/AVP 96 a=rtpmap:96 mpeg4-generic/48000/2 a=fmtp:96 profile-level-id=1;mode=AAC-hbr;sizelength=13;indexlength=3;indexDeltaLength=3 a=control:audio m=video 0 RTP/AVP 119 a=rtpmap:119 H264/90000 a=fmtp:119 packetization-mode=1;profile-level-id=42e01f; a=control:video
Здесь
192.168.1.5 - IP адрес WCS-сервера, указанный в файле flashphoner.properties
В сборке 5.2.1487 добавлена настройка, позволяющая задать собственное имя файла
rtsp_server_sdp_filename=rtsp_server.sdp
Файл должен располагаться в каталоге /usr/local/FlashphonerWebCallServer/conf
hls.sdp
Начиная со сборки 5.2.575, файл настроек hls.sdp описывает SDP для HLS потоков. По умолчанию файл содержит следующую настройку SDP:
v=0 o=- 1988962254 1988962254 IN IP4 0.0.0.0 c=IN IP4 0.0.0.0 t=0 0 a=sdplang:en m=video 0 RTP/AVP 112 a=rtpmap:112 H264/90000 a=fmtp:112 packetization-mode=1; profile-level-id=420020 a=recvonly m=audio 0 RTP/AVP 108 102 103 a=rtpmap:108 mpeg4-generic/48000/2 a=rtpmap:102 mpeg4-generic/32000/2 a=rtpmap:103 mpeg4-generic/44100/2 a=recvonly
Отметим, что частоты дискретизации звука ниже 32000 Гц не поддерживаются
В сборке 5.2.1487 добавлена настройка, позволяющая задать собственное имя файла
hls_sdp_filename=hls.sdp
Файл должен располагаться в каталоге /usr/local/FlashphonerWebCallServer/conf
mse.sdp
В сборке 5.2.758 добавлена возможность настройки SDP для воспроизведения потоков по MSE. По умолчанию, используется следующая настройка:
v=0 o=- 1988962254 1988962254 IN IP4 0.0.0.0 c=IN IP4 0.0.0.0 t=0 0 a=sdplang:en m=video 0 RTP/AVP 112 a=rtpmap:112 H264/90000 a=fmtp:112 packetization-mode=1; profile-level-id=420020 a=recvonly m=audio 0 RTP/AVP 108 96 97 98 99 100 102 103 104 a=rtpmap:108 mpeg4-generic/48000/1 a=rtpmap:96 mpeg4-generic/8000/1 a=rtpmap:97 mpeg4-generic/11025/1 a=rtpmap:98 mpeg4-generic/12000/1 a=rtpmap:99 mpeg4-generic/16000/1 a=rtpmap:100 mpeg4-generic/22050/1 a=rtpmap:104 mpeg4-generic/24000/1 a=rtpmap:102 mpeg4-generic/32000/1 a=rtpmap:103 mpeg4-generic/44100/1 a=recvonly
В сборке 5.2.1487 добавлена настройка, позволяющая задать собственное имя файла
mse_sdp_filename=mse.sdp
Файл должен располагаться в каталоге /usr/local/FlashphonerWebCallServer/conf
mpegts_agent.sdp
В сборке 5.2.1214 добавлена возможность настройки SDP для публикации MPEG-TS потоков. По умолчанию, используется следующая настройка:
v=0 o=- 1988962254 1988962254 IN IP4 0.0.0.0 c=IN IP4 0.0.0.0 t=0 0 a=sdplang:en m=audio 0 RTP/AVP 103 96 97 98 99 100 102 108 104 a=rtpmap:108 mpeg4-generic/48000/2 a=rtpmap:96 mpeg4-generic/8000/2 a=rtpmap:97 mpeg4-generic/11025/2 a=rtpmap:98 mpeg4-generic/12000/2 a=rtpmap:99 mpeg4-generic/16000/2 a=rtpmap:100 mpeg4-generic/22050/2 a=rtpmap:104 mpeg4-generic/24000/2 a=rtpmap:102 mpeg4-generic/32000/2 a=rtpmap:103 mpeg4-generic/44100/2 a=sendonly m=video 0 RTP/AVP 96 119 a=rtpmap:96 H265/90000 a=rtpmap:119 H264/90000 a=fmtp:119 profile-level-id=42e01f;packetization-mode=1 a=sendonly
В сборке 5.2.1487 добавлена настройка, позволяющая задать собственное имя файла
mpegts_agent_sdp_filename=mpegts_agent.sdp
Файл должен располагаться в каталоге /usr/local/FlashphonerWebCallServer/conf
Настройка количества каналов для аудиопотоков
Согласно RFC 4566, количество каналов аудио может быть не указано, если используется один канал (моно). В связи с этим, начиная со сборки 5.2.859, в настройке SDP можно не указывать количество каналов, в этом случае будет публиковаться или играть моно звук
a=rtpmap:102 mpeg4-generic/48000 a=rtpmap:103 mpeg4-generic/44100
Если же заранее неизвестно, стерео или моно звук будет опубликован, рекомендуется перечислить все возможные варианты, назначая каждому свой тип содержимого
a=rtpmap:102 mpeg4-generic/44100/1 a=rtpmap:103 mpeg4-generic/44100/2 a=rtpmap:104 mpeg4-generic/48000/1 a=rtpmap:105 mpeg4-generic/48000/2
Соответствие кодеков при публикации
Если поток публикуется с кодеком, которого нет в настройке SDP (например, настройка содержит только AAC стерео, а публикуется AAC моно звук), публикация завершится с ошибкой No common codecs
.