SkillByAIOpen interactive version →

Lesson 15 / 25

Design a Video Streaming Platform

Upload, transcode, deliver.

From upload to adaptive playback

Split the system into an upload path and a watch path. Upload: the client gets a pre-signed URL and uploads the original (often in resumable chunks) directly to object storage; an event triggers a transcoding pipeline that splits the video into segments, encodes several renditions (resolutions and bitrates) in parallel workers, generates thumbnails, and writes outputs plus a manifest. Watch: players fetch an HLS or DASH manifest listing renditions, then download short segments from a CDN; adaptive bitrate (ABR) logic in the player switches rendition based on measured bandwidth and buffer. Metadata (titles, owners, status) lives in a database; view counts are aggregated asynchronously.

Upload and delivery pipeline

Simplified flow.

UPLOAD
client --request upload--> API --pre-signed URL--> client
client --chunks--> object storage (raw/)
storage event --> queue --> transcode orchestrator
   -> split into segments -> workers encode renditions in parallel
      (e.g. 1080p, 720p, 480p, 240p; choose a ladder per content)
   -> write segments + HLS/DASH manifests to storage (processed/)
   -> mark video READY in metadata DB

WATCH
player --GET manifest--> CDN (miss -> origin storage)
player --GET segment N at chosen bitrate--> CDN
player measures throughput + buffer -> switches rendition (ABR)

Printing one book in many formats

The publisher prints large-print, paperback and pocket editions once, ships them to local bookshops, and each reader picks the edition that suits them right now.

Quick check: What does adaptive bitrate streaming do?

  • Lets the player switch between renditions based on network conditions
  • Compresses video on the client before upload
  • Stores one rendition per user
  • Replaces the CDN
Answer

Lets the player switch between renditions based on network conditions — ABR adapts quality segment by segment.