Внедрение 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 имя сервера, проверьте доступность командой
ping $HOSTNAME
3. Установите epel-release
yum install epel-release
4. Установите wget
yum install wget
5. Установите JDK
yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel
6. Загрузите установочный пакет последней стабильной версии WebCallServer
wget https://flashphoner.com/download-wcs5.2-server.tar.gz
7. Установите WCS
tar -xvzf download-wcs5.2-server.tar.gz cd FlashphonerWebCallServer-5.2.xxxx ./install.sh
8. Запустите WCS-сервер
systemctl start webcallserver
9. Убедитесь, что сервер стартовал успешно
tail -f /usr/local/FlashphonerWebCallServer/logs/flashphoner.log
10. Активируйте Вашу лицензию
cd /usr/local/FlashphonerWebCallServer/bin ./activation.sh
Настройка серверов
Добавьте в файл настроек flashphoner.properties каждого сервера следующие настройки (доменные имена серверов указаны для примера):
- Origin EU
cdn_enabled=true cdn_ip=o-eu1.flashponer.com cdn_nodes_resolve_ip=false cdn_role=origin
- Edge 1 EU
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
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, то скачивать ничего не нужно.