Protocols & Transport

Browse 276 curated streaming protocol resources — HLS, MPEG-DASH, CMAF, WebRTC, and RTMP specs, servers, and tools on Awesome Video.

Subcategories

Resources (showing 1–100 of 276)

  • 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…