RTP stream publishing via RTSP¶
Overview¶
Since build 5.2.902 it is possible to publish RTP stream via RTSP directly to WCS. Both TCP interleaved and UDP transports are supported. This can be useful to publish H264+Opus streams from hardware or software encoder supporting RTSP. Since build 5.2.1584, H265 codec is also supported for publishing.
Codecs supported¶
Video: - H264 - H265 (since build 5.2.1584) - VP8
Audio: - AAC - Opus
Operation flowchart¶
- Live Encoder connects to the server via RTSP and sends
ANNOUNCE
command. - Live Encoder sends RTP stream to the server.
- The browser establishes a connection via Websocket and sends the
playStream
command - The browser receives the WebRTC stream and plays that stream on the page.
Quick manual on testing¶
- For test we use:
- WCS server
- ffmpeg to publish RTP stream via RTSP
-
Player web application in Chrome browser to play the stream
-
Start RTSP H264+Opus stream publishing using ffmpeg
-
Open Player application. Set stream name to
Stream
field and clickStart
. The stream published playback begins
H265 publishing¶
Since build 5.2.1584, RTP stream in H265 codec may be published via 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
To do this, H265 should be added to codecs supported list
and to exclusion lists
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 stream will be transcoded to H264 or VP8 to play from server!
RTSP port setup¶
TCP port 554 is used by default to publish RTP stream via RTSP
However, the port is privileged and is available to listen to applications launched by root
only. If WCS is starting from flashphoner
user (the default launch mode), the port should be changed, for example