Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Для того, чтобы избежать излишнего транскодирования при ретрансляции потоков, необходимо согласовывать настройку кодеков на Origin и Edge серверах.
Рассмотрим следующую схему работы Рассмотрим три возможных варианта кодирования звука внутри CDN, предназначенной для ретрансляции H264 потока с веб-камеры (WebRTC) и RTMP-кодировщика:Image Removed.

Использование Opus или AAC

Image Added

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
languagebash
themeRDark
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
languagebash
themeRDark
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
languagebash
themeRDark
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

Image Added

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
languagebash
themeRDark
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

Image Added

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
languagebash
themeRDark
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
languagebash
themeRDark
codecs_exclude_cdn=opus,alaw,ulaw,g729,speex16,g722,telephone-event,flv

Краткое руководство по тестированию

Подготовка к тестированию

...