Описание
В сборке 5.2.902 добавлена возможность публикации RTP потока по RTSP. Поддерживается как TCP interleaved, так и UDP транспорт. Данный способ может быть удобен для публикации H264+Opus потоков из программного или аппаратного кодировщика, поддерживающего RTSP. Начиная со сборки 5.2.1584, поддерживается также публикация H265 кодека.
Поддержка кодеков
- H264
- H265 (начиная со сборки 5.2.1584)
- VP8
- AAC
- Opus
Схема работы
- Live Encoder соединяется с сервером по протоколу RTSP и отправляет команду ANNOUNCE.
- Live Encoder отправляет RTP поток на сервер.
- Браузер устанавливает соединение по Websocket и отправляет команду play.
- Браузер получает WebRTC поток и воспроизводит этот поток на странице.
Краткое руководство по тестированию
1. Для теста используем:
- WCS сервер
- ffmpeg
- веб-приложение Player в браузере Chrome для воспроизведения потока
2. Запустите публикацию 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
3. Откройте веб-приложение 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
При проигрывании H265 потока любым способом на сервере включается транскодинг из H265 в H264 или VP8!
Настройка RTSP порта для публикации
По умолчанию, используется TCP порт 554
rtsp.port=554
Однако, данный порт является привилегированным и доступен для прослушивания только при запуске с правами root
. Если WCS запускается от пользователя flashphoner
(режим запуска по умолчанию), необходимо изменить значение, например
rtsp.port=5554