แพลตฟอร์ม Video Streaming ขนาดใหญ่ที่สนับสนุนการอัปโหลด Video, Playback และ Interactions ต่างๆ
บทนำ
YouTube เป็นแพลตฟอร์ม Video Streaming ขนาดใหญ่ Features หลัก:
- Video Uploads ที่รวดเร็ว
- Video Streaming ที่ราบรื่น
- เปลี่ยนคุณภาพ Video ได้
- ต้นทุน Infrastructure ต่ำ
- High Availability และ Reliability
Key Statistics (2020)
2B
Monthly Users
5B
Videos/วัน
37%
Mobile Traffic
80
Languages
Components
- Client: Smartphones, Computers, TVs
- CDN: จัดเก็บและ Stream Videos
- API Servers: จัดการ User Interactions ยกเว้น Video Streaming
- Metadata Database: เก็บ Video Metadata
- Transcoding Servers: แปลง Videos เป็นหลาย Resolutions และ Formats
Video Transcoding
ความสำคัญ
- ลด Storage Space
- รับประกัน Compatibility ข้าม Devices และ Browsers
- ปรับ Video Quality ตาม Network Conditions
DAG Model
Transcoding เป็น Computationally Expensive และ Time-consuming DAG Model กำหนด Tasks เช่น Encoding, Thumbnail Generation และ Watermarking
System Optimizations
Speed Optimizations
- Parallel Video Uploads: แบ่ง Videos เป็น Chunks สำหรับ Uploads ที่เร็วขึ้นและ Resumable
- Distributed Upload Centers: ใช้ CDNs เป็น Upload Hubs ใกล้ผู้ใช้
- Parallel Processing: แยก Modules โดยใช้ Message Queues
Safety Optimizations
- Pre-Signed URLs: จำกัด Video Uploads ไปยังผู้ใช้ที่ได้รับอนุญาต
- DRM Systems: Apple FairPlay, Google Widevine
- Watermarking: Image Overlay บน Video
เนื้อหานี้อ้างอิงจาก ByteByteGo - System Design Interview - An Insider's Guide