- นักพัฒนาเว็บควบคุมการแสดงภาพซ้อนภาพสำหรับวิดีโอได้
- ตอนนี้ 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
ซึ่งจะช่วยให้เปลี่ยนประเภทไบต์ของสื่อต่อท้าย SourceBuffer
ได้หลังจากนั้น
MSE เวอร์ชันปัจจุบันรองรับการเล่นสื่อแบบปรับอัตโนมัติ แต่การปรับเปลี่ยนจำเป็นต้องให้สื่อใดๆ ต่อท้าย SourceBuffer
ต้องสอดคล้องกับประเภท MIME ที่ระบุเมื่อสร้าง SourceBuffer
ผ่าน MediaSource.addSourceBuffer(type)
ในครั้งแรก ตัวแปลงรหัสจากประเภทดังกล่าวและส่วนการเริ่มต้นที่แยกวิเคราะห์ก่อนหน้าจะต้องเหมือนกันตลอดทั้งตัว ซึ่งหมายความว่าเว็บไซต์ต้องมีขั้นตอนที่ชัดเจนเพื่อแปลงตัวแปลงรหัสหรือไบต์สตรีม (โดยใช้องค์ประกอบสื่อหลายรายการหรือ SourceBuffer
แทร็กและสลับไปมา) เพิ่มความซับซ้อนของแอปพลิเคชันและเวลาในการตอบสนองที่ผู้ใช้มองเห็นได้ (การเปลี่ยนลักษณะนี้กำหนดให้เว็บแอปต้องดำเนินการพร้อมกันกับเทรดหลักของโหมดแสดงภาพ) เวลาในการตอบสนองของการเปลี่ยนนี้จะลดความลื่นไหลของการเล่นสื่อระหว่างการเปลี่ยน
เมื่อใช้เมธอด changeType()
ใหม่ SourceBuffer
จะสามารถบัฟเฟอร์และรองรับการเล่นในรูปแบบไบต์สตรีมและตัวแปลงรหัสที่แตกต่างกัน วิธีการใหม่นี้ยังคงเก็บสื่อที่บัฟเฟอร์ไว้ก่อนหน้านี้ การตัดหรือนำออกเฟรมที่เขียนโค้ด 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 | Chromestatus Tracker | ข้อบกพร่อง 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 | Chromestatus Tracker | ข้อบกพร่อง Chromium
อนุญาตการเล่นเนื้อหาที่ได้รับการคุ้มครองโดยค่าเริ่มต้นบน Android
ใน Chrome 70 สำหรับ Android ค่าเริ่มต้นของการตั้งค่าเว็บไซต์ "เนื้อหาที่มีการคุ้มครอง" จะเปลี่ยนจาก "ถามก่อน" เป็น "อนุญาต" เพื่อลดความยุ่งยากในการเล่นสื่อดังกล่าว ส่วนหนึ่งเนื่องมาจากมีขั้นตอนเพิ่มเติมที่ได้ดำเนินการล้างใบอนุญาตสื่อควบคู่ไปกับคุกกี้และข้อมูลเว็บไซต์ เพื่อให้มั่นใจว่าเว็บไซต์จะไม่ใช้ใบอนุญาตสื่อเพื่อติดตามผู้ใช้ที่ได้ล้างข้อมูลการท่องเว็บไปแล้ว