...
Для того, чтобы избежать излишнего транскодирования при ретрансляции потоков, необходимо согласовывать настройку кодеков на Origin и Edge серверах.
Рассмотрим следующую схему работы Рассмотрим три возможных варианта кодирования звука внутри CDN, предназначенной для ретрансляции H264 потока с веб-камеры (WebRTC) и RTMP-кодировщика:.
Использование Opus или AAC
1. Ретрансляция потока, захваченного из браузера Chrome
...
2.1. Origin принимает поток H.264 +AAC с RTMP стримера:
2.1.1 звук в AAC без транскодинга:
2.1.2 звук в Speex с транскодингом в AAC.
2.2. Edge забирает с Origin поток по WebRTС H.264+Opus, на Origin транскодинг AAC > Opus.
2.3. Зритель забирает с Edge поток:
2.3.1. по H.264+Opus, на Edge нет транскодингатранскодинг AAC > Opus;
2.3.2. по H.264+AAC, на Edge транскодинг Opus > AACнет транскодинга.
Для работы такой CDN необходимо в файле flashphoner.properties настроить кодеки следующим образом:
на Origin сервере
необходимо создать файл flash_handler_publish.sdp
Code Block | ||||
---|---|---|---|---|
| ||||
codecs=opus,mpeg4-generic,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=sendonly m=audio 0 RTP/AVP 108 a=rtpmap:108 mpeg4-generic/48000/1 a=sendonly |
на Edge сервере
необходимо в файле flashphoner.properties указать
Code Block | ||||
---|---|---|---|---|
| ||||
codecs_exclude_cdn=alaw,ulaw,g729,speex16,g722,telephone-event,h264,vp8,flv,mpv # включаем транскодинг, чтобы отдавать на Edge только Opus disable_rtc_avoid_transcoding_alg=true |
...
flv |
и создать файл flash_handler_play.sdp
Code Block | ||||
---|---|---|---|---|
| ||||
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 108
a=rtpmap:108 mpeg4-generic/48000/1
a=recvonly |
Использование только Opus
1. Ретрансляция потока, захваченного из браузера Chrome
1.1. Origin принимает поток H.264+Opus с Chrome.
1.2. Edge забирает с Origin поток по WebRTС H.264+Opus, на Origin нет транскодинга.
1.3. Зритель забирает с Edge поток по H.264+Opus, на Edge нет транскодинга.
2. Ретрансляция потока, захваченного c RTMP-кодировщика
2.1. Origin принимает поток H.264 с RTMP стримера:
2.1.1 звук в AAC с транскодингом в Opus:
2.1.2 звук в Speex с транскодингом в Opus.
2.2. Edge забирает с Origin поток по WebRTС H.264+Opus.
2.3. Зритель забирает с Edge поток по H.264+Opus, на Edge нет транскодинга.
Для работы такой CDN необходимо настроить кодеки следующим образом:
на Origin сервере
оставить настройки кодеков по умолчанию
на Edge сервере
необходимо в файле flashphoner.properties указать
Code Block | ||||
---|---|---|---|---|
| ||||
codecs=opus,mpeg4-generic,_exclude_cdn=alaw,ulaw,g729,speex16,g722,mpeg4-generic,telephone-event,h264,vp8,flv,mpv #удаляем aac с cdn, чтобы забирать с Origin только Opus codecs_exclude_cdn=flv,telephone-event,mpeg4-genericflv |
Использование только AAC
1. Ретрансляция потока, захваченного из браузера Chrome
1.1. Origin принимает поток H.264+Opus с Chrome с транскодингом Opus > AAC.
1.2. Edge забирает с Origin поток по WebRTС H.264+AAC.
1.3. Зритель забирает с Edge поток по H.264+AAC, на Edge нет транскодинга.
2. Ретрансляция потока, захваченного c RTMP-кодировщика
2.1. Origin принимает поток H.264 с RTMP стримера:
2.1.1 звук в AAC без транскодинга:
2.1.2 звук в Speex с транскодингом в AAC.
2.2. Edge забирает с Origin поток по WebRTС H.264+AAC.
2.3. Зритель забирает с Edge поток по H.264+AAC, на Edge нет транскодинга.
Для работы такой CDN необходимо настроить кодеки следующим образом:
на Origin сервере
необходимо создать файл flash_handler_publish.sdp
Code Block | ||||
---|---|---|---|---|
| ||||
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=sendonly
m=audio 0 RTP/AVP 108
a=rtpmap:108 mpeg4-generic/48000/1
a=sendonly |
на Edge сервере
необходимо в файле flashphoner.properties указать
Code Block | ||||
---|---|---|---|---|
| ||||
codecs_exclude_cdn=opus,alaw,ulaw,g729,speex16,g722,telephone-event,flv |
Краткое руководство по тестированию
Подготовка к тестированию
...