Известный облачный хостинг DigitalOcean недавно обзавелся собственным магазином с готовыми образами, из которого можно быстро развернуть любой сервер приложений.
Так же как и AWS, только ДЕЛАТЬ, для тех, кто уже пользуется услугами этого провайдера.
Давайте посмотрим, как, имея аккаунт DO, можно развернуть простой сервер за $10 в месяц для потоковой передачи WebRTC на базе Flashphoner WebCallServer, и чем такой сервер может быть полезен.
Развертывание
Войдите в свой аккаунт на ДО, перейдите по ссылке на изображение.
Flashphoner WebCallServer и нажмите кнопку «Создать дроплет веб-сервера вызовов Flashphoner»
Выбираем характеристики севера и тарифный план.
По умолчанию ДО предложит нам что-то из среднего сегмента, но нас интересует минимальная стоимость.
Выберите регион, в котором расположен дата-центр, например Франкфурт.
Выберите метод аутентификации, например, одноразовый пароль.
Указываем количество серверов (на данный момент нас интересует один сервер) и даем нашему серверу имя.
Это имя будет записано, помимо прочего, в /etc/hostname. Нажмите «Создать дроплет»
После создания сервер автоматически запустится.
Вы можете подключиться к нему по SSH и, если в качестве метода аутентификации был выбран одноразовый пароль, сменить пароль.
В консоли отобразится краткое описание Flashphoner WebCallServer со ссылками на документацию.
«Это испытание.
Ты меня видишьЭ» Flashphoner WebCallServer запускается полностью готовым к использованию, 30-дневная пробная лицензия активируется автоматически.
Есть веб-интерфейс для тестирования всех основных функций; мы ограничимся тестированием публикации и воспроизведения потока WebRTC. Откройте страницу в браузере https://droplet_ip:8444/admin/ .
По умолчанию сервер поставляется с самозаверяющим сертификатом, поэтому вам придется подтвердить исключение безопасности.
В дальнейшем вы сможете заменить сертификаты на свои.
Введите имя пользователя и пароль (по умолчанию демо )
Выберите пример двусторонней потоковой передачи на боковой панели, нажмите кнопку «Подключиться», затем «Опубликовать».
Для воспроизведения трансляции нажмите «Воспроизвести»
За пригоршню долларов
Что может сервер стоимостью 10 долларов в месяц в качестве аппаратной платформы для потоковой передачи WebRTC? Посмотрим, что нам предлагает DigitalOcean с точки зрения процессораlscpu
и по памяти
free -h
Проверяя сервер нагрузочными тестами, мы видим, что сервер умеет довольно многое.
Например, опубликуем один экземпляр потока и посмотрим, сколько подписчиков смогут одновременно воспроизводить этот поток, занимая не более 90% процессора:
Разрешение | Битрейт, кбит/с | Количество публикаций | Количество подписчиков |
---|---|---|---|
360p | 1300 | 1 | 70 |
480p | 1800 | 1 | 70 |
720p | 3000 | 1 | 50 |
Допустим, нам нужно перекодировать поток на сервере, чтобы уменьшить разрешение или выровнять FPS. Для этого случая проверим максимальное количество публикаций:
Разрешение | Битрейт, кбит/с | Количество потоков |
---|---|---|
360p | 1300 | 5 |
480p | 1800 | 3 |
720p | 3000 | 2 |
Например, вы можете:
- раздавать поток с IP-камеры через WebRTC для простого внутрикорпоративного видеонаблюдения;
- организовать вебинар для сотрудников небольшой компании
- улучшите свое интернет-радио (аудиопоток требует меньше ресурсов процессора)
"Я заслуживаю лучшего!"
Правила, в общем-то, очень простые: ядер не может быть слишком много, как и памяти.В зависимости от планируемого количества абонентов рекомендации из набора конфигураций, предлагаемых ДО, будут следующими:
Количество подписчиков | виртуальные процессоры | ОЗУ, ГБ | Трафик, ТБ | Пример использования |
---|---|---|---|---|
до 200 | 4 | 8 | 5 | Система видеонаблюдения |
до 500 | 8 | 16 | 6 | Вебинары |
до 1000 | 16 | 64 | 9 | Видео-конференция |
до 2000 | 20 | 96 | 10 | Потоковое HD-видео |
Допустим, нам нужно раздавать HD-видео, планируемое количество зрителей — 10 000. В этом случае нам понадобится 2 сервера Origin для публикации и 5 Edge-серверов для просмотра.
Пример настройки:
- Происхождение 1
cdn_enabled=true
cdn_ip=origin1.flashponer.com
cdn_nodes_resolve_ip=false
cdn_role=origin
- Происхождение 2
cdn_enabled=true
cdn_ip=origin2.flashponer.com
cdn_point_of_entry=origin1.flashponer.com
cdn_nodes_resolve_ip=false
cdn_role=origin
- Edge 1 - Edge 5 (здесь меняется только адрес сервера в параметре
cdn_ip
)
cdn_enabled=true
cdn_ip=edge1.flashphoner.com
cdn_point_of_entry=origin1.flashponer.com
cdn_nodes_resolve_ip=false
cdn_role=edge
CDN также может быть полезен, если подписчики распределены географически, например, наши потенциальные зрители живут в Европе и Америке.
Пример настройки:
- Происхождение ЕС
cdn_enabled=true
cdn_ip=origin_eu.flashponer.com
cdn_nodes_resolve_ip=false
cdn_role=origin
cdn_groups=EU
- Происхождение США
cdn_enabled=true
cdn_ip=origin_us.flashponer.com
cdn_point_of_entry=origin_eu.flashponer.com
cdn_nodes_resolve_ip=false
cdn_role=origin
cdn_groups=US
- Край 1 ЕС
cdn_enabled=true
cdn_ip=edge1_eu.flashphoner.com
cdn_point_of_entry=origin_eu.flashponer.com
cdn_nodes_resolve_ip=false
cdn_role=edge
cdn_groups=EU
- Край 1 США
cdn_enabled=true
cdn_ip=edge1_us.flashphoner.com
cdn_point_of_entry=origin_eu.flashponer.com
cdn_nodes_resolve_ip=false
cdn_role=edge
cdn_groups=US
Чем больше зрителей, тем больше разнообразие устройств воспроизведения и каналов к этим устройствам.
Для обеспечения качества трансляции на различных устройствах, скорее всего, потребуется перекодирование видео, которое можно поручить специальным CDN-серверам Transcoder.
Пример настройки:
- Источник
cdn_enabled=true
cdn_ip=origin.flashponer.com
cdn_nodes_resolve_ip=false
cdn_role=origin
cdn_groups=default
- Транскодер ЕС
cdn_enabled=true
cdn_ip=transcoder_eu.flashponer.com
cdn_point_of_entry=origin.flashponer.com
cdn_nodes_resolve_ip=false
cdn_role=transcoder
cdn_groups=EU
- Край 1 ЕС
cdn_enabled=true
cdn_ip=edge1_eu.flashphoner.com
cdn_point_of_entry=origin.flashponer.com
cdn_nodes_resolve_ip=false
cdn_role=edge
cdn_groups=EU
Для транскодирования, как мы выяснили в ходе теста, важно количество ядер процессора.
Из линейки конфигураций, оптимизированных под CPU, наиболее подойдет самая дорогая 32 vCPU, 64 Gb RAM. В то же время в других линейках конфигурации с большим объемом памяти, аналогичные по количеству процессоров, могут оказаться существенно дороже.
К сожалению, на транскодерах сэкономить не получится: поскольку видео кодируется покадрово, памяти должно хватить для всех картинок, а процессоров — для обработки всех потоков.
При развертывании CDN будет полезно одновременно создать несколько серверов одной конфигурации.
Однако для географически распределенной CDN серверы Edge и Transcoder одного и того же типа должны быть расположены в разных центрах обработки данных.
Заключение
Итак, мы развернули и протестировали небольшой сервер для потоковой передачи WebRTC-видео с низкой задержкой на DigitalOcean, убедились, что сервер в минимальной конфигурации подходит не только для тестирования, но и для использования в небольших проектах, получили данные для масштабирования в зависимости от ожидаемое количество зрителей, а также затронули тему развертывания CDN, которая сама по себе заслуживает отдельной статьи.
Оставайтесь с нами, продолжение следует.
Ссылки
Flashphoner WebCallServer на торговой площадке DigitalOcean — готовый образ Web Call Server в DigitalOcean. CDN для потоковой передачи WebRTC с низкой задержкой — сеть доставки контента на базе Web Call Server. Теги: #разработка iOS #разработка Android #программирование #разработка веб-сайтов #cdn #стриминг #cloud #вебинары #webrtc #стриминг #видеонаблюдение #Edge #low-latency #ip camera #ip camera #origin #broadcasting #streaming video #hd video #видеочат #aws amazon #digitalocean #Droplet #Transcoder-
Строка Google Wave В Профиле
19 Oct, 24 -
Активный Xss В Твиттере
19 Oct, 24 -
Солнечные Автомобильные Гонки
19 Oct, 24 -
Ddos - Мысли Вслух...
19 Oct, 24 -
«Сон Разума Рождает Чудовищ» ©
19 Oct, 24