...
2. Если аудио кодека или частоты дискретизации, указанных в настройках профиля, нет в SDP подписчика, аудио дорожка будет транскодирована в один из форматов, поддерживаемых подписчиком.
Выбор маршрута для воспроизведения потока
Маршруты в CDN строятся на основе периодических рассылок следующих данных:
- Origin рассылает узлам с ролью Transcoder и Edge информацию об опубликованных потоках;
- Transcoder рассылает узлам с ролью Edge в пределах той же группы информацию о потоках, которые уже захвачены им с Origin;
- Edge не рассылает ничего и всегда является конечной точкой маршрута.
Expand | ||
---|---|---|
| ||
Маршрут для воспроизведения потока на Edge сервере выбирается следующим образом:
Сохранение соотношения сторон видео при транскодировании по профилю
Если на всех узлах CDN включено сохранение соотношения сторон при транскодировании (по умолчанию), то при транскодировании потока на Transcoder узле также будет сохранено исходное соотношение сторон, с которым этот поток был опубликован на Oriigin. Например, если к потоку 640x480 (4:3) применяется профиль 16:9
Code Block | ||||
---|---|---|---|---|
| ||||
profile1:
audio:
codec : opus
rate : 48000
video:
width : 320
height : 180
gop : 90
fps : 30
codec : h264 |
поток будет транскодирован в 320x240 (4:3).
В этом случае можно не указывать ширину кадра в профиле транскодирования, поскольку ширина будет выбрана, исходя из соотношения сторон. Например, допускается такой профиль
Code Block | ||||
---|---|---|---|---|
| ||||
profile3:
audio:
codec : opus
rate : 48000
video:
height : 180 |
Выбор маршрута для воспроизведения потока
Маршруты в CDN строятся на основе периодических рассылок следующих данных:
- Origin рассылает узлам с ролью Transcoder и Edge информацию об опубликованных потоках;
- Transcoder рассылает узлам с ролью Edge в пределах той же группы информацию о потоках, которые уже захвачены им с Origin;
- Edge не рассылает ничего и всегда является конечной точкой маршрута.
Expand | ||
---|---|---|
| ||
Маршрут для воспроизведения потока на Edge сервере выбирается следующим образом:
1. Если на Edge сервере настроен профиль транскодирования:
...
Воспроизводим поток test на Edge по профилю
...
language | yml |
---|---|
theme | RDark |
...
профилю
Code Block | ||||
---|---|---|---|---|
| ||||
-opus-vp8: audio: gopcodec : 60opus fpsrate : 3048000 codec : vp8 codecImpl : FF |
В ответ на запрос
Code Block | ||||
---|---|---|---|---|
| ||||
http://192.168.1.221:8081/rest-api/cdn/stream/show_routes { channels : 2 video: "streamName"width : "test-webrtc-opus-vp8" } |
получаем:
1. Запрашиваемый профиль:
Code Block | ||||
---|---|---|---|---|
| ||||
"REQUESTED-PROFILE": [320 height : 240 gop : 60 fps : 30 codec : vp8 "AUDIO{bitrate=0, codec='opus', rate=48000, channels=2}", codecImpl : FF |
В ответ на запрос
Code Block | ||||
---|---|---|---|---|
| ||||
http://192.168.1.221:8081/rest-api/cdn/stream/show_routes { "VIDEO{width=320, height=240, gop=60, fps=30, bitrate=0, codec='vp8', codecImpl='FF', quality=null}" ], |
...
"streamName": "test-webrtc-opus-vp8"
} |
получаем:
1. Запрашиваемый профиль:
Code Block | ||||
---|---|---|---|---|
| ||||
"1REQUESTED-PROFILE-192.168.1.220": [ "AUDIO{bitrate=0, codec='opus', rate=48000, channels=2}", "VIDEO{width=0, height=0, gop=null, fps=null, "AUDIO{bitrate=0, codec='H264opus', codecImplrate=''48000, qualitychannels=null2}", "VIDEO{width=320, height=240, gop=60, fps=30, bitrate=0, codec='VP8vp8', codecImpl='FF', quality=null}" ], |
32. Поток захватывается через TranscoderНа Transcoder создан профиль транскодирования:
Code Block | ||||
---|---|---|---|---|
| ||||
"21-STREAMPROFILE-192.168.1.220": [ "AUDIO{bitrate=0, codec='opus', rate=48000, channels=2}", "VIDEO{width=0, height=0, gop=null, fps=null, bitrate=0, codec='H264', codecImpl='', quality=null}", "VIDEO{width=320, height=240, gop=60, fps=30, bitrate=0, codec='VP8', codecImpl='FF', quality=null}" ], "3-NEW-TRANSCODER-192.168.1.220": [], |
...
3. Поток захватывается через Transcoder
Code Block | ||||
---|---|---|---|---|
| ||||
"32-PROXYSTREAM-192.168.1.219220": [ "AUDIO{bitrate=0, codec='opus', rate=48000, channels=2}", "VIDEO{width=0, height=0, gop=null, fps=null, bitrate=0, codec='H264', codecImpl='', quality=null}" ] |
Сохранение соотношения сторон видео при транскодировании по профилю
Если на всех узлах CDN включено сохранение соотношения сторон при транскодировании (по умолчанию), то при транскодировании потока на Transcoder узле также будет сохранено исходное соотношение сторон, с которым этот поток был опубликован на Oriigin. Например, если к потоку 640x480 (4:3) применяется профиль 16:9
Code Block | ||||
---|---|---|---|---|
| ||||
profile1:
audio:
codec : opus
rate : 48000
video:
width : 320
height : 180
gop : 90
fps : 30
codec : h264 |
поток будет транскодирован в 320x240 (4:3).
В этом случае можно не указывать ширину кадра в профиле транскодирования, поскольку высота будет выбрана, исходя из соотношения сторон. Например, допускается такой профиль
Code Block | ||||
---|---|---|---|---|
| ||||
profile3: audio: codec : opus rate : 48000 video: height : 180 "VIDEO{width=0, height=0, gop=null, fps=null, bitrate=0, codec='H264', codecImpl='', quality=null}", "VIDEO{width=320, height=240, gop=60, fps=30, bitrate=0, codec='VP8', codecImpl='FF', quality=null}" ], "3-NEW-TRANSCODER-192.168.1.220": [], |
4. Параметры публикации потока на Origin:
Code Block | ||||
---|---|---|---|---|
| ||||
"3-PROXY-192.168.1.219": [
"AUDIO{bitrate=0, codec='opus', rate=48000, channels=2}",
"VIDEO{width=0, height=0, gop=null, fps=null, bitrate=0, codec='H264', codecImpl='', quality=null}"
]
|
Авторизация узлов в CDN
Авторизация узлов, которые пытаются подключиться к CDN, производится по IP-адресу. Адреса узлов, которые могут войти в CDN, должны быть указаны в следующей настройке
...