Start to write a sort of README how to set up the streaming.
[toast/stream2beamer.git] / stream2beamer.md
1 # Stream Desktop/Video/Webcam to Kodi/Beamer/other PCs
2 Gregor and I had a closer look at the following projects:
3
4 # Laplace
5 Simple WebRTC implementation in GO: https://github.com/adamyordan/laplace.git
6 Simple to compile and just works.
7 WebRTC actually uses SRTP (Secure Real-time Transport Protocol). 
8
9
10 # gstreamer
11 ## WebRTC
12 gstreamer has a WebRTC implementation.
13 The examples at https://github.com/centricular/gstwebrtc-demos.git work once
14
15     export OPENSSL_CONF=''
16
17 has been set (see https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/811)
18
19
20 # VLC
21 Note that you have to close VLC and open it again for new streaming as VLC leaves the connections
22 open (I spent hours figuring out why http based streaming doesn't work - `netstat -4 --ip` is nice
23 for debugging in that respect).
24
25 ## RTP
26 ### Source
27 The address has to be the address where the video should be streamed **to**. In the following
28 examples, a multicast address is used. It is either the IP address of the device receiving the video (unicast address) or a multicast address 
29 like 239.255.12.42 (multicast addresses are between 225.0.0.0 and 238.255.255.255).
30
31     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
32     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
33     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
34     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
35
36 ### Player
37     cvlc rtp://239.255.12.42
38
39
40 ## RTSP
41 For VLC, RTSP means RTSP combined with RTP.
42
43 ### Source
44     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
45
46 ### Player
47 The address needs to be the address of the souce. Note the backslash at the end.
48
49     cvlc rtsp://192.168.1.54:8554/
50
51
52 # HTTP
53 Works as well, the address at the source side has to be the external one of the local computer.