Design: Video Streaming with Transcoding and Adaptive Bitrate
Design covers video ingestion, transcoding, storage, and adaptive bitrate delivery. Out of scope: DRM, user authentication, content recommendation.
Functional Requirements
FR1: Ingest live or on-demand video content from users or content providers
FR2: Transcode videos into multiple quality levels (bitrates and resolutions)
FR3: Store transcoded videos for on-demand playback
FR4: Deliver video streams to users with adaptive bitrate streaming based on their network conditions
FR5: Support at least 100,000 concurrent viewers
FR6: Ensure video startup latency under 3 seconds
FR7: Provide 99.9% availability for streaming service
Non-Functional Requirements
NFR1: Handle peak traffic of 100,000 concurrent viewers
NFR2: Latency for live streaming end-to-end should be under 10 seconds
NFR3: Storage must support petabytes of video data
NFR4: System should be scalable horizontally
NFR5: Use industry standard streaming protocols (HLS, DASH)
