Update Audio/Video di Chrome 70

François Beaufort
François Beaufort

Menonton video menggunakan Picture-in-Picture

Picture-in-Picture (PiP) memungkinkan pengguna menonton video di jendela mengambang (selalu berada di atas jendela lain) sehingga mereka dapat terus melihat video yang sedang ditonton sambil berinteraksi dengan situs atau aplikasi lain. Dengan Picture-in-Picture Web API baru, Anda dapat memulai dan mengontrol Picture-in-Picture untuk video di situs Anda.

Baca artikel kami untuk mempelajari semuanya.

Decoder AV1

AV1 adalah codec generasi berikutnya yang dikembangkan oleh Alliance for Open Media. AV1 meningkatkan efisiensi kompresi lebih dari 30% dibandingkan codec video tercanggih saat ini, VP9. Chrome 70 menambahkan dekoder AV1 ke Chrome Desktop x86-64 berdasarkan spesifikasi bitstream resmi. Saat ini, dukungan terbatas pada profil 0 “Utama” dan tidak mencakup kemampuan encoding. Container yang didukung adalah MP4 (ISO-BMFF) (lihat Dari video mentah ke video siap web untuk penjelasan singkat tentang container).

Untuk mencoba AV1:

  • Buka halaman YouTube TestTube.
  • Pilih "Pilih AV1 untuk SD" atau "Selalu Pilih AV1" untuk mendapatkan resolusi AV1 yang diinginkan. Perhatikan bahwa pada resolusi yang lebih tinggi, AV1 lebih mungkin mengalami masalah performa pemutaran di beberapa perangkat.
  • Coba putar klip YouTube dari Playlist Peluncuran Beta AV1.
  • Konfirmasi codec av01 di "Informasi statistik".
Informasi statistik yang menampilkan AV1 di YouTube.
Gambar 1. Informasi statistik yang menampilkan AV1 di YouTube.

Dukungan untuk pengalihan codec dan container di MSE

Chrome menambahkan dukungan untuk transisi lintas codec atau lintas bytestream yang lebih baik dalam pemutaran Media Source Extensions menggunakan metode changeType() baru di SourceBuffer. Hal ini memungkinkan jenis media byte yang ditambahkan ke SourceBuffer diubah setelahnya.

Versi MSE saat ini mendukung pemutaran media adaptif; namun, adaptasi memerlukan media apa pun yang ditambahkan ke SourceBuffer harus sesuai dengan jenis MIME yang diberikan saat pertama kali membuat SourceBuffer melalui MediaSource.addSourceBuffer(type). Codec dari jenis tersebut dan segmen inisialisasi yang diuraikan sebelumnya harus tetap sama. Artinya, situs harus melakukan langkah-langkah eksplisit untuk menyelesaikan pengalihan codec atau bytestream (dengan menggunakan beberapa elemen media atau jalur SourceBuffer dan beralih di antara jalur tersebut), sehingga meningkatkan kompleksitas aplikasi dan latensi yang terlihat oleh pengguna. (Transisi tersebut mengharuskan aplikasi web melakukan tindakan sinkron pada thread utama perender). Latensi transisi ini mengganggu kelancaran pemutaran media di seluruh transisi.

Dengan metode changeType() yang baru, SourceBuffer dapat melakukan buffering dan mendukung pemutaran di berbagai format bytestream dan codec. Metode baru ini mempertahankan media yang di-buffer sebelumnya, modulo penghapusan atau penghilangan frame yang dikodekan MSE di masa mendatang, dan memanfaatkan logika penyambungan dan buffering dalam algoritma pemrosesan frame yang dikodekan MSE yang ada.

Berikut cara menggunakan metode 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);
    }

Seperti yang diharapkan, jika jenis yang diteruskan tidak didukung oleh browser, metode ini akan memunculkan pengecualian NotSupportedError.

Lihat contoh untuk bereksperimen dengan buffering dan pemutaran elemen audio lintas codec dan lintas bytestream.

Maksud untuk Meluncurkan | Pelacak Status Chrome | Bug Chromium

Opus dalam MP4 untuk MSE

Codec audio Opus yang terbuka dan sangat serbaguna telah didukung di elemen <audio> dan <video> sejak Chrome 33. Dukungan Opus dalam ISO-BMFF (alias Opus dalam MP4) ditambahkan setelahnya. Sekarang Opus dalam MP4 tersedia di Chrome 70 untuk Media Source Extensions.

Berikut cara mendeteksi apakah Opus dalam MP4 didukung untuk MSE:

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

Jika Anda ingin melihat contoh lengkap, lihat contoh resmi kami.

Karena kurangnya alat untuk menggabungkan Opus dalam MP4 dengan pemangkasan akhir dan nilai pra-lewati yang benar, jika presisi tersebut penting bagi Anda, Anda harus menggunakan SourceBuffer.appendWindow{Start,End} dan SourceBuffer.timestampOffset di Chrome untuk mendapatkan pemutaran yang akurat per sampel.

Maksud untuk Meluncurkan | Pelacak Status Chrome | Bug Chromium

Mengizinkan pemutaran konten yang dilindungi secara default di Android

Di Chrome 70 untuk Android, nilai default setelan situs “konten yang dilindungi” berubah dari “Tanya dulu” menjadi “Diizinkan”, sehingga mengurangi hambatan yang terkait dengan pemutaran media tersebut. Perubahan ini dapat dilakukan, sebagian, karena langkah-langkah tambahan yang diambil untuk menghapus lisensi media bersama dengan cookie dan data situs, sehingga memastikan bahwa lisensi media tidak digunakan oleh situs untuk melacak pengguna yang telah menghapus data penjelajahan.

Setelan konten yang dilindungi di Android.
Gambar 2. Setelan konten yang dilindungi di Android.