Перейти к содержанию

Публикация WebRTC по протоколу WHIP

Описание

В сборке 5.2.1816 добавлена поддержка протокола WebRTC-HTTP ingestion protocol (WHIP). Этот протокол предполагает использование стандартизированного обмена SDP для установки WebRTC соединения через HTTP POST запрос

В настоящее время WHIP поддерживается OBS начиная с версии 30, только на операционной системе Windows. Кроме обмена SDP, публикация потока по WHIP не отличается от публикации из браузера по WebRTC.

Поддерживаемые кодеки

Видео:

  • H264
  • VP8, если средство публикации его поддерживает
  • H265, если средство публикации его поддерживает

Аудио:

  • Opus
  • G711 (PCMA, PCMU), если средство публикации его поддерживает

Схема работы

  1. Публикующий клиент (OBS) посылает HTTP POST запрос /rest-api/stream/publish/streamName с SDP offer

  2. Публикующий клиент получает 202 Accepted с SDP answer

  3. Публикующий клиент устанавливает WebRTC соединение и публикует поток

  4. Зритель устанавливает Websocket соединение и отправляет команду playStream

  5. Зритель устанавливает WebRTC соединение и получает опубликованный поток

Тестирование

  1. Для тестирования используются:
    - WCS сервер - OBS 30 и новее под Windows для публикации потока - пример Player в браузере Chrome для воспроизведения потока

  2. В настройках OBS на вкладке Stream выбирается сервис WHIP, в поле Server вводится URL HTTP POST запроса, включая имя публикуемого потока

  3. Поток публикуется в OBS

  4. В браузере Chrome открывается пример Player c тестируемого сервера, в примере необходимо указать имя потока whipStream и нажать Play

Известные проблемы

1. OBS не поддерживает публикацию WebRTC по TCP

Симптомы

При активной настройке сервера ice_tcp_transport=true поток не публикуется из OBS

Решение

Переключиться на UDP на стороне сервера

ice_tcp_transport=false