# webrtc/samples

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/webrtc-samples).**

14,624 stars · 5,701 forks · JavaScript · BSD-3-Clause

## Links

- GitHub: https://github.com/webrtc/samples
- Homepage: https://webrtc.github.io/samples
- awesome-repositories: https://awesome-repositories.com/repository/webrtc-samples.md

## Description

This repository provides a collection of reference implementations and practical demonstrations for using WebRTC to establish real-time audio, video, and data communication. It contains code samples for negotiating peer-to-peer connections, managing media streams, and utilizing low-latency data channels.

The project demonstrates the capture of audio and video from hardware devices, as well as the redirection of canvas element content into media streams. It includes examples of transferring arbitrary text and binary data between peers and managing the negotiation of direct connections.

The samples cover broad capability areas including hardware media device management, browser-based media processing, and peer-to-peer data exchange.

## Tags

### Networking & Communication

- [WebRTC Implementations](https://awesome-repositories.com/f/networking-communication/peer-to-peer-streaming/webrtc-implementations.md) — Provides a comprehensive collection of reference implementations for the WebRTC protocol across media and data channels.
- [Peer Connectivity](https://awesome-repositories.com/f/networking-communication/webrtc-media-orchestration/peer-connectivity.md) — Provides reference implementations for establishing direct peer-to-peer data and media channels using WebRTC. ([source](https://webrtc.github.io/samples))
- [Peer-to-Peer Data Exchange](https://awesome-repositories.com/f/networking-communication/peer-to-peer-data-exchange.md) — Implements direct file and text exchange between browsers using WebRTC data channels.
- [WebRTC Data Channels](https://awesome-repositories.com/f/networking-communication/peer-to-peer-data-exchange/data-channel-establishment/webrtc-data-channels.md) — Implements low-latency SCTP-based data channels for transferring binary and text data between peers.
- [Session Signaling](https://awesome-repositories.com/f/networking-communication/peer-to-peer-networking/session-signaling.md) — Provides reference implementations for coordinating session descriptions and network candidates between peers.
- [ICE-Based Peer Connection Managers](https://awesome-repositories.com/f/networking-communication/webrtc-media-orchestration/peer-connectivity/ice-based-peer-connection-managers.md) — Demonstrates the use of ICE, STUN, and TURN to establish peer connections through firewalls.
- [Video Conferencing Systems](https://awesome-repositories.com/f/networking-communication/video-conferencing-systems.md) — Demonstrates the construction of applications that establish direct client connections for real-time video conferencing.
- [Media Stream Examples](https://awesome-repositories.com/f/networking-communication/webrtc-media-orchestration/media-stream-examples.md) — Offers practical examples of capturing hardware media and processing frames for transmission.

### Graphics & Multimedia

- [Media Capture and Playback](https://awesome-repositories.com/f/graphics-multimedia/audio-music/media-capture-and-playback.md) — Provides examples of capturing real-time audio and video streams from hardware devices for transmission.
- [Real-Time Media Streaming](https://awesome-repositories.com/f/graphics-multimedia/real-time-media-streaming.md) — Ships reference implementations for capturing and distributing live audio and video streams with low latency.
- [Live Capture and Recording](https://awesome-repositories.com/f/graphics-multimedia/audio-music/media-capture-and-playback/live-capture-and-recording.md) — Provides interfaces for capturing live audio and video from hardware devices for streaming. ([source](https://webrtc.github.io/samples))
- [Media Device Management](https://awesome-repositories.com/f/graphics-multimedia/media-device-management.md) — Provides utilities for identifying and selecting specific cameras and microphones from available system hardware.
- [Media Stream Processing](https://awesome-repositories.com/f/graphics-multimedia/media-processing-analysis/media-manipulation/media-processing/streaming-network-frameworks/media-stream-processing.md) — Demonstrates mechanisms for modifying raw media frames for analysis or encryption before transmission. ([source](https://webrtc.github.io/samples))
- [Streaming Media Processing Pipelines](https://awesome-repositories.com/f/graphics-multimedia/media-processing-analysis/media-manipulation/media-processing/streaming-network-frameworks/media-stream-processing/streaming-media-processing-pipelines.md) — Demonstrates routing raw media frames through processing layers before transmission or playback.
- [Canvas Frame Captures](https://awesome-repositories.com/f/graphics-multimedia/video-frame-capture/canvas-frame-captures.md) — Implements the capture of browser canvas element content and its conversion into media streams.

### Web Development

- [Media Processing](https://awesome-repositories.com/f/web-development/browser-based-data-processing/media-processing.md) — Provides examples of manipulating raw audio/video frames and canvas elements directly within the browser.
