Описание
Новая реализация CDN 2.1 отличается от CDN 2.0 дополнительными возможностями:
- разделение узлов CDN по географическому (EU, US) или другому признаку при помощи групп
- выделение узлов под задачи транскодинга, назначая таким узлам роль Transcoder
Группировка узлов CDN
Серверы в CDN могут быть объединены в группу по географическому (расположение), аппаратному (использование GPU для транскодинга) и другим признакам. Группа указывается в файле настроек flashphoner.properties при помощи параметра
cdn_groups=group1
Один и тот же сервер может входить в несколько групп. Допустим, сервер находится в Европе и используется для транскодинга при помощи GPU:
cdn_groups=EU,GPU
Группы узлов используются при выборе маршрута для воспроизведения потока
Выделение узлов под задачи транскодинга
Чтобы не загружать серверы, используемые для публикации и просмотра видео в крупной разветвленной CDN, задачами транскодинга, целесообразно выделить под эти задачи узлы с повышенной вычислительной мощностью. Для таких узлов,, кроме Origin и Edge, добавлена роль Transcoder.
cdn_role=transcoder
Узел Transcoder не должен использоваться для публикации или воспроизведения потока. Он взаимодействует с Origin и Edge серверами следующим образом:
1. Transcoder забирает с Origin поток по запросу Edge сервера.
2. Transcoder транскодирует поток в соответствии с настройками, указанными Edge сервером.
3. Edge забирает с Transcoder поток для воспроизведения.
Конкретный узел для транскодирования выбирается при выборе маршрута для воспроизведения потока.
Профили транскодинга
Для настройки транскодинга на Edge сервере используются профили. Файл профилей транскодинга cdn_profiles.yml должен располагаться в каталоге /usr/local/FlashphonerWebCallServer/conf:
profiles:
-webrtc-144:
audio:
type : AudioStreamProfile
codec : opus
rate : 48000
channels : 2
#this part forces transcoding
video:
type : VideoStreamProfile
width : 256
height : 144
codecImpl : OPENH264
Параметры профиля
| Параметр | Значения | Описание |
|---|---|---|
| Параметры аудио | ||
| type | AudioStreamProfile | Тип профиля (аудио или видео) |
| codec | opus mpeg4-generic | Используемый кодек аудио: Opus или AAC |
| rate | 8000 11025 12000 16000 22050 24000 32000 44100 48000 | Частота дискретизации звука |
| channels | 1 2 | Количество каналов: моно или стерео |
| Параметры видео | ||
| type | VideoStreamProfile | Тип профиля (аудио или видео) |
| width | Зависит от требуемого качества и пропускной способности каналов | Ширина картинки |
| height | Зависит от требуемого качества и пропускной способности каналов | Высота картинки |
| codeImpl | FF OPENH264 | Используемый кодек видео: на основе FFmpeg или OpenH.264 |