]> ToastFreeware Gitweb - toast/stream2beamer.git/blobdiff - stream2beamer.md
Remove audio path.
[toast/stream2beamer.git] / stream2beamer.md
index 39008532ca6315cc782494ccfecf391a1ac0315b..8fe72e41806bdbbdde39114114f26a8def0c1b61 100644 (file)
@@ -10,6 +10,13 @@ IPv6+IPv4, and no TLS:
 
     ./laplace -addr "[::]:8080" -tls=false
 
 
     ./laplace -addr "[::]:8080" -tls=false
 
+## WebRTC signaling
+
+* https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API/Signaling_and_video_calling
+* https://www.tutorialspoint.com/webrtc/webrtc_signaling.htm
+* https://www.html5rocks.com/en/tutorials/webrtc/infrastructure/
+* https://github.com/topics/webrtc-signaling
+
 # gstreamer
 * Supports RTP
 * Supports webcam capture via v4l (video for linux)
 # gstreamer
 * Supports RTP
 * Supports webcam capture via v4l (video for linux)
@@ -29,10 +36,91 @@ The examples at https://github.com/centricular/gstwebrtc-demos.git work once
 
 has been set (see https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/811)
 
 
 has been set (see https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/811)
 
+There's a new recvonly example:
+
+* https://github.com/centricular/gstwebrtc-demos/commit/000cfb6cd817ca0f07d761795b352a8b8b9074f8
+* `sendonly/webrtc-recvonly-h264.c`
+
 ## gstreamer examples
     gst-launch-1.0 -v playbin uri=file:///home/philipp/tmp/GerisGame.mp4
     
 ## gstreamer examples
     gst-launch-1.0 -v playbin uri=file:///home/philipp/tmp/GerisGame.mp4
     
+    # send
+    gst-launch-1.0 ximagesrc ! videoconvert ! videoscale ! video/x-raw,width=800,height=600 ! vp8enc ! rtpvp8pay ! udpsink host=239.255.12.42 port=5004
+    # receive
+    gst-launch-1.0 udpsrc address=239.255.12.42 port=5004 caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)VP8-DRAFT-IETF-01, payload=(int)96, ssrc=(uint)2990747501, clock-base=(uint)275641083, seqnum-base=(uint)34810" ! rtpvp8depay ! vp8dec ! autovideosink
     
     
+    # send
+    gst-launch-1.0 -v ximagesrc ! videoconvert ! videoscale ! video/x-raw,format=I420,width=800,height=600,framerate=25/1 ! jpegenc ! rtpjpegpay ! udpsink host=239.255.12.42 port=5004
+    # receive
+    gst-launch-1.0 udpsrc address=239.255.12.42 port=5004 ! application/x-rtp,encoding-name=JPEG,payload=26 ! rtpjpegdepay ! jpegdec ! autovideosink
+
+
+* https://stackoverflow.com/questions/33747500/using-gstreamer-to-capture-screen-and-show-it-in-a-window/33822024#33822024
+* http://www.einarsundgren.se/gstreamer-basic-real-time-streaming-tutorial/
+* https://gist.github.com/tetkuz/0c038321d05586841897
+* https://gist.github.com/esrever10/7d39fe2d4163c5b2d7006495c3c911bb
+* https://gist.github.com/nebgnahz/26a60cd28f671a8b7f522e80e75a9aa5
+* https://salsa.debian.org/debconf-video-team/ansible/-/blob/master/roles/voctomix/templates/videoteam-stream.j2
+* https://github.com/xfxf/video-scripts/blob/master/michael/youtube-live.sh
+  (and others in the same repo)
+
+## gstreamer webrtc, another example
+
+* blog post: https://aweirdimagination.net/2020/07/05/gstreamer-webrtc/
+* code: https://git.aweirdimagination.net/perelman/minimal-webrtc-gstreamer
+    
+## websockets
+
+connecting to websockets (plus gstreamer and v4l2sink)
+
+https://michael.stapelberg.ch/posts/2020-06-06-iphone-camera-linux-v4l2loopback/
+
+       # send
+       laplace / chromium
+
+       # receive
+       websocat --insecure "wss://localhost:8080/ws_connect?id=cranky_kind_chipmunk"
+
+## more v4l2loopback/v4l2sink
+
+       # send
+       gst-launch-1.0 videotestsrc ! v4l2sink device=/dev/video42
+
+       # receive
+       cvlc v4l2:///dev/video42
+
+## SRT and gstreamer
+
+* https://github.com/Haivision/srt/blob/master/docs/gstreamer.md
+* https://srtlab.github.io/srt-cookbook/
+
+## gstreamer and rtsp
+
+working minimal example: https://github.com/Enne2/PyGObject-GstRtspServer/blob/master/rtsp-server.py
+
+other maybe helpful links (for getting an existing pipeline streamed):
+
+* https://stackoverflow.com/questions/52562499/is-it-possible-to-stream-an-existing-gstreamer-pipeline-through-gstrtspserver
+* http://gstreamer-devel.966125.n4.nabble.com/Continuously-streaming-a-video-file-code-review-td4671364.html
+* https://stackoverflow.com/questions/59858898/how-to-convert-a-video-on-disk-to-a-rtsp-stream
+* http://gstreamer-devel.966125.n4.nabble.com/RTSP-Server-from-a-manually-created-and-linked-pipeline-td4680305.html
+* http://gstreamer-devel.966125.n4.nabble.com/Using-C-API-based-pipelines-in-RTSP-server-without-quot-launch-quot-arg-td4680144.html
+* RTSP on_media_configure and appsrc: https://github.com/GStreamer/gst-rtsp-server/blob/master/examples/test-appsrc.c
+* Link two pipelines: http://gstreamer-devel.966125.n4.nabble.com/Two-pipelines-link-them-merge-them-easy-handling-td4686753.html
+
+a "relay" between cameras and rtsp, in rust:
+
+* https://github.com/thirtythreeforty/neolink
+
+## gstreamer: from udp to rtsp
+
+* http://trac.gateworks.com/wiki/Yocto/gstreamer/streaming
+
+## HLS
+
+or gstreamer's `hlssink(2)`, if we want to serve files via HTTP and kodi can
+read/play .m3u8 playlist
+
 # 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
 # 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