การอัปเดตเสียง/วิดีโอใน Chrome 70

ฟร็องซัว โบฟอร์
François Beaufort

ดูวิดีโอโดยใช้การแสดงภาพซ้อนภาพ

การแสดงภาพซ้อนภาพ (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 ใน "สถิติสำหรับเด็กเนิร์ด"
สถิติสำหรับเด็กเนิร์ดที่แสดง AV1 ใน YouTube
รูปที่ 1 สถิติสำหรับเด็กเนิร์ดที่แสดง AV1 ใน YouTube

การรองรับตัวแปลงรหัสและการสลับคอนเทนเนอร์ใน 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 ค่าเริ่มต้นของการตั้งค่าเว็บไซต์ "เนื้อหาที่มีการคุ้มครอง" จะเปลี่ยนจาก "ถามก่อน" เป็น "อนุญาต" เพื่อลดความยุ่งยากในการเล่นสื่อดังกล่าว ส่วนหนึ่งเนื่องมาจากมีขั้นตอนเพิ่มเติมที่ได้ดำเนินการล้างใบอนุญาตสื่อควบคู่ไปกับคุกกี้และข้อมูลเว็บไซต์ เพื่อให้มั่นใจว่าเว็บไซต์จะไม่ใช้ใบอนุญาตสื่อเพื่อติดตามผู้ใช้ที่ได้ล้างข้อมูลการท่องเว็บไปแล้ว

การตั้งค่าเนื้อหาที่ได้รับการคุ้มครองใน Android
รูปที่ 2 การตั้งค่าเนื้อหาที่ได้รับการคุ้มครองใน Android