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

François Beaufort
François Beaufort

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

การแสดงภาพซ้อนภาพ (PIP) ช่วยให้ผู้ใช้ดูวิดีโอในหน้าต่างแบบลอย (อยู่เหนือหน้าต่างอื่นๆ เสมอ) เพื่อให้ผู้ใช้ดูสิ่งที่กำลังรับชมได้ ขณะโต้ตอบกับเว็บไซต์หรือแอปพลิเคชันอื่นๆ Picture-in-Picture Web API ใหม่ช่วยให้คุณเริ่มและควบคุมฟีเจอร์ภาพในภาพ สำหรับวิดีโอบนเว็บไซต์ได้

อ่านข้อมูลทั้งหมดเกี่ยวกับเรื่องนี้ได้ในบทความของเรา

ตัวถอดรหัส AV1

AV1 เป็นตัวแปลงรหัสรุ่นถัดไปที่พัฒนาโดยAlliance for Open Media AV1 ปรับปรุงประสิทธิภาพในการบีบอัดมากกว่า 30% เมื่อเทียบกับ VP9 ซึ่งเป็นตัวแปลงรหัสวิดีโอที่ทันสมัยซึ่งใช้อยู่ในปัจจุบัน Chrome 70 เพิ่มตัวถอดรหัส AV1 ลงใน Chrome Desktop x86-64 ตามข้อกำหนดสตรีมบิตอย่างเป็นทางการ ขณะนี้ การรองรับจำกัดเฉพาะโปรไฟล์ 0 ของ "Main" และไม่รวมความสามารถในการเข้ารหัส คอนเทนเนอร์ที่รองรับคือ MP4 (ISO-BMFF) (ดูคำอธิบายสั้นๆ เกี่ยวกับคอนเทนเนอร์ได้ที่จากวิดีโอดิบ สู่เว็บที่พร้อมใช้งาน)

วิธีลองใช้ AV1

  • ไปที่หน้า YouTube TestTube
  • เลือก "ใช้ AV1 ก่อนสำหรับ SD" หรือ "ใช้ AV1 เสมอ" เพื่อให้ได้ความละเอียด AV1 ที่ต้องการ โปรดทราบว่าที่ความละเอียดสูงขึ้น AV1 มีแนวโน้มที่จะ พบปัญหาด้านประสิทธิภาพการเล่นในอุปกรณ์บางเครื่อง
  • ลองเล่นคลิป YouTube จากเพลย์ลิสต์การเปิดตัว AV1 เบต้า
  • ยืนยันตัวแปลงรหัส av01 ใน "สถิติสำหรับเด็กเนิร์ด"
สถิติสำหรับเด็กเนิร์ดที่มี AV1 ใน YouTube
รูปที่ 1 สถิติสำหรับเด็กเนิร์ดที่มี AV1 ใน YouTube

การรองรับการสลับตัวแปลงรหัสและคอนเทนเนอร์ใน MSE

Chrome เพิ่มการรองรับการเปลี่ยนโคเดกหรือสตรีมไบต์ข้ามที่ดียิ่งขึ้น ในการเล่น Media Source Extensions โดยใช้เมธอด 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

ดูตัวอย่างเพื่อทดลองใช้การบัฟเฟอร์และการเล่นข้ามตัวแปลงรหัสและข้ามไบต์สตรีมขององค์ประกอบเสียง

ความตั้งใจที่จะเปิดตัว | เครื่องมือติดตาม Chromestatus | ข้อบกพร่องของ Chromium

Opus ใน MP4 สำหรับ MSE

ตัวแปลงสัญญาณเสียงแบบเปิดและมีความอเนกประสงค์สูงอย่าง Opus ได้รับการรองรับในองค์ประกอบ <audio> และ <video> ตั้งแต่ Chrome 33 หลังจากนั้นจึงได้เพิ่มการรองรับ Opus ใน ISO-BMFF (หรือที่เรียกว่า Opus ใน MP4) และตอนนี้ Opus ใน MP4 พร้อมใช้งานใน Chrome 70 สำหรับ Media Source Extensions แล้ว

วิธีตรวจหาว่า MSE รองรับ Opus ใน MP4 หรือไม่

if (MediaSource.isTypeSupported('audio/mp4; codecs="opus"')) {
  // TODO: Fetch data and feed it to a media source.
}

หากต้องการดูตัวอย่างทั้งหมด โปรดดูตัวอย่างอย่างเป็นทางการ

เนื่องจากไม่มีเครื่องมือในการมัลติเพล็กซ์ Opus ใน MP4 ที่มีการตัดตอนท้ายและค่า Preskip ที่ถูกต้อง หากความแม่นยำดังกล่าวมีความสำคัญต่อคุณ คุณจะต้องใช้ SourceBuffer.appendWindow{Start,End} และ SourceBuffer.timestampOffset ใน Chrome เพื่อให้ได้การเล่นที่แม่นยำระดับตัวอย่าง

ความตั้งใจที่จะเปิดตัว | เครื่องมือติดตาม Chromestatus | ข้อบกพร่องของ Chromium

อนุญาตการเล่นเนื้อหาที่ได้รับการคุ้มครองโดยค่าเริ่มต้นใน Android

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

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