Building Your First Streaming Platform
Assemble a working end-to-end streaming stack: ingest with RTMP or SRT, transcode into an ABR ladder, package for HLS/DASH, and deliver through a CDN. Covers origin servers, caching strategy, and the tradeoffs of managed versus self-hosted infrastructure.
Learning Path
Planning Your Streaming Architecture
Sketch the building blocks of a streaming platform: ingest, transcoder, packager, origin, CDN and player. Decide on live vs VOD scope.
- Norsk (id3as) — Media Server SDK ArchitectureOverview of the Norsk media SDK's architecture: gRPC/Protobuf control plane with OpenTelemetry observability spanning capture, encode, pack…
- Velocix CDN Broker ArchitectureArchitecture documentation for mid-session CDN rerouting driven by KPI thresholds, CDN failure and capacity limits in a multi-CDN delivery…
- OTT Reference Architecture (Fora Soft)Conceptual model framing OTT platforms as data plane (ingest/encode/package/encrypt/origin/CDN/player) vs control plane (identity/entitleme…
Setting Up Streaming Servers
Stand up an origin/ingest server (nginx-rtmp, MediaMTX, or similar) and verify you can publish and pull a test stream end-to-end.
- 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…
- NGINX with nginx-rtmp-moduleNginx, combined with the nginx-rtmp-module, provides a powerful solution for live video streaming. This setup supports HTTP Live Streaming…
- EdgeCDN-X Open Source CDNEdgeCDN-X is an open source CDN built on Kubernetes with ingress-nginx and CoreDNS for routing, and ArgoCD for fast config distribution to…
Building the Encoding Pipeline
Configure a multi-bitrate ladder, segment for HLS/DASH and learn the trade-offs between CPU cost, latency and output quality.
- Eyevinn Live EncodingEyevinn Live Encoding is an open-source live encoder based on ffmpeg and Shaka packager. It supports live transcoding to HLS and optionally…
- Netflix Titus (Container orchestration for video)Netflix's open source container management platform that runs video processing workloads among others. While not video-specific, Titus is k…
- serverless-transcoding-solution — chunked parallel transcodeStep Functions fan-out to parallel Lambda workers performing chunked transcoding, the OSS equivalent of split-encode-merge serverless pipel…
CDN Integration & Caching
Front your origin with a CDN, tune cache headers for segments vs manifests, and measure delivery performance from multiple regions.
- Unified Streaming — Origin Shield Cache RecommendationsTechnical doc on the origin shield caching pattern for video streaming to reduce origin load in multi-CDN setups.
- Using Apache Traffic Control — CDN caching internals (ApacheCon slides)Conference slides on real cache-tier efficiency for video CDNs: volume sizing, cache-key and query-parameter handling, long-tail popularity…
- OTT Content Delivery– CDN AlternativesArticle exploring CDN alternatives for OTT content delivery. Covers infrastructure options for video streaming.
Player Implementation
Embed an adaptive player, wire up basic analytics events and confirm graceful degradation on poor networks.
- P2P CDN SDK for JavaScriptA free JavaScript SDK that reduces video streaming costs by up to 90% and improves scalability by 6x using WebRTC-based peer-to-peer techno…
- shaka-player-cmcd-v2-pluginProof-of-concept CMCD v2 plugin for Shaka Player, including Response Mode server-response metrics collection.
- OpenQoE — Open-Source Video QoE AnalyticsApache-2.0 three-tier QoE stack: JS beaconing SDK (HTML5/Video.js/HLS.js/dash.js/Shaka) → Cloudflare Worker ingest → Prometheus/Grafana das…
Testing, Monitoring and Optimization
Load-test the pipeline, set up QoE monitoring (rebuffer ratio, startup time) and iterate on bottlenecks before launch.
- Standardizing Multimedia QoE Telemetry from Telecommunications Networks for Open AnalyticsACM SIGCOMM EMS '24 paper proposing a QoE telemetry schema extending IPFIX and OpenTelemetry, with an open source tool deployed on a live n…
- videojs_observability — OpenTelemetry Tracing for Video.js PlaybackInstruments a playback session as an OpenTelemetry parent span with ABR segment fetches as linked child spans, shipped to Elastic for analy…
- tsduck-prometheus — TS analyser metrics exporterExports TSDuck transport-stream analyser values as Prometheus metrics covering most ETSI TR 101 290 checks for broadcast monitoring.