Skip to content

Публикация по 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}.

Stream settings

Для публикации потока используйте следующий URL в вашем приложении-клиенте:

http://FLUSSONIC-IP:PORT/STREAM_NAME/whip

См. также справочник Streaming API, где подробно описано, как составить тело запроса.

Необязательные настройки

Создав поток с источником publish://, вы можете сразу включить публикацию в него. Никакие дополнительные настройки не являются строго обязательными, но они могут потребоваться вам для решения тех или иных задач. Ниже приведены возможные варианты дальнейших действий с публикацией WebRTC.

Параметры потока

Можно настроить параметры публикуемого по WebRTC потока, зайдя в options на вкладке Input в профиле потока. Доступны следующие параметры:

  • Выходной аудиокодек — настройка транскодирования звука.
  • Максимальный и минимальный битрейт — базовые настройки адаптивной публикации по WebRTC

Note

Если вы используете публикацию в поток с динамическим именем, эти настройки задаются в шаблоне, а не в конкретном потоке. Полный список опций для WebRTC потоков см. в схеме API.

Защита публикации

Чтобы никто, кроме ваших пользователей, не мог публиковать видео на сервер, вы можете защитить публикацию одним из следующих способов:

Тестовая публикация с веб-камеры

Чтобы проверить правильность настроек, вы можете включить публикацию с веб-камеры в созданный поток. Для этого нажмите кнопку Publish From Webcam на вкладке Input в профиле потока и разрешите браузеру доступ к камере и микрофону.

Publish from webcam

Окно предпросмотра видео с веб-камеры будет отображено здесь же.

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!".