Remove gstreamer_main_loop().
[toast/stream2beamer.git] / protocols.md
1 # RTSP
2
3 * [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"
4
5 ## Send to RTSP
6
7     ffmpeg -f x11grab -framerate 25 -video_size 1680x1050 -i :0.0 \
8            -f pulse -ac 2 -i default \
9            -vcodec libx264 -preset ultrafast -tune zerolatency -crf 0 -g 25 \
10            -async 1 -acodec libmp3lame \
11            -bsf:v h264_mp4toannexb \
12            -f rtsp -muxdelay 0.1 rtsp://localhost:5545/abc
13     gst-launch-1.0 videotestsrc ! avenc_mpeg4 ! video/mpeg, mapping=/stream1 !  rtspclientsink location=rtsp://127.0.0.1:5545/abcd
14
15 ### OBS (Open Broadcast Studio):
16 * Use rtsp://localhost:8554/abc in the recording options with RTSP container format and "start recording" or
17 * if using the [rtsp-simple-server](https://github.com/aler9/rtsp-simple-server), enter "rtmp://localhost/abc"
18   in the streaming section and "start streaming". Although RTMP is used for sending to the RTSP server, the RTSP
19   protocol can be used to receive the stream.
20
21 ### Send to RTSP server via RTMP
22
23 * https://forums.developer.nvidia.com/t/how-to-publish-x264-encode-data-to-rtmpsink-in-gstreamer/64288/5
24
25     gst-launch-1.0 -v videotestsrc ! x264enc ! 'video/x-h264,stream-format=(string)avc' ! flvmux ! rtmpsink  location=rtmp://sirius:1935/gregoa
26
27 ## Receiving stream via RTSP
28
29     ffplay -i rtsp://localhost:554/abc
30     gst-launch-1.0 -v playbin uri=rtsp://127.0.0.1:554/abc
31     mpv --rtsp-transport=lavf rtsp://127.0.0.1:554/abc
32     mplayer rtsp://127.0.0.1:554/abc
33     vlc rtsp://127.0.0.1:554/abc # does not work
34
35
36 ## Server software
37
38 * `rtsp-server-perl`
39   * Error handling SETUP: Can't call method "get_stream" on an undefined value at /usr/share/perl5/RTSP/Server/Client/Connection.pm line 100.
40   * RTSP/Server/Connection.pm:332, function get_mount
41 * https://github.com/aler9/rtsp-simple-server
42   * `make release-nodocker` (optionally after commenting out all unneeded
43     architectures in `Makefile`, and maybe also the call to tar. Cf. ./tmp
44     and ./release afterwards)
45   * Default port for both sources and clients: 8554