Protocols & Transport
Browse 276 curated streaming protocol resources — HLS, MPEG-DASH, CMAF, WebRTC, and RTMP specs, servers, and tools on Awesome Video.
Subcategories
- Adaptive Bitrate Algorithms & Tools
- Adaptive Streaming
- CMAF & fMP4 Packaging
- DASH Manifest Tools
- DASH Tools
- HLS Manifest Parsers & Generators
- HLS Tools
- Low-Latency Streaming Tools
- Transport Protocols
Resources
- gohlslib — Go HLS client & muxer libraryPure-Go HLS library (from MediaMTX project) with client and muxer; outputs MPEG-TS, fMP4, or LL-HLS, supports AV1/VP9/H265/H264/Opus/AAC.
- Facebook go-media-webtransport-server — WebTransport/QUIC media serverExperimental WebTransport (QUIC) media server for ultra-low-latency live streaming (<60ms) with VOD/rewind support; Media-over-QUIC style d…
- moq-dev GStreamer plugin — Media over QUICGStreamer plugin to publish and consume media over MoQ (Media over QUIC), integrating QUIC low-latency transport into GStreamer pipelines.
- Bitrate-Ladder-Benchmark — learning-based ladder predictionCompanion code benchmarking learning-based bitrate ladder prediction methods for adaptive streaming (Telili et al.).
- encodex — AI content-aware convex-hull encoderAI-agent content-aware encoder generating convex-hull Pareto-frontier bitrate ladders with content-complexity adjustments.
- Cloudflare: MoQ — refactoring real-time media stackTechnical writeup on Media over QUIC and Cloudflare's first production MoQ relay network for real-time media.
- m3u8-rs (shiguredo) — Rust M3U8 parser/builderZero-dependency Rust M3U8 parser and builder supporting multivariant and media playlists.
- swift-hls-kit — pure Swift HLS libraryPure Swift HLS library to parse/generate/validate M3U8 with LL-HLS, MV-HEVC, SCTE-35 and HLS Interstitials injection.
- python-mpegdash — Python MPD parserZero-dependency Python MPEG-DASH MPD parser using stdlib XML.
- dasha — JS DASH+HLS manifest parserJS/TS library parsing MPEG-DASH and HLS manifests into a simplified unified representation.
- manifestor — Go HLS+DASH manifest toolkitZero-dependency Go library to parse/filter/build/transform HLS and DASH manifests; ships as library, HTTP proxy and CLI.
- atm0s-media-serverRust decentralized, global-scale media server supporting WebRTC, WHIP/WHEP, RTMP, and SIP.
- tinywhipMinimal WHIP-in / WHEP-out server for testing WebRTC ingest-to-egress pipelines.
- mp4-atomLow-level Rust ISOBMFF (ISO 14496-12) box encoder/decoder from the MoQ ecosystem.
- hls-parser (kuu)JavaScript library to read and write HLS playlists with Low-Latency HLS support.
- mpegdash (Python MPD parser/generator)Stdlib-only Python library (minidom-based) to parse and generate MPEG-DASH MPD manifests, maintained by JWPlayer.
- dash-mpd (Rust crate for DASH MPD parsing/generation)Rust crate to parse, serialize, and generate MPEG-DASH MPD manifests (ISO 23009-1:2022, DVB-DASH/HbbTV profiles), with companion dash-mpd-c…
- DVB/HbbTV DASH ValidatorStandards-body conformance validator for DVB-DASH v1.1.1 and HbbTV 1.5 MPD/segment streams, covering live and VOD.
- FFmpeg RIST Protocol DocumentationOfficial FFmpeg docs for the rist:// muxer/demuxer, covering rist_profile, buffer_size, encryption, and secret options.
- live777Lightweight Rust WebRTC SFU for mobile/IoT/web providing WHIP/WHEP live streaming with sub-second latency.
- hls_m3u8Rust RFC 8216 m3u8 parser and generator with full HLS v7 support.
- hlsvalidatorGo application wrapping Apple's mediastreamvalidator for concurrent HLS validation with JSON/HTML reports.
- video-manifest-parserTypeScript library for manipulating both DASH MPD and HLS M3U8 manifests via a unified editor API (addStream, toString).
- pydash2hlsPython DASH-to-HLS converter for local or remote manifests, with optional SAMPLE-AES key embedding.
- HydraSRTOpen-source alternative to the Haivision SRT Gateway built on Elixir/OTP + Rust + GStreamer, with failover, supervision, metrics, and a web…
- Loopy SRT Stats MonitorMonitors OBS SRT/SLS/BELABOX/RESTREAMER/RIST/NGINX connections and auto-switches OBS scene on connection failure; IRL streaming focused.
- rtmp-rsModern Rust RTMP server supporting Enhanced RTMP v2 with HEVC/AV1/VP9, keyframe caching for late joiners, and backpressure that drops video…
- rtmp-server-rsRust RTMP server with play whitelist, callback-URL publish validation, Redis Pub/Sub control, and RTMPS/TLS support.
- rtmp-srt-serverRTMP/SRT relay with web management, dynamic outputs, and universal MPEG-TS to RTMP repackaging for multi-input/multi-output workflows.
- go-rtmpGo RTMP 1.0 server library with a relay example; a building block for custom RTMP ingest servers.
- free-whipPython WHIP broadcast CLI built on aiortc for WebRTC ingest, tested against Janus and simple-whip-server.
- eaglesong.dev/hlsGo library implementing a live HLS+DASH origin: fMP4 segmenting, in-memory buffer, conditional blocking MPD, and single/separate track mode…
- ABR-ArenaETH NSG global testing infrastructure to evaluate and compare adaptive bitrate algorithms across real-world environments, based on Puffer.
- moqlivemockMedia over QUIC (MoQ)/WARP live publisher and subscriber test app with wall-clock-synced multi-bitrate output; a testbed for the emerging M…
- cloudflare/moq-rs — Media over QUIC in RustCloudflare's production-tested Rust implementation of IETF Media over QUIC Transport (draft-14), providing moq-relay, moq-api and moq-pub c…
- moqtransport — MoQ Transport in GoGo implementation of Media over QUIC Transport built on quic-go and webtransport-go, tracking recent IETF MoQT drafts.
- broadcast-box — sub-second WHIP/WHEP serverGo WebRTC broadcast server offering sub-second WHIP ingest and WHEP egress with webhook auth and data-channel chat, easily deployed via Doc…
- whip-go — Go WHIP clientSimple, portable Go WHIP client for ingesting any media source into WebRTC-based low-latency streaming servers.
- HydraSRT — open-source SRT gatewayOpen-source SRT gateway positioned as an alternative to Haivision SRT Gateway for reliable contribution-grade transport routing.
- opensrthub — SRT hub/gateway with web UILinux SRT hub/gateway routing SRT and UDP transport streams with a stats web UI for monitoring.
- abema/go-mp4 — low-level MP4 box library (Go)Go library for low-level reading and writing of ISOBMFF/MP4 boxes via io.ReadSeeker, enabling direct construction of any atom for fMP4/CMAF…
- mp4parse-rust — Firefox ISOBMFF parserBattle-tested Rust ISOBMFF/MP4 demux parser used in Firefox for safe media container parsing.
- SABR — Stable ABR Framework (BC + RL)Stable adaptive bitrate framework combining behavior-cloning pretraining with RL fine-tuning (arXiv 2509.10486).
- ABRBench — ABR Benchmark with OOD Trace SetsBenchmark suite for ABR algorithms with 3G/4G+ network trace sets and out-of-distribution test splits.
- per-title-analysis — Per-Title Bitrate Ladder OptimizerPython per-title encoding ladder optimizer using CRF and metric (SSIM/PSNR) analyzers, Netflix-style, on ffmpeg/ffprobe.
- Meetecho: Bridging MoQ and WebRTCTechnical blog detailing a Janus plugin bridging WHIP/WHEP to Media over QUIC, with architecture details.
- edgeware/mp4ff — Go fMP4 Parser/Writer & SegmenterGo library to parse and generate MPEG-DASH MPD manifests, actively maintained.
- Eyevinn/hls-m3u8 — Go HLS Manifest LibraryGo HLS m3u8 parse+generate library, an actively maintained replacement for the archived grafov/m3u8.
- rutgersc/m3u8-rs — Rust HLS Manifest ParserActive nom-based Rust parser for HLS m3u8 playlists (master and media).
- irl-srt-server — SRT Live Server for IRL StreamingSRT Live Server fork tailored for SRTLA/Belabox IRL mobile streaming setups.
- mediamtx-moq — MediaMTX with Media over QUICMediaMTX fork adding Media over QUIC (WebTransport + native QUIC) sub-300ms streaming alongside WHIP/WHEP.
- Eyevinn/srt-whep — SRT to WHEP/WebRTC GatewayRust gateway ingesting SRT MPEG-TS and outputting WHEP/WebRTC with no transcode, for low-latency preview/monitoring.
- moq-rs — Media over QUIC in RustRust relay/client implementation of Media over QUIC tracking the draft-ietf-moq-transport spec.
- moq-dev/moq — Media over QUIC Relay & ClientActive Rust pub/sub relay and client stack for Media over QUIC (MoQ), targeting real-time latency at scale; docs at doc.moq.dev.
- DASH-IF CMAF-Conformance ValidatorCMAF/CTA-WAVE conformance validation submodule of the DASH-IF conformance tool.
- whep-to-whipProxies WebRTC offer/answer negotiation between a WHEP source and WHIP sink, establishing a direct media path after handshake.
- FFmpeg-WHIP-WHEPAdds WHIP/WHEP protocol support to FFmpeg via libdatachannel, enabling FFmpeg as a WebRTC ingest/egress endpoint.
- simple-whip-server (Janus)Node.js WHIP server implementation built on the Janus WebRTC gateway, reference implementation by Meetecho (Janus maintainers).
- biim - LL-HLS packagerPython3 asyncio LL-HLS packager with MPEG-TS demux and EXT-X-PRELOAD-HINT support, achieving ~1s latency over HTTP/2.
- Fastly Compute LL-HLSFastly Compute@Edge application for LL-HLS playlist manipulation and request collapsing at the edge for sub-second segment delivery.
- Shaka Packager: Low Latency TutorialOfficial Shaka Packager docs showing a chunked CMAF low-latency DASH pipeline (ffmpeg → packager → dash.js).
- dash.js Low-Latency Streaming DocsReference player documentation for low-latency DASH: HTTP chunked transfer encoding requirements and availabilityTimeOffset configuration.
- Eyevinn SRT-WHIP GatewayDockerized gateway converting SRT/MPEG-TS input into WHIP (WebRTC) output for low-latency contribution-to-egress bridging.
- Eyevinn WHIPOpen source client and server modules for WHIP (WebRTC-HTTP Ingestion Protocol), Apache 2.0, WHEP egress tested with Eyevinn player.
- RIST with GStreamer (RidgeRun Wiki)Technical walkthrough with working gst-launch pipeline examples for RIST sender/receiver and bonding via multiple bonding-addresses.
- GStreamer RIST Plugin DocumentationOfficial GStreamer plugin reference for ristsink/ristsrc/ristrtxsend/ristrtxreceive elements implementing TR-06-1 Simple Profile and partia…
- Puffer / Fugu ABR (Stanford)Stanford's live-streaming research platform with the Fugu ABR scheme and real-world deployment evaluation infrastructure (NSDI'20), a real…
- Sabre — BOLA/MPC ABR Reference SimulatorReference simulator implementing BOLA and MPC adaptive bitrate algorithms, based on dash.js, widely used in ABR research papers.
- Comyco — Imitation Learning ABRImitation-learning based ABR algorithm (ACM MM 2019) with quality-aware chunk selection, includes RobustMPC and Pensieve baselines for comp…
- abrcc — Cross-layer ABR/Congestion Control Comparison HarnessComparison harness for ABR and congestion-control algorithms over QUIC and dash.js, switching between BOLA, RobustMPC, Pensieve, Festive, B…
- BOLA: Buffer Occupancy based Lyapunov Algorithm (paper)Original academic paper introducing the BOLA Lyapunov-based adaptive bitrate algorithm, theoretical foundation for many ABR implementations.
- mp4ff (Eyevinn)Go library and CLI tools (mp4ff-info, mp4ff-encrypt, mp4ff-decrypt) for fragmented MP4/CMAF inspection and manipulation.
- DASH-IF fmp4-ingest ReferenceDASH-IF CMAF ingest spec with a Node.js reference receiver implementation, storing ingested chunks as CMAF track files.
- cmafp — WASM CMAF/fMP4 ParserBrowser-usable WebAssembly parser for CMAF/fMP4 conforming to ISO/IEC 23000-19 and 14496-12, useful for debugging.
- GPAC LL-DASH WikiTechnical deep-dive on MP4Box CMAF chunk configuration for low-latency DASH, covering byte-range vs file-per-chunk modes with CLI examples.
- CTA-5005 WAVE Content SpecificationOfficial CTA WAVE Content Specification covering CMAF header/presentation constraints, low-latency SegmentTemplate rules, and emsg box hand…
- ABR Video PlayerSophisticated web-based video player implementing advanced ABR algorithms including BOLA (Buffer Occupancy based Lyapunov Algorithm) and ba…
- RIST Installer for WindowsScripts to build libRIST (Reliable Internet Stream Transport) installers for Windows. Provides easy installation of the open-source RIST pr…
- DASH Timeline ValidatorRuby-based tool to validate MPEG-DASH MPD manifests for presentation timeline errors. Checks segment duration drift, advised timeline accur…
- multicatA set of lightweight tools for multicast and transport stream manipulation (from the VLC project) – used for efficient UDP streaming, recor…
- PeerJSA simple peer-to-peer JavaScript library that abstracts WebRTC for direct video, audio, and data connectivity between browsers. Provides an…
- coturnAn open source implementation of TURN and STUN servers, used to facilitate NAT traversal for peer-to-peer video (and audio) communication i…
- aiortc (Python WebRTC)A Python library for Web Real-Time Communication that implements WebRTC and ORTC, enabling real-time audio/video and data streaming in Pyth…
- Pion WebRTCA pure Go implementation of the WebRTC protocol, enabling developers to build real-time video (and audio) streaming applications without ex…
- DVBlastA simple and powerful MPEG-2/TS demux and streaming application. DVBlast can stream digital TV (DVB) channels over a network, often used fo…
- CMAF for Low Latency Streaming – BitmovinA detailed blog explaining how CMAF enables low-latency streaming. Bitmovin covers the technical aspects of chunked CMAF, the changes requi…
- WiresharkA network protocol analyzer that can be used to debug streaming video at the packet level. Wireshark supports protocols like RTMP, HLS (HTT…
- MPEG-DASH MPD Python LibraryA Python implementation of the MPEG-DASH schema and tools to validate or create MPD files. It aligns with the official XML schemas for DASH…
- DASH-IF Conformance ToolAn official tool by the DASH Industry Forum to validate MPEG-DASH MPD files and segment formats. It checks for spec compliance and common i…
- Nginx-RTMP ModuleAn Nginx module that adds RTMP streaming server capabilities to Nginx. It supports streaming live content via RTMP and can also be used to…
- RTMPDumpA command-line utility to download RTMP streams. RTMPDump can save streaming media content transmitted via Real-Time Messaging Protocol, of…
- CTA WAVE Low Latency Service GuidelinesGuidelines from the CTA WAVE (Web Application Video Ecosystem) project focusing on low-latency streaming service implementation, including…
- Apple Technical Note TN2224 - HLS Best PracticesAn Apple Technical Note detailing best practices for HTTP Live Streaming. It covers how to encode media, segment files, set up playlists, a…
- OpenViduAn open source platform for building video conferencing or streaming solutions. OpenVidu provides easy-to-use APIs for WebRTC, enabling mul…
- TSDuckAn open source toolkit for MPEG transport streams. TSDuck provides a rich set of command-line utilities and a C++ library for analyzing, ed…
- Puffer (Stanford Live Streaming Research)A free live TV streaming research study by Stanford University that uses volunteer viewers to train and evaluate new adaptive streaming alg…
- Pensieve (Adaptive Bitrate AI Algorithm)A research system that uses reinforcement learning to generate adaptive bitrate (ABR) algorithms. Pensieve learned an ABR algorithm that ca…
- ISO/IEC 23009-1:2019 (MPEG-DASH)The ISO/IEC standard for Dynamic Adaptive Streaming over HTTP (DASH). It defines the MPD manifest format and segment formats for adaptive b…
- RFC 8216: HTTP Live Streaming (HLS)The IETF RFC that specifies HTTP Live Streaming (HLS), defining the playlist format (M3U8) and media segment structure for Apple's streamin…
- mediasoupA modern WebRTC SFU (Selective Forwarding Unit) for Node.js that enables building multi-party video conferencing and streaming applications…