ภาพรวม
Widevine DRM เป็นระบบป้องกันเนื้อหาของ Google สำหรับสื่อพรีเมียม โดยพาร์ทเนอร์รายใหญ่ทั่วโลก เช่น Google Play, YouTube, Netflix, Disney+, Amazon Prime Video, HBO Max, Hulu, Peacock, Discovery+, Paramount+ และอื่นๆ อีกมากมาย ต่างก็ใช้เทคโนโลยีนี้ เป้าหมายของ Widevine คือมอบประสบการณ์การรับชมเนื้อหาพรีเมียมที่ดีที่สุดผ่านการเผยแพร่แบบดิจิทัล
Widevine DRM ใช้มาตรฐานต่อไปนี้
- Encrypted Media Extensions - ข้อกำหนดของ W3C
- การเข้ารหัสทั่วไป
- ISO/IEC 23001-7 - การเข้ารหัสทั่วไปในไฟล์รูปแบบไฟล์สื่อพื้นฐาน ISO
- ISO/IEC 23001-9 - การเข้ารหัสทั่วไปของสตรีมการนำส่ง MPEG-2
แพลตฟอร์มที่รองรับ
ไคลเอ็นต์ Widevine จะฝังอยู่ในแพลตฟอร์มอุปกรณ์โดยค่าเริ่มต้น เว้นแต่จะระบุไว้เป็นอย่างอื่น
อุปกรณ์หรือแพลตฟอร์ม | รองรับไหม |
Android (อุปกรณ์เคลื่อนที่, TV, ยานยนต์) | ใช่ |
Android Open Source (AOSP) | ใช่ |
Apple iOS | ได้ [1] |
Apple TV (tvOS) | - |
Chromecast (แคสต์) | ใช่ |
อุปกรณ์ Google Home และ Nest | ใช่ |
ChromeOS (Chromebook) | ใช่ |
เบราว์เซอร์ Chrome (Windows, Mac OS X, Linux) | ใช่ |
เบราว์เซอร์ Chromium | ใช่ |
Chromium Embedded Framework (CEF) / Electron | ใช่ |
เบราว์เซอร์ Firefox | ใช่ |
เบราว์เซอร์ Edge | ใช่ |
Opera (เบราว์เซอร์และอุปกรณ์แบบฝัง) | ใช่ |
เบราว์เซอร์ Safari (เดสก์ท็อป) | - |
อุปกรณ์ Roku | ใช่ |
อุปกรณ์ Amazon Echo | ใช่ |
อุปกรณ์ที่ใช้ระบบปฏิบัติการ Fire OS ของ Amazon | ใช่ |
อุปกรณ์ Amazon Fire TV | ใช่ |
อุปกรณ์ Facebook Portal | ใช่ |
Nintendo Switch | - |
Sony Playstation | ใช่ |
Microsoft Xbox | - |
สมาร์ททีวีและเครื่องเล่นบลูเรย์ (Tizen, WebOS) | ใช่ |
รูปแบบการเข้ารหัสที่รองรับ
ตารางด้านล่างแสดงการแมปรูปแบบการเข้ารหัสในแพลตฟอร์มที่ผสานรวม Widevine
แพลตฟอร์ม | cenc | cens | cbc1 | ลูกบาศก์ |
Android 4.4 - 6.x (รวมถึง Android TV) | Y | - | - | - |
Android 7.x ขึ้นไป (รวมถึง Android TV) | Y | - | - | Y |
Chromecast (Cast) | Y | - | Y | Y |
Google Home | Y | - | - | - |
สมาร์ททีวีและเครื่องเล่นบลูเรย์ | Y | - | - | Y |
Widevine iOS | Y | - | - | Y |
เบราว์เซอร์ Chrome (เดสก์ท็อป) และ ChromeOS | Y | - | - | Y |
เบราว์เซอร์ Chrome (อุปกรณ์เคลื่อนที่) | Y | - | - | Y |
Mozilla Firefox | Y | - | - | Y |
โอเปร่า | Y | - | - | Y |
NexPlayer SDK | Y | - | - | Y |
ระบบนิเวศ
แผนภาพด้านบนแสดงองค์ประกอบ Widevine ที่มีให้ใช้งานภายในระบบนิเวศ DRM
คอมโพเนนต์การจัดสรร คีย์บ็อกซ์ และ OEMCrypto มีไว้สำหรับกระบวนการผสานรวมอุปกรณ์โดยเฉพาะ หากสนใจผสานรวม Widevine ไว้ในอุปกรณ์ โปรดติดต่อเรา
กลไกพร็อกซีที่พาร์ทเนอร์ให้บริการ (ผ่าน HTTPS) จะได้รับคำขอใบอนุญาตจากอุปกรณ์ไคลเอ็นต์ต้นทาง กลไกพร็อกซีนี้จะตรวจสอบคําขอและเพิ่มกฎทางธุรกิจต่อท้ายก่อนที่จะส่งเพย์โหลดให้ Widevine License Service ดำเนินการ
อุปกรณ์ไคลเอ็นต์ Widevine จะไม่สื่อสารกับบริการใบอนุญาต Widevine โดยตรงไม่ว่าในกรณีใดก็ตาม
การออกใบอนุญาต Widevine
Widevine มีวิธีออกใบอนุญาตให้กับลูกค้า 2 วิธี ได้แก่
- บริการใบอนุญาตระบบคลาวด์
- บริการที่เข้าถึงได้ทั่วโลกโดยไม่มีค่าใช้จ่ายในการเข้าถึงหรือการทำธุรกรรม
- ให้สิทธิ์เข้าถึงแก่ผู้รับอนุญาตของ Widevine โดยใช้ข้อมูลเข้าสู่ระบบของแต่ละองค์กร
- SDK ของ License Server
- ออกแบบมาเพื่อโฮสต์บริการใบอนุญาตของคุณเอง
การใช้บริการ Widevine Cloud License
บริการใบอนุญาต Cloud มี 2 สภาพแวดล้อม ได้แก่ การทดสอบและเวอร์ชันที่ใช้งานจริง สิทธิ์เข้าถึงจะกำหนดให้กับใบอนุญาตของ Widevine ด้วยข้อมูลเข้าสู่ระบบที่ไม่ซ้ำกันต่อองค์กร
บริการใบอนุญาต Cloud มีปลายทาง 2 รายการสำหรับ
- การเรียกข้อมูลคีย์เนื้อหาเพื่อเข้ารหัสเนื้อหา
- คีย์เนื้อหาที่ขอในลักษณะนี้จะจัดเก็บโดยบริการใบอนุญาตระบบคลาวด์ของ Widevine
- การออกใบอนุญาต
- ตอบสนองคําขอใบอนุญาตที่อุปกรณ์ไคลเอ็นต์ Widevine สร้างขึ้น
คำขอใบอนุญาตทั้งหมดจากอุปกรณ์ไคลเอ็นต์ต้องได้รับการประมวลผลโดยกลไกพร็อกซีใบอนุญาต
- Widevine มี Proxy SDK เพื่อสื่อสารกับบริการใบอนุญาตระบบคลาวด์
- พารามิเตอร์ของใบอนุญาตจะตรวจสอบและยืนยันคําขอจากไคลเอ็นต์ขาเข้า รวมถึงกําหนดกฎทางธุรกิจที่จะใช้
- ระบบจะเพิ่มกฎทางธุรกิจต่อท้ายคำขอใบอนุญาตที่มาจากอุปกรณ์และส่งไปยังบริการใบอนุญาตเพื่อดำเนินการตามคำขอ
- เมื่อสร้างใบอนุญาตแล้ว เนื้อหาของใบอนุญาตจะแก้ไขไม่ได้อีกต่อไปและจะกำหนดให้กับอุปกรณ์ที่ขอ
Shaka Packager
Shaka Packager (เดิมเรียกว่า eDASH-Packager) จาก Widevine เป็นการใช้งานอ้างอิงแบบโอเพนซอร์สเกี่ยวกับวิธีสร้างรูปแบบ MP4 ที่เข้ากันได้กับ DASH, ดำเนินการเข้ารหัสโดยใช้ PSSH ของ Widevine และสร้างไฟล์ Manifest ของ DASH โปรดไปที่หน้า GitHub เพื่อรายงานข้อบกพร่องและคำขอฟีเจอร์
ผู้เล่น - Android
โปรเจ็กต์ ExoPlayer แบบโอเพนซอร์สที่ได้รับการดูแลรักษาโดย Google เป็นไลบรารีโปรแกรมเล่นอ้างอิงที่แนะนำซึ่งสาธิตการเล่นสื่อ Widevine CENC การสร้าง ExoPlayer โดยค่าเริ่มต้นจะสร้างแอปสาธิตซึ่งมีรายการเนื้อหา CENC ที่รู้จักและใช้งานได้จากทีม Widevine ไว้ล่วงหน้า
โปรแกรมเล่น - เบราว์เซอร์
โปรเจ็กต์โอเพนซอร์สของ Shaka Player เป็นโครงการริเริ่มของ Widevine ที่จะให้บริการเฟรมเวิร์กไลบรารี JavaScript แบบข้ามเบราว์เซอร์ที่ครอบคลุมเพื่อรองรับการเล่น HTML5 ที่ใช้ CENC โดยใช้ CDM (ควรเป็น Widevine) นอก GitHub ยังมีกลุ่มสนทนาของผู้ใช้ Shaka Player ที่ทีมนักพัฒนาซอฟต์แวร์ Shaka Player จาก Widevine คอยตรวจสอบอยู่
Shaka Player มีบริการต่อไปนี้
- เฟรมเวิร์กเพลเยอร์แบบโอเพนซอร์สที่มีคุณสมบัติครบถ้วน
- UI ที่กําหนดค่าและปรับแต่งได้
- ใช้งานได้ข้ามแพลตฟอร์มและข้ามเบราว์เซอร์
- การรองรับ HTML5, MSE, EME และ DASH
- ตัวเลือก DRM หลายรายการ