The following are a collection of example applications built by Pion users. These applications show real world usage of Pion, and should serve as a good starting point for your next project. For more minimal examples check out examples in the Pion WebRTC repository
If you have a request please make an issue, we also love contributions more examples are always welcome.
Have any questions? Join the Slack channel to follow development and speak with the maintainers.
- GoCV Receive: Example gocv-receive shows how to receive media using Pion and then do motion detection with GoCV.
- Gstreamer Receive: Example gstreamer-receive shows how to receive media from the browser and play it live. This example uses GStreamer for rendering.
- Gstreamer Send: Example gstreamer-send shows how to send video to your browser. This example uses GStreamer to process the video.
- Gstreamer Send Offer: Example gstreamer-send-offer is a variant of gstreamer-send that initiates the WebRTC connection by sending an offer.
- Janus Gateway: Example janus-gateway is a collection of examples showing how to use Pion WebRTC with janus-gateway.
- SFU Websocket: The SFU example demonstrates a conference system that uses WebSocket for signaling. It also includes a flutter client for Android, iOS and Native.
- Save to WebM: Example save-to-webm shows how to receive audio and video using Pion and then save to WebM container.
- Twitch: Example twitch shows how to send audio/video from WebRTC to https://www.twitch.tv/ via RTMP.
- C DataChannels Example c-data-channels shows how you can use Pion WebRTC from a C program
- Snapshot Example snapshot shows how you can convert incoming video frames to jpeg and serve them via HTTP.
- SIP to WebRTC Example sip-to-webrtc shows how to bridge WebRTC and SIP traffic.
We've made it easy to run the browser based examples on your local machine.
-
Build and run the example server:
go get github.com/pion/example-webrtc-applications cd $GOPATH/src/github.com/pion/example-webrtc-applications go run examples.go
-
Browse to localhost to browse through the examples.
Note that you can change the port of the server using the --address
flag.
Check out the contributing wiki to join the group of amazing people making this project possible
MIT License - see LICENSE for full text