[ { "title": "Data Channels", "link": "data-channels", "description": "The data-channels example shows how you can send/recv DataChannel messages from a web browser.", "type": "browser" }, { "title": "Data Channels Detach", "link": "data-channels-detach", "description": "The data-channels-detach is an example that shows how you can detach a data channel.", "type": "browser" }, { "title": "Data Channels Flow Control", "link": "data-channels-flow-control", "description": "The data-channels-detach data-channels-flow-control shows how to use the DataChannel API efficiently. You can measure the amount the rate at which the remote peer is receiving data, and structure your application accordingly", "type": "browser" }, { "title": "Reflect", "link": "reflect", "description": "The reflect example demonstrates how to have Pion send back to the user exactly what it receives using the same PeerConnection.", "type": "browser" }, { "title": "Pion to Pion", "link": "#", "description": "Example pion-to-pion is an example of two pion instances communicating directly! It therefore has no corresponding web page.", "type": "browser" }, { "title": "Play from Disk", "link": "play-from-disk", "description": "The play-from-disk example demonstrates how to send video to your browser from a file saved to disk.", "type": "browser" }, { "title": "Play from Disk Renegotiation", "link": "play-from-disk", "description": "The play-from-disk-renegotiation example is an extension of the play-from-disk example, but demonstrates how you can add/remove video tracks from an already negotiated PeerConnection.", "type": "browser" }, { "title": "Insertable Streams", "link": "insertable-streams", "description": "The insertable-streams example demonstrates how Pion can be used to send E2E encrypted video and decrypt via insertable streams in the browser.", "type": "browser" }, { "title": "Save to Disk", "link": "save-to-disk", "description": "The save-to-disk example shows how to record your webcam and save the footage to disk on the server side.", "type": "browser" }, { "title": "Broadcast", "link": "broadcast", "description": "The broadcast 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.", "type": "browser" }, { "title": "RTP Forwarder", "link": "rtp-forwarder", "description": "The rtp-forwarder example demonstrates how to forward your audio/video streams using RTP.", "type": "browser" }, { "title": "RTP to WebRTC", "link": "rtp-to-webrtc", "description": "The rtp-to-webrtc example demonstrates how to take RTP packets sent to a Pion process into your browser.", "type": "browser" }, { "title": "Custom Logger", "link": "#", "description": "Example custom-logger demonstrates how the user can override the logging and process messages instead of printing to stdout. It has no corresponding web page.", "type": "browser" }, { "title": "Simulcast", "link": "simulcast", "description": "Example simulcast demonstrates how to accept and demux 1 Track that contains 3 Simulcast streams. It then returns the media as 3 independent Tracks back to the sender.", "type": "browser" }, { "title": "ICE Restart", "link": "#", "description": "Example ice-restart demonstrates how a WebRTC connection can roam between networks. This example restarts ICE in a loop and prints the new addresses it uses each time.", "type": "browser" }, { "title": "ICE Single Port", "link": "#", "description": "Example ice-single-port demonstrates how multiple WebRTC connections can be served from a single port. By default Pion listens on a new port for every PeerConnection. Pion can be configured to use a single port for multiple connections.", "type": "browser" }, { "title": "ICE TCP", "link": "#", "description": "Example ice-tcp demonstrates how a WebRTC connection can be made over TCP instead of UDP. By default Pion only does UDP. Pion can be configured to use a TCP port, and this TCP port can be used for many connections.", "type": "browser" }, { "title": "Swap Tracks", "link": "swap-tracks", "description": "The swap-tracks example demonstrates deeper usage of the Pion Media API. The server accepts 3 media streams, and then dynamically routes them back as a single stream to the user.", "type": "browser" }, { "title": "VNet", "link": "#", "description": "The vnet example demonstrates Pion's network virtualisation library. This example connects two PeerConnections over a virtual network and prints statistics about the data traveling over it.", "type": "browser" }, { "title": "rtcp-processing", "link": "rtcp-processing", "description": "The rtcp-processing example demonstrates Pion's RTCP APIs. This allow access to media statistics and control information.", "type": "browser" }, { "title": "trickle-ice", "link": "#", "description": "The trickle-ice example demonstrates Pion WebRTC's Trickle ICE APIs.", "type": "browser" } ]