Update media di Chrome 62

Prancis Beaufort
François Beaufort

Lisensi tetap untuk Android

Lisensi persisten dalam Encrypted Media Extensions (EME) berarti lisensi dapat dipertahankan di perangkat sehingga aplikasi dapat memuat lisensi ke memori tanpa mengirim permintaan lisensi lain ke server. Ini adalah cara pemutaran offline didukung di EME.

Hingga saat ini, ChromeOS adalah satu-satunya platform yang mendukung lisensi persisten. Itu tidak benar lagi. Memutar konten yang dilindungi melalui EME saat perangkat dalam offline kini juga dapat diputar di Android.

const config = [{
  sessionTypes: ['persistent-license'],
  videoCapabilities: [{
    contentType: 'video/webm; codecs="vp09.00.10.08"',
    robustness: 'SW_SECURE_DECODE' // Widevine L3
  }]
}];

// Chrome will prompt user if website is allowed to uniquely identify
// user's device to play protected content.
navigator.requestMediaKeySystemAccess('com.widevine.alpha', config)
.then(access => {
  // User will be able to watch encrypted content while being offline when
  // license is stored locally on device and loaded later.
})
.catch(error => {
  // Persistent licenses are not supported on this platform yet.
});

Anda dapat mencoba lisensi tetap sendiri dengan memeriksa Contoh PWA Media dan mengikuti langkah-langkah berikut:

  1. Buka https://biograf-155113.appspot.com/ttt/episode-2/
  2. Klik "Jadikan tersedia saat offline" dan tunggu video didownload.
  3. Aktifkan mode pesawat.
  4. Klik tombol "Putar" dan nikmati videonya!

Widevine L1 untuk Android

Seperti yang mungkin sudah Anda ketahui, semua perangkat Android diwajibkan untuk mendukung Widevine Level Keamanan 3 (Widevine L3). Namun, ada banyak perangkat di luar sana yang juga mendukung level keamanan tertinggi: Widevine Security Level 1 dengan semua pemrosesan konten, kriptografi, dan kontrol dilakukan dalam Trusted Execution Environment (TEE).

Kami punya kabar baik. Widevine L1 kini didukung di Chrome untuk Android sehingga media dapat diputar dengan cara yang paling aman. Perhatikan bahwa fitur ini sudah didukung di ChromeOS.

const config = [{
  videoCapabilities: [{
    contentType: 'video/webm; codecs="vp09.00.10.08"',
    robustness: 'HW_SECURE_ALL' // Widevine L1
  }]
}];

// Chrome will prompt user if website is allowed to uniquely identify
// user's device to play protected content.
navigator.requestMediaKeySystemAccess('com.widevine.alpha', config)
.then(access => {
  // User will be able to watch encrypted content in the most secure way.
})
.catch(error => {
  // Widevine L1 is not supported on this platform yet.
});

Shaka Player, library JavaScript untuk format media adaptif (seperti DASH dan HLS) memiliki demo agar Anda dapat mencoba Widevine L1:

  1. Buka https://shaka-player-demo.appspot.com/demo/, lalu klik "Izinkan" saat diminta.
  2. Pilih "Angel One (multicodec, multibahasa, Widevine)".
  3. Masukkan HW_SECURE_ALL di kolom "Kekokohan Video" pada bagian "Konfigurasi".
  4. Klik tombol "Muat" dan nikmati videonya!

Pengoptimalan trek video latar belakang (khusus RKG)

Tim Chrome selalu berusaha menemukan cara baru untuk meningkatkan masa pakai baterai, termasuk Chrome 62.

Chrome kini menonaktifkan trek video saat video diputar di latar belakang (misalnya, di tab yang tidak terlihat) jika video menggunakan Media Source Extensions (MSE). Lihat artikel sebelumnya kami untuk mempelajari lebih lanjut.

Menyesuaikan rentang yang dapat dicari di streaming MSE live

Seperti yang mungkin sudah Anda ketahui, atribut seekable berisi rentang resource media yang dapat dicari browser. Biasanya, jenis ini berisi satu rentang waktu yang dimulai dari 0 dan berakhir pada durasi resource media. Jika durasi tidak tersedia, seperti live stream, rentang waktunya dapat terus berubah.

Kabar baiknya adalah Anda kini dapat menyesuaikan logika rentang seekable secara lebih efektif dengan Ekstensi Sumber Media (MSE) dengan memberikan atau menghapus satu rentang yang dapat dicari yang digabungkan dengan rentang yang di-buffer saat ini. Format ini menghasilkan satu rentang yang dapat dicari yang cocok dengan keduanya, jika durasi sumber media adalah +Infinity.

Pada kode di bawah ini, sumber media telah dilampirkan ke elemen media dan hanya berisi segmen init-nya:

const mediaSource = new MediaSource();
...

mediaSource.duration = +Infinity;
// Seekable time ranges: { }
// Buffered time ranges: { }

mediaSource.setLiveSeekableRange(1 /* start */, 4 /* end */);
// Seekable time ranges: { [1.000, 4.000) }
// Buffered time ranges: { }

// Let's append a media segment that starts at 3 seconds and ends at 6.
mediaSource.sourceBuffers[0].appendBuffer(someData);
// Seekable time ranges: { [1.000, 6.000) }
// Buffered time ranges: { [3.000, 6.000) }

mediaSource.clearLiveSeekableRange();
// Seekable time ranges: { [0.000, 6.000) }
// Buffered time ranges: { [3.000, 6.000) }

Ada banyak kasus yang tidak saya bahas di atas, jadi sebaiknya Anda mencoba sampel resmi untuk melihat bagaimana rentang waktu yang di-buffer dan yang dapat dicari bereaksi terhadap berbagai peristiwa MSE.

Rencana Pengiriman | Pelacak Chromestatus | Bug Chromium

FLAC dalam MP4 untuk MSE

Format coding audio lossless FLAC telah didukung dalam pemutaran media reguler sejak Chrome 56. FLAC dalam dukungan ISO-BMFF (alias FLAC dalam MP4) ditambahkan beberapa saat setelahnya. Dan kini FLAC dalam MP4 tersedia di Chrome 62 untuk Media Source Extensions (MSE).

Untuk info, orang-orang Firefox adalah orang-orang yang mengembangkan dan mengimplementasikan dukungan untuk FLAC dalam spesifikasi enkapsulasi MP4, dan BBC telah bereksperimen untuk menggunakannya dengan MSE. Anda dapat membaca postingan "Delivering Radio 3 Concert Sound" BBC untuk mempelajari lebih lanjut.

Berikut cara mendeteksi apakah FLAC dalam MP4 didukung untuk MSE:

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

Jika ingin melihat contoh lengkap, lihat sampel resmi kami.

Rencana Pengiriman | Pelacak Chromestatus | Bug Chromium

Video otomatis beralih ke layar penuh saat perangkat diputar

Jika Anda memutar perangkat ke lanskap saat video diputar di area pandang, pemutaran akan otomatis beralih ke mode layar penuh. Memutar perangkat ke mode potret akan mengembalikan video ke mode jendela. Baca artikel sebelumnya untuk mengetahui detail lebih lanjut.