I started with concurrent users and worked down to bits per second per stream, which felt right.
Start by clarifying the scope: what 'large-scale' means (e.g., global vs. regional), expected concurrent viewers, video quality levels, and delivery method (live vs. on-demand). Then break the problem into components: number of concurrent streams, bitrate per stream, and protocol overhead, and calculate total bandwidth. Finally, discuss trade-offs and mitigation strategies like CDN, adaptive bitrate, and peak management.
Pro tip: Always state your assumptions explicitly and sanity-check your final number against known benchmarks (e.g., Netflix or YouTube traffic). This shows you can ground abstract estimates in real-world data.
Ask clarifying questions to define the scale: target regions, expected concurrent viewers, video resolutions (SD, HD, 4K), and whether it's live-only or includes DVR. State assumptions clearly.
Use population, penetration, and peak concurrency factors to estimate the number of simultaneous viewers. For example, if launching in the US with 100M potential users, assume 10% adoption and 30% peak concurrency.
Choose typical bitrates for each quality level (e.g., 5 Mbps for HD, 25 Mbps for 4K) and account for adaptive bitrate (ABR) that may switch qualities. Use an average bitrate weighted by expected quality mix.
Multiply concurrent viewers by average bitrate per stream. Add protocol overhead (e.g., 10-20% for TCP/IP, HTTP). Convert to Gbps or Tbps for clarity.
Address peak vs. average bandwidth, CDN offloading, edge caching, and adaptive bitrate to reduce load. Mention cost implications and scalability.
AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.