Designing for Live Stream Failure with Seamless Switching
summary
Describes an implemented encoder synchronization system that makes HLS segments interchangeable so player failover has no gap, using an output locking algorithm that exchanges segment status and adjusts segment length on resync. Uses AWS Elemental Live encoders, MediaStore or MediaPackage origins, an Nginx reverse proxy and multi CDN edge shielding. Real world deployment for Super Bowl 53 serves 2.7 million concurrent viewers and demonstrates seamless switching. Also presents an alternative epoch locking mode for disjoint encoders.
AI-written summary · about
chapters (12)
- 0:00Intro
- 1:02Live Streaming Applications
- 2:21Live Streaming Without Resiliency
- 6:20Synchronization On Startup
- 8:25Drifting Encoders
- 9:13Detecting Unsynchronized Encoders
- 10:01Resynchronizing Encoders
- 11:01HLS Deployment with a Static HTTP Origin
- 11:35HLS Deployment - Static Origin
- 12:44HLS Deployment -Static Origin With Manifest Expiration
- 13:26Deployment - Dynamic Origin
- 16:54Diving Deeper
related talks
24mDynamic content insertion into live streams across the 3 main streaming formats
18mHow we accelerated Live 2 VOD delivery from 15 minutes to under a minute
16mCDN Challenges of HTTP-based Low Latency Live Streaming Delivery
19mLow Latency Live from a Different Vantage Point
14mSynchronized horizontal and vertical video without compromises
45mEngage your customers with live streaming built on
44mLive Video in a Modern Web Environment
12mLHLS(.js): Why Hls.js is standardizing low-latency streaming
