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 how to broadcast a video to multiple peers. A broadcaster uploads the video once and the server forwards it to all other peers.
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:
- John Bradley - Original Author
- Raphael Randschau - STUN
- Sean DuBois - Original Author
- Michiel De Backker - SDP, Public API, Project Management
- Konstantin Itskov - SDP Parsing
- Max Hawkins - RTCP
- Justin Okamoto - Fix Docs
- leeoxiang - Implement Janus examples
- Michael MacDonald
- Woodrow Douglass RTCP, RTP improvements, G.722 support, Bugfixes
- Rob Deutsch RTPReceiver graceful shutdown
- Jin Lei - SFU example use http
- Antoine Baché - OGG Opus export
- frank - Building examples on OSX
- adwpc - SFU example with websocket
- imalic3 - SFU websocket example with datachannel broadcast
- Simonacca Fotokite
- Steve Denman
- RunningMan
- mchlrhw
- CloudWebRTC|湖北捷智云技术有限公司 - Flutter example for SFU-WS
- Atsushi Watanabe - WebM muxer example
- Jadon Bennett
- Lukas Herman - C Data Channels example
MIT License - see LICENSE for full text