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

Публикация RTP потока по RTSP

Описание

В сборке 5.2.902 добавлена возможность публикации RTP потока по RTSP. Поддерживается как TCP interleaved, так и UDP транспорт. Данный способ может быть удобен для публикации H264+Opus потоков из программного или аппаратного кодировщика, поддерживающего RTSP. Начиная со сборки 5.2.1584, поддерживается также публикация H265 кодека.

Поддержка кодеков

Video: - H264 - H265 (начиная со сборки 5.2.1584) - VP8

Audio: - AAC - Opus

Схема работы

  1. Live Encoder соединяется с сервером по протоколу RTSP и отправляет команду ANNOUNCE.
  2. Live Encoder отправляет RTP поток на сервер.
  3. Браузер устанавливает соединение по Websocket и отправляет команду playStream.
  4. Браузер получает WebRTC поток и воспроизводит этот поток на странице.

Краткое руководство по тестированию

  1. Для теста используем:
  2. WCS сервер
  3. ffmpeg для публикации RTP потока по RTSP
  4. веб-приложение Player в браузере Chrome для воспроизведения потока

  5. Запустите публикацию RTSP H264+Opus при помощи ffmpeg

    ffmpeg -stream_loop -1 -re -i bunny360p.mp4 -c:a libopus -ac 2 -ar 48000 -c:v copy -b:a 96K -b:v 500K -f rtsp -rtsp_transport tcp rtsp://test1.flashphoner.com:554/test
    

  6. Откройте веб-приложение Player. Укажите в поле Stream имя потока и нажмите кнопку Start. Начнется проигрывание опубликованного потока

Публикация H265

Начиная со сборки 5.2.1584, поддерживается публикация RTP потока в кодеке H265 по RTSP

ffmpeg -re -i source.mp4 -c:v libx265 -c:a aac -b:a 160k -bsf:v hevc_mp4toannexb -keyint_min 60 -profile:v main -preset veryfast -x265-params crf=23:bframes=0 -f rtsp -rtsp_transport tcp rtsp://test1.flashphoner.com:554/test

Для этого H265 должен быть добавлен в список поддерживаемых кодеков

codecs=opus,alaw,ulaw,g729,speex16,g722,mpeg4-generic,telephone-event,h264,vp8,flv,mpv,h265

и в списки исключений

codecs_exclude_sip=mpeg4-generic,flv,mpv,h265
codecs_exclude_sip_rtmp=opus,g729,g722,mpeg4-generic,vp8,mpv,h265
codecs_exclude_sfu=alaw,ulaw,g729,speex16,g722,mpeg4-generic,telephone-event,flv,mpv,h265

Warning

При проигрывании H265 потока любым способом на сервере включается транскодинг из H265 в H264 или VP8!

Настройка RTSP порта для публикации

По умолчанию, используется TCP порт 554

rtsp.port=554

Однако, данный порт является привилегированным и доступен для прослушивания только при запуске с правами root. Если WCS запускается от пользователя flashphoner (режим запуска по умолчанию), необходимо изменить значение, например

rtsp.port=5554