Внедрение CDN для стриминга WebRTC с низкой задержкой
Здесь мы покажем пример развертывания минимальной конфигурации CDN для стриминга WebRTC с низкой задержкой на базе Web Call Server
На схеме ниже представлена примерная архитектура решения для развертывания CDN в минимальной конфигурации на основе 3 серверов в европейском дата-центре: 1 Origin сервер и 2 Edge сервера.
- Origin — сервер, предназначенный для публикации медиапотоков. Раздает потоки другим серверам, может раздавать и подписчикам.
- Edge — сервер, предназначенный для раздачи потоков подписчикам. Забирает потоки с Origin серверов, не раздает потоки другим серверам CDN.
Решение CDN для стриминга WebRTC с низкой задержкой работает по следующему принципу: Publisher отправляет поток на Origin-сервер. Subscriber запрашивает поток с Edge-сервера. Edge-сервер обращается к Origin-серверу. В результате, поток идет от Origin к Edge и далее к подписчику Subscriber, который запросил этот поток.
Установка Web Call Server на серверы CDN
1. Установите CentOS 7 x86_64 на сервер со следующими минимальными техническими характеристиками или выберите VPS с аналогичными параметрами:
- 2 гигабайта оперативной памяти
- 10 гигабайт места на диске
- 1 ядро процессора
2. Укажите в /etc/hosts имя сервера, проверьте доступность командой
1 | ping $HOSTNAME |
3. Установите epel-release
1 | yum install epel-release |
4. Установите wget
1 | yum install wget |
5. Установите JDK
1 | yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel |
6. Загрузите установочный пакет последней стабильной версии WebCallServer
1 | wget https: //flashphoner .com /download-wcs5 .2-server. tar .gz |
7. Установите WCS
1 2 3 | tar -xvzf download-wcs5.2-server. tar .gz cd FlashphonerWebCallServer-5.2.xxxx . /install .sh |
8. Запустите WCS-сервер
1 | systemctl start webcallserver |
9. Убедитесь, что сервер стартовал успешно
1 | tail -f /usr/local/FlashphonerWebCallServer/logs/flashphoner .log |
10. Активируйте Вашу лицензию
1 2 | cd /usr/local/FlashphonerWebCallServer/bin . /activation .sh |
Настройка серверов
Добавьте в файл настроек flashphoner.properties каждого сервера следующие настройки (доменные имена серверов указаны для примера):
- Origin EU
1 2 3 4 | cdn_enabled= true cdn_ip=o-eu1.flashponer.com cdn_nodes_resolve_ip= false cdn_role=origin |
- Edge 1 EU
1 2 3 4 5 | cdn_enabled= true cdn_ip=e-eu1.flashphoner.com cdn_point_of_entry=o-eu1.flashponer.com cdn_nodes_resolve_ip= false cdn_role=edge |
- Edge 2 EU
1 2 3 4 5 | cdn_enabled= true cdn_ip=e-eu2.flashphoner.com cdn_point_of_entry=o-eu1.flashponer.com cdn_nodes_resolve_ip= false cdn_role=edge |
После изменения настроек серверы необходимо перезапустить.
Тестирование
Откройте пример Two Way Streaming на сервере o-eu1, и опубликуйте изображение с веб-камеры или виртуальной камеры, например, циклический ролик с таймером обратного отсчета от 10 минут до 0
Откройте пример Player на серверах e-eu1 и e-eu2, проиграйте поток
Загрузить Web Call Server 5
Системные требования: Linux x86_64, 1 core CPU, 2 Gb RAM, Java
Установка:
- wget https://flashphoner.com/download-wcs5.2-server.tar.gz
- Распаковать и установить с помощью скрипта 'install.sh'
- Запустить сервер с помощью команды 'service webcallserver start'
- Открыть веб-интерфейс https://host:8444 и активировать вашу лицензию
Если вы используете серверы Amazon EC2, то скачивать ничего не нужно.