Публикация 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
Схема работы¶
- Live Encoder соединяется с сервером по протоколу RTSP и отправляет команду
ANNOUNCE
. - Live Encoder отправляет RTP поток на сервер.
- Браузер устанавливает соединение по Websocket и отправляет команду
playStream
. - Браузер получает WebRTC поток и воспроизводит этот поток на странице.
Краткое руководство по тестированию¶
- Для теста используем:
- WCS сервер
- ffmpeg для публикации RTP потока по RTSP
-
веб-приложение Player в браузере Chrome для воспроизведения потока
-
Запустите публикацию RTSP H264+Opus при помощи ffmpeg
-
Откройте веб-приложение 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_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
Однако, данный порт является привилегированным и доступен для прослушивания только при запуске с правами root
. Если WCS запускается от пользователя flashphoner
(режим запуска по умолчанию), необходимо изменить значение, например