gstreamer-send-offer is a simple application that shows how to send video using Pion WebRTC and GStreamer. This is meant to be used with gstreamer-receive
, if you want to send via to your browser try gstreamer-send
This example requires you have GStreamer installed, these are the supported platforms
sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-good
pacman -S mingw-w64-x86_64-gstreamer mingw-w64-x86_64-gst-libav mingw-w64-x86_64-gst-plugins-good mingw-w64-x86_64-gst-plugins-bad mingw-w64-x86_64-gst-plugins-ugly
brew install gst-plugins-good pkg-config && export PKG_CONFIG_PATH="/usr/local/opt/libffi/lib/pkgconfig
go run gstreamer-send-offer/*.go | go run gstreamer-receive/*.go
You will see a base64 SDP printed to your console. You now need to communicate this back to gstreamer-send-offer
this can be done via a HTTP endpoint
curl localhost:8080/sdp -d "BASE_64_SDP"
A video should start playing via GStreamer and will continue playing until you close the application.
Congrats, you have used Pion WebRTC! Now start building something cool
gstreamer-send-offer
also accepts the command line arguments -video-src
and -audio-src
allowing you to provide custom inputs.
When prototyping with GStreamer it is highly recommended that you enable debug output, this is done by setting the GST_DEBUG
enviroment variable.
You can read about that here a good default value is GST_DEBUG=*:3
You can also prototype a GStreamer pipeline by using gst-launch-1.0
to see how things look before trying them with gstreamer-send
for the examples below you
also may need additional setup to enable extra video codecs like H264. The output from GST_DEBUG should give you hints
These pipelines work on Linux, they may have issues on other platforms. We would love PRs for more example pipelines that people find helpful!
-
a webcam, with computer generated audio.
gstreamer-send-offer -video-src "autovideosrc ! video/x-raw, width=320, height=240 ! videoconvert ! queue"
-
a pre-recorded video, sintel.mkv is available here
gstreamer-send-offer -video-src "uridecodebin uri=file:///tmp/sintel.mkv ! videoscale ! video/x-raw, width=320, height=240 ! queue " -audio-src "uridecodebin uri=file:///tmp/sintel.mkv ! queue ! audioconvert"