Design a Video Streaming Platform
Create a video streaming service similar to YouTube or Netflix that allows users to upload, process, and stream video content.
Functional Requirements
- Upload videos of various formats and sizes
- Transcode videos to multiple resolutions and formats
- Adaptive bitrate streaming based on network conditions
- Content recommendations and search
- Live streaming support
Non-Functional Requirements
- Smooth playback with minimal buffering
- Global content delivery with low latency
- Support millions of concurrent viewers
- Cost-effective storage for petabytes of video
Questions to Consider
- How will you handle video transcoding at scale?
- What streaming protocol will you use?
- How do you optimize for different devices and network conditions?