# RTSP * [RFC2326:Real Time Streaming Protocol (RTSP)](https://www.ietf.org/rfc/rfc2326.txt): Also explains meaning of RTSP specific SDP fields like "a:control:streamid=0" ## Send to RTSP ffmpeg -f x11grab -framerate 25 -video_size 1680x1050 -i :0.0 \ -f pulse -ac 2 -i default \ -vcodec libx264 -preset ultrafast -tune zerolatency -crf 0 -g 25 \ -async 1 -acodec libmp3lame \ -bsf:v h264_mp4toannexb \ -f rtsp -muxdelay 0.1 rtsp://localhost:5545/abc gst-launch-1.0 videotestsrc ! avenc_mpeg4 ! video/mpeg, mapping=/stream1 ! rtspclientsink location=rtsp://127.0.0.1:5545/abcd ### OBS (Open Broadcast Studio): * Use rtsp://localhost:8554/abc in the recording options with RTSP container format and "start recording" or * if using the [rtsp-simple-server](https://github.com/aler9/rtsp-simple-server), enter "rtmp://localhost/abc" in the streaming section and "start streaming". Although RTMP is used for sending to the RTSP server, the RTSP protocol can be used to receive the stream. ## Receiving stream via RTSP ffplay -i rtsp://localhost:554/abc gst-launch-1.0 -v playbin uri=rtsp://127.0.0.1:554/abc mpv --rtsp-transport=lavf rtsp://127.0.0.1:554/abc mplayer rtsp://127.0.0.1:554/abc vlc rtsp://127.0.0.1:554/abc # does not work ## Server software * `rtsp-server-perl` * Error handling SETUP: Can't call method "get_stream" on an undefined value at /usr/share/perl5/RTSP/Server/Client/Connection.pm line 100. * RTSP/Server/Connection.pm:332, function get_mount * https://github.com/aler9/rtsp-simple-server * `make release-nodocker` (optionally after commenting out all unneeded architectures in `Makefile`, and maybe also the call to tar. Cf. ./tmp and ./release afterwards) * Default port for both sources and clients: 8554