Versions Compared

Key

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

...

2. Если аудио кодека или частоты дискретизации, указанных в настройках профиля, нет в SDP подписчика, аудио дорожка будет транскодирована в один из форматов, поддерживаемых подписчиком.

Выбор маршрута для воспроизведения потока

Маршруты в CDN строятся на основе периодических рассылок следующих данных:

  • Origin рассылает узлам с ролью Transcoder и Edge информацию об опубликованных потоках;
  • Transcoder рассылает узлам с ролью Edge  в пределах той же группы информацию о потоках, которые уже захвачены им с Origin;
  • Edge не рассылает ничего и всегда является конечной точкой маршрута.
Expand
titleСхема рассылки данных для составления маршрутов

Image Removed

Маршрут для воспроизведения потока на Edge сервере выбирается следующим образом:

Image Removed

Сохранение соотношения сторон видео при транскодировании по профилю

Если на всех узлах CDN включено сохранение соотношения сторон при транскодировании (по умолчанию), то при транскодировании потока на Transcoder узле также будет сохранено исходное соотношение сторон, с которым этот поток был опубликован на Oriigin. Например, если к потоку 640x480 (4:3) применяется профиль 16:9

Code Block
languageyml
themeRDark
 profile1:
  audio:
    codec : opus
    rate : 48000
  video:
    width : 320
    height : 180
    gop : 90
    fps : 30
    codec : h264

поток будет транскодирован в 320x240 (4:3).

В этом случае можно не указывать ширину кадра в профиле транскодирования, поскольку ширина будет выбрана, исходя из соотношения сторон. Например, допускается такой профиль

Code Block
languageyml
themeRDark
 profile3:
  audio:
    codec : opus
    rate : 48000
  video:
    height : 180

Выбор маршрута для воспроизведения потока

Маршруты в CDN строятся на основе периодических рассылок следующих данных:

  • Origin рассылает узлам с ролью Transcoder и Edge информацию об опубликованных потоках;
  • Transcoder рассылает узлам с ролью Edge  в пределах той же группы информацию о потоках, которые уже захвачены им с Origin;
  • Edge не рассылает ничего и всегда является конечной точкой маршрута.


Expand
titleСхема рассылки данных для составления маршрутов

Image Added

Маршрут для воспроизведения потока на Edge сервере выбирается следующим образом:

Image Added

1. Если на Edge сервере настроен профиль транскодирования:

...

Воспроизводим поток test на Edge по профилю

...

languageyml
themeRDark

...

профилю

Code Block
languageyml
themeRDark
 -opus-vp8:
  audio:
    gopcodec : 60opus
    fpsrate : 3048000
    codec : vp8
    codecImpl : FF

В ответ на запрос

Code Block
languagejs
themeRDark
http://192.168.1.221:8081/rest-api/cdn/stream/show_routes
{ channels : 2
  video:
    "streamName"width : "test-webrtc-opus-vp8"
}

получаем:

1. Запрашиваемый профиль:

Code Block
languagejs
themeRDark
    "REQUESTED-PROFILE": [320
    height : 240
    gop : 60
    fps : 30
    codec : vp8
   "AUDIO{bitrate=0, codec='opus', rate=48000, channels=2}", codecImpl : FF

В ответ на запрос

Code Block
languagejs
themeRDark
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
languagejs
themeRDark
    "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
languagejs
themeRDark
    "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
languagejs
themeRDark
    "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
languageyml
themeRDark
 profile1:
  audio:
    codec : opus
    rate : 48000
  video:
    width : 320
    height : 180
    gop : 90
    fps : 30
    codec : h264

поток будет транскодирован в 320x240 (4:3).

В этом случае можно не указывать ширину кадра в профиле транскодирования, поскольку высота будет выбрана, исходя из соотношения сторон. Например, допускается такой профиль

Code Block
languageyml
themeRDark
 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
languagejs
themeRDark
    "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, должны быть указаны в следующей настройке

...