X-Git-Url: https://git.toastfreeware.priv.at/toast/stream2beamer.git/blobdiff_plain/bab80dd63609c0ee54f57fd549ac0db54b2f2972..79b48f600654333ecc6442ee8c50f184c3a2bc3d:/stream2beamer.md diff --git a/stream2beamer.md b/stream2beamer.md index eefe5b7..744c95d 100644 --- a/stream2beamer.md +++ b/stream2beamer.md @@ -10,6 +10,13 @@ IPv6+IPv4, and no TLS: ./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) @@ -29,9 +36,25 @@ 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) +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 + # 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 @@ -40,7 +63,37 @@ has been set (see https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issue * 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/ + # 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