From f67effc9e95b0f18f926ad56098c539c0f88bb6e Mon Sep 17 00:00:00 2001 From: Philipp Spitzer Date: Sat, 23 May 2020 14:55:26 +0200 Subject: [PATCH] Start to write a sort of README how to set up the streaming. --- stream2beamer.md | 53 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 stream2beamer.md diff --git a/stream2beamer.md b/stream2beamer.md new file mode 100644 index 0000000..33ed905 --- /dev/null +++ b/stream2beamer.md @@ -0,0 +1,53 @@ +# Stream Desktop/Video/Webcam to Kodi/Beamer/other PCs +Gregor and I had a closer look at the following projects: + +# Laplace +Simple WebRTC implementation in GO: https://github.com/adamyordan/laplace.git +Simple to compile and just works. +WebRTC actually uses SRTP (Secure Real-time Transport Protocol). + + +# gstreamer +## WebRTC +gstreamer has a WebRTC implementation. +The examples at https://github.com/centricular/gstwebrtc-demos.git work once + + export OPENSSL_CONF='' + +has been set (see https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/811) + + +# VLC +Note that you have to close VLC and open it again for new streaming as VLC leaves the connections +open (I spent hours figuring out why http based streaming doesn't work - `netstat -4 --ip` is nice +for debugging in that respect). + +## RTP +### Source +The address has to be the address where the video should be streamed **to**. In the following +examples, a multicast address is used. It is either the IP address of the device receiving the video (unicast address) or a multicast address +like 239.255.12.42 (multicast addresses are between 225.0.0.0 and 238.255.255.255). + + cvlc -vv --sout '#transcode{vcodec=h264,acodec=mpga,channels=2,vb=800,ab=128}:rtp{mux=ts,dst=239.255.12.42,sdp=sap,name="Geris Game"}' GerisGame.mp4 + cvlc -vv --sout '#transcode{vcodec=h264,acodec=mpga,ab=128,channels=2,samplerate=44100,scodec=none}:rtp{dst=239.255.12.42,port=5004,mux=ts,sap,name=Geris Game}' :no-sout-all :sout-keep GerisGame.mp4 + cvlc -vv --sout '#transcode{vcodec=h264,acodec=mpga,channels=2}:rtp{mux=ts,dst=239.255.12.42,sdp=sap,name="Videokamera"}' v4l2:///dev/video0 # long latency + cvlc -vv --sout '#transcode{vcodec=h264,acodec=mpga,channels=2}:rtp{mux=ts,dst=239.255.12.42,sdp=sap,name="Desktop"}' screen:// # not convincing + +### Player + cvlc rtp://239.255.12.42 + + +## RTSP +For VLC, RTSP means RTSP combined with RTP. + +### Source + cvlc -vv --sout '#transcode{vcodec=h264,acodec=mpga,ab=128,channels=2,samplerate=44100,scodec=none}:rtp{sdp=rtsp://:8554/}' :no-sout-all :sout-keep GerisGame.mp4 + +### Player +The address needs to be the address of the souce. Note the backslash at the end. + + cvlc rtsp://192.168.1.54:8554/ + + +# HTTP +Works as well, the address at the source side has to be the external one of the local computer. \ No newline at end of file -- 2.39.5