- นักพัฒนาเว็บสามารถควบคุมการแสดงภาพซ้อนภาพสำหรับวิดีโอได้
- Chrome Desktop x86-64 รองรับตัวถอดรหัส AV1 แล้ว
- การบัฟเฟอร์และการเล่นข้ามโค้ดและข้ามไบต์สตรีมทำได้ใน MSE
- ตอนนี้ Chrome รองรับ Opus ใน MP4 ด้วย MSE แล้ว
- การเล่นเนื้อหาที่ได้รับการคุ้มครองจะอนุญาตโดยค่าเริ่มต้นใน Android
ดูวิดีโอโดยใช้ฟีเจอร์ภาพซ้อนภาพ
ฟีเจอร์การแสดงภาพซ้อนภาพ (PIP) ช่วยให้ผู้ใช้ดูวิดีโอในหน้าต่างแบบลอยได้ (อยู่ด้านบนของหน้าต่างอื่นๆ เสมอ) เพื่อให้ผู้ใช้ดูสิ่งที่กำลังรับชมอยู่ได้ขณะโต้ตอบกับเว็บไซต์หรือแอปพลิเคชันอื่นๆ Picture-in-Picture Web API ใหม่ช่วยให้คุณเริ่มและควบคุมโหมดภาพในภาพสำหรับวิดีโอในเว็บไซต์ได้
อ่านบทความของเราเพื่อดูข้อมูลทั้งหมดเกี่ยวกับเรื่องนี้
โปรแกรมถอดรหัส AV1
AV1 เป็นโค้ดรูปแบบใหม่ที่ได้รับการพัฒนาโดย Alliance for Open Media AV1ปรับปรุงประสิทธิภาพการบีบอัดได้มากกว่า 30% เมื่อเทียบกับตัวแปลงรหัสวิดีโอที่ทันสมัยซึ่งใช้อยู่ในปัจจุบันอย่าง VP9 Chrome 70 เพิ่มโปรแกรมถอดรหัส AV1 ลงใน Chrome บนเดสก์ท็อป x86-64 ตามข้อกำหนดอย่างเป็นทางการของบิตสตรีม ขณะนี้การรองรับจะจำกัดอยู่ที่โปรไฟล์ 0 "หลัก" และไม่รวมความสามารถในการเข้ารหัส คอนเทนเนอร์ที่รองรับคือ MP4 (ISO-BMFF) (ดูคำอธิบายสั้นๆ เกี่ยวกับคอนเทนเนอร์ได้ที่คอนเทนเนอร์และตัวแปลงรหัส)
วิธีลองใช้ AV1
- ไปที่หน้า YouTube TestTube
- เลือก "ใช้ AV1 ก่อนสำหรับ SD" หรือ "ใช้ AV1 เสมอ" เพื่อรับความละเอียด AV1 ที่ต้องการ โปรดทราบว่าเมื่อใช้ความละเอียดที่สูงขึ้น AV1 มีแนวโน้มที่จะประสบปัญหาด้านประสิทธิภาพการเล่นบนอุปกรณ์บางประเภทมากกว่า
- ลองเล่นคลิป YouTube จากเพลย์ลิสต์การเปิดตัว AV1 เบต้า
- ยืนยันตัวแปลงรหัส av01 ใน "สถิติสำหรับเด็กเนิร์ด"
การรองรับตัวแปลงรหัสและการสลับคอนเทนเนอร์ใน MSE
Chrome กำลังเพิ่มการรองรับสำหรับการเปลี่ยนแบบข้ามตัวแปลงรหัสหรือข้ามไบต์สตรีมที่ปรับปรุงแล้วในการเล่นส่วนขยายแหล่งที่มาของสื่อโดยใช้เมธอด changeType()
ใหม่ใน SourceBuffer
ซึ่งช่วยให้เปลี่ยนประเภทของ Media ที่จะต่อท้าย SourceBuffer
ได้ภายหลัง
MSE เวอร์ชันปัจจุบันรองรับการเล่นสื่อแบบปรับเปลี่ยนได้ แต่การปรับเปลี่ยนกำหนดให้สื่อที่ต่อท้าย SourceBuffer
ต้องสอดคล้องกับประเภท MIME ที่ระบุไว้เมื่อเริ่มสร้าง SourceBuffer
ผ่าน MediaSource.addSourceBuffer(type)
ตัวแปลงรหัสจากประเภทนั้นและส่วนของอินทิอลไลเซชันที่แยกวิเคราะห์ก่อนหน้านี้ต้องเหมือนกันตลอด ซึ่งหมายความว่าเว็บไซต์ต้องดำเนินการตามขั้นตอนที่ชัดเจนเพื่อเปลี่ยนโค้ดหรือสตรีมไบต์ (โดยใช้องค์ประกอบสื่อหรือแทร็กหลายรายการและเปลี่ยนระหว่างองค์ประกอบเหล่านั้น) ซึ่งทำให้แอปพลิเคชันมีความซับซ้อนมากขึ้นและเกิดความล่าช้าที่ผู้ใช้มองเห็นได้ (การเปลี่ยนดังกล่าวกำหนดให้เว็บแอปดำเนินการแบบซิงค์ในเธรดหลักของเรนเดอร์) เวลาในการตอบสนองของการเปลี่ยนนี้ทำให้การเล่นสื่อราบรื่นน้อยลงเมื่อมีการเปลี่ยนไป
SourceBuffer
สามารถใช้บัฟเฟอร์และรองรับการเล่นรูปแบบไบต์สตรีมและโค้ดรูปแบบต่างๆ ได้ด้วยวิธีการ changeType()
ใหม่ วิธีใหม่นี้จะช่วยเก็บรักษาสื่อที่บัฟเฟอร์ไว้ก่อนหน้านี้ ลบหรือนำเฟรมที่เข้ารหัส MSE ออกในอนาคต และใช้ประโยชน์จากตรรกะการต่อและบัฟเฟอร์ในอัลกอริทึมการประมวลผลเฟรมที่เข้ารหัส MSE ที่มีอยู่
วิธีใช้เมธอด changeType()
มีดังนี้
const sourceBuffer = myMediaSource.addSourceBuffer('video/webm; codecs="opus, vp09.00.10.08"');
sourceBuffer.appendBuffer(someWebmOpusVP9Data);
// Later on...
if ('changeType' in sourceBuffer) {
// Change source buffer type and append new data.
sourceBuffer.changeType('video/mp4; codecs="mp4a.40.5, avc1.4d001e"');
sourceBuffer.appendBuffer(someMp4AacAvcData);
}
ตามปกติแล้ว หากเบราว์เซอร์ไม่รองรับประเภทที่ส่งมา วิธีการนี้จะแสดงข้อยกเว้น NotSupportedError
ดูตัวอย่างเพื่อเล่นกับบัฟเฟอร์และการเล่นองค์ประกอบเสียงข้ามตัวแปลงรหัสและข้ามสตรีมไบต์
Intent to Ship | เครื่องมือติดตามสถานะ Chrome | ข้อบกพร่องของ Chromium
Opus ใน MP4 สำหรับ MSE
รองรับตัวแปลงรหัสเสียงแบบเปิดและอเนกประสงค์สูงอย่าง Opus ในองค์ประกอบ <audio>
และ <video>
ตั้งแต่ Chrome 33 และหลังจากนั้นก็เพิ่มการรองรับ Opus ใน ISO-BMFF
(หรือที่เรียกว่า Opus ใน MP4) และตอนนี้ Opus ใน MP4 พร้อมให้บริการใน Chrome
70 สำหรับส่วนขยายแหล่งที่มาของสื่อ
วิธีตรวจสอบว่า MSE รองรับ Opus ใน MP4 หรือไม่มีดังนี้
if (MediaSource.isTypeSupported('audio/mp4; codecs="opus"')) {
// TODO: Fetch data and feed it to a media source.
}
หากต้องการดูตัวอย่างแบบเต็ม โปรดดูตัวอย่างอย่างเป็นทางการ
เนื่องจากไม่มีเครื่องมือสำหรับรวม Opus ใน MP4 ที่มีค่าการตัดตอนท้ายและการข้ามล่วงหน้าที่ถูกต้อง หากความแม่นยำดังกล่าวสำคัญกับคุณ คุณจะต้องใช้ SourceBuffer.appendWindow{Start,End}
และ SourceBuffer.timestampOffset
ใน Chrome เพื่อให้ได้การเล่นที่ถูกต้องตามตัวอย่าง
Intent to Ship | เครื่องมือติดตามสถานะ Chrome | ข้อบกพร่องของ Chromium
อนุญาตให้เล่นเนื้อหาที่ได้รับการคุ้มครองโดยค่าเริ่มต้นใน Android
ใน Chrome 70 สำหรับ Android ค่าเริ่มต้นของการตั้งค่าเว็บไซต์ "เนื้อหาที่ได้รับการคุ้มครอง" จะเปลี่ยนจาก "ขอก่อน" เป็น "อนุญาต" ซึ่งจะลดความยุ่งยากที่เกี่ยวข้องกับการเล่นสื่อดังกล่าว ส่วนหนึ่งของการเปลี่ยนแปลงนี้อาจเกิดจากขั้นตอนเพิ่มเติมในการล้างใบอนุญาตสื่อควบคู่ไปกับคุกกี้และข้อมูลเว็บไซต์ เพื่อให้มั่นใจว่าเว็บไซต์จะไม่ใช้ใบอนุญาตสื่อเพื่อติดตามผู้ใช้ที่ล้างข้อมูลการท่องเว็บ