ช่วยให้การเล่นวิดีโอราบรื่นในทุกอุปกรณ์
ในการทดสอบ Media Capabilities API พบว่า YouTube มี MTBR เพิ่มขึ้น 7.1% โดยมีความละเอียดเฉลี่ยของวิดีโอที่แสดงลดลงเพียง 0.4%
ปัญหา
โดยปกติแล้ว เว็บไซต์สื่อจะมีวิดีโอแต่ละรายการหลายรูปแบบที่นำเสนอต่อผู้ใช้ โดยเข้ารหัสในอัตราเฟรม ความละเอียด และโค้ดที่แตกต่างกัน จนกระทั่งเมื่อไม่นานมานี้ นักพัฒนาเว็บต้องอาศัย isTypeSupported()
หรือ canPlayType()
เพียงอย่างเดียวเพื่อระบุว่าแต่ละตัวแปรเล่นได้ในเบราว์เซอร์ของผู้ใช้แต่ละรายหรือไม่
แม้ว่าข้อมูลนี้จะบอกให้นักพัฒนาแอปทราบว่าเล่นสื่อได้หรือไม่ แต่ก็ไม่ได้ระบุถึงคุณภาพการเล่น เช่น จะมีการเฟรมตกหรือแบตเตอรี่ของอุปกรณ์จะหมดเร็วหรือไม่ หากไม่มีข้อมูลนี้ นักพัฒนาแอปจะต้องสร้างวิธีการแก้ปัญหาแบบเฮิวริสติกของตนเอง หรือจะถือว่าหากอุปกรณ์เล่นการผสมผสานระหว่างตัวแปลงรหัส/ความละเอียดได้ ก็จะเล่นได้อย่างราบรื่นและประหยัดพลังงาน
ผู้ใช้ที่มีอุปกรณ์ที่มีประสิทธิภาพน้อยกว่ามักได้รับประสบการณ์การใช้งานที่ไม่ดี
โซลูชัน
Media Capabilities API ช่วยให้เว็บไซต์ได้รับข้อมูลเพิ่มเติมเกี่ยวกับประสิทธิภาพการถอดรหัสวิดีโอของลูกค้า และตัดสินใจเกี่ยวกับตัวแปลงรหัสและความละเอียดที่จะแสดงต่อผู้ใช้ได้อย่างมีข้อมูล กล่าวโดยละเอียดคือ API จะให้ค่าประมาณของความราบรื่นและประสิทธิภาพการใช้พลังงานของชุดค่าผสมตัวแปลงรหัสและความละเอียดหนึ่งๆ แก่นักพัฒนาแอป ซึ่งช่วยให้นักพัฒนาแอปหลีกเลี่ยงสถานการณ์ที่ไคลเอ็นต์มีแนวโน้มที่จะได้ประสบการณ์การเล่นที่ไม่ดี
ใน Chrome นั้น Media Capabilities API จะใช้เมตริกจากการเล่นก่อนหน้านี้เพื่อคาดการณ์ว่าการเล่นในอนาคตในโค้ดเดียวกันและความละเอียดเดียวกันจะถอดรหัสได้อย่างราบรื่นหรือไม่
กรณีศึกษา YouTube
YouTube ใช้ Media Capabilities API เพื่อป้องกันไม่ให้อัลกอริทึมอัตราบิตแบบปรับได้เลือกความละเอียดที่อุปกรณ์เล่นได้อย่างราบรื่นโดยอัตโนมัติ
ผู้ใช้ในกลุ่มทดสอบโดยรวมพบว่าการบัฟเฟอร์ซ้ำเกิดขึ้นน้อยลง (เวลาเฉลี่ยระหว่างการบัฟเฟอร์ซ้ำหรือ MTBR เพิ่มขึ้น 7.1%) ขณะที่ความละเอียดเฉลี่ยที่วัดจากความสูงของวิดีโอที่แสดงต่อกลุ่มรวมลดลงเพียง 0.4% MTBR ที่เพิ่มขึ้นอย่างมากพร้อมกับการลดลงเล็กน้อยของการแก้ปัญหาโดยเฉลี่ยแสดงให้เห็นว่าการเปลี่ยนแปลงนี้ช่วยปรับปรุงคุณภาพให้กับผู้ใช้กลุ่มย่อยเล็กๆ ที่เคยได้รับประสบการณ์การใช้งานที่ไม่ดี
การติดตั้งใช้งาน Media Capabilities API ในเว็บไซต์
ดูตัวอย่างอย่างเป็นทางการเพื่อดูวิธีการทำงานของ Decoding Info API