Публикация по WebRTC¶
Когда вы разрабатываете собственное приложение или веб-сайт для обмена видео и/или аудио по WebRTC, то можете отправлять во Flussonic видео и/или аудио, чтобы поддержать в своем проекте функции, расширяющие базовый протокол. Здесь вы найдете рекомендации по использованию возможностей Flussonic в своем проекте. Ниже описано, как настроить Flussonic для приема публикации по WebRTC.
Публикация осуществляется про стандарту WHIP. О том, что такое WebRTC, WHIP и WHEP, читайте в главе Использование протокола WebRTC.
Содержание:
Предварительные требования¶
- Настройте HTTPS. В большинстве современных браузеров публикация видео и аудио потоков по WebRTC возможна только по защищенному соединению.
- Не закрывайте UDP-порты. У Flussonic нет фиксированного диапазона портов для WebRTC, т.е. используются те порты, которые выделит ОС. Закрыв те или иные UDP-порты, вы можете случайно попасть на используемые. Чтобы безопасно разрешить прослушивание всех портов по UDP, не используйте на сервере с Flussonic другое ПО.
Настройка WebRTC-потока в Flussonic¶
На сервере Flussonic добавьте в конфигурацию публикуемый поток с источником publish://
. Это можно сделать несколькими способами:
- В UI как описано здесь
- Через API
Flussonic-API: PUT /streamer/api/v3/streams/{name}
.
Для публикации потока используйте следующий URL в вашем приложении-клиенте:
http://FLUSSONIC-IP:PORT/STREAM_NAME/whip
См. также справочник Streaming API, где подробно описано, как составить тело запроса.
Необязательные настройки¶
Создав поток с источником publish://
, вы можете сразу включить публикацию в него. Никакие дополнительные настройки не являются строго обязательными, но они могут потребоваться вам для решения тех или иных задач. Ниже приведены возможные варианты дальнейших действий с публикацией WebRTC.
Параметры потока¶
Можно настроить параметры публикуемого по WebRTC потока, зайдя в options на вкладке Input в профиле потока. Доступны следующие параметры:
- Выходной аудиокодек — настройка транскодирования звука.
- Максимальный и минимальный битрейт — базовые настройки адаптивной публикации по WebRTC
Note
Если вы используете публикацию в поток с динамическим именем, эти настройки задаются в шаблоне, а не в конкретном потоке. Полный список опций для WebRTC потоков см. в схеме API.
Защита публикации¶
Чтобы никто, кроме ваших пользователей, не мог публиковать видео на сервер, вы можете защитить публикацию одним из следующих способов:
Тестовая публикация с веб-камеры¶
Чтобы проверить правильность настроек, вы можете включить публикацию с веб-камеры в созданный поток. Для этого нажмите кнопку Publish From Webcam на вкладке Input в профиле потока и разрешите браузеру доступ к камере и микрофону.
Окно предпросмотра видео с веб-камеры будет отображено здесь же.
Warning
Этот способ публикации доступен только для тестовых целей. Конечные пользователи как правило не имеют доступа в административный интерфейс Flussonic и смогут опубликовать видео только через ваше приложение (веб-сайт).
Публикация с адаптивным битрейтом¶
Публикация на Flussonic по умолчанию выполняется с адаптивным битрейтом (Adaptive Bit Rate, ABR). Это означает, что Flussonic помогает источнику публикации подстраивать битрейт под пропускную способность канала. Подробнее см. Адаптивная публикация по WebRTC.
Балансировка нагрузки при публикации по WHIP¶
Благодаря тому, что WHIP основан на HTTP POST-запросах, вы можете применять балансировщик нагрузки для распределения запросов на публикацию между серверами в кластере. Балансировщик будет перенаправлять POST-запросы на серверы в кластере, используя HTTP код перенаправления 307.
Опции публикации в WebRTC Player¶
Если вы используете для публикации WebRTC Player, следуя рекомендациям по созданию клиентского приложения, то сможете гибко настраивать публикацию. Подробные инструкции и примеры есть в readme. Например, вы можете сконфигурировать плеер, чтобы:
- Организовать аудио-подкасты по WebRTC. Для этого установите опции
video: false
иaudio: true
вconstraints
. - Накладывать пользовательские фильтры на видео с помощью
canvas
. Пример страницы с WebRTC Player включает использованиеcanvas
. Если вы попробуете запустить этот пример, то увидите, что на публикуемое видео наложен фильтр "sepia", а поверх видео отображается текст "It's publishing to Flussonic!".