- Kalıcı lisanslarla çevrimdışı oynatma ve Widevine L1 artık Android'de destekleniyor.
- Chrome artık performansı optimize etmek için arka planda bir MSE videosu oynatıldığında video parçalarını devre dışı bırakır.
- Web geliştiriciler, canlı MSE yayınlarında izlenebilir aralığı özelleştirebilir.
- Chrome artık MSE ile MP4'te FLAC'yi destekliyor.
- Cihaz döndürüldüğünde video tam ekrana geçer.
Android için kalıcı lisanslar
Şifrelenmiş Medya Uzantıları (EME)'ndaki kalıcı lisans, uygulamaların sunucuya başka bir lisans isteği göndermeden lisansı belleğe yükleyebilmesi için lisansın cihazda kalıcı olarak saklanması anlamına gelir. Çevrimdışı oynatma, EME'de bu şekilde desteklenir.
Şu ana kadar ChromeOS, kalıcı lisansları destekleyen tek platformdu. Artık geçerli değil. Cihaz çevrimdışıyken EME üzerinden korunan içeriği oynatmak artık Android'de de mümkün.
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.
});
Kalıcı lisansları denemek için örnek medya PWA'sına göz atabilir ve aşağıdaki adımları uygulayabilirsiniz:
- https://biograf-155113.appspot.com/ttt/episode-2/ adresine gidin.
- "Çevrimdışı kullanılabilir yap"ı tıklayın ve videonun indirilmesini bekleyin.
- Uçak modunu açın.
- "Oynat" düğmesini tıklayarak videoyu izleyin.
Android için Widevine L1
Bildiğiniz gibi, tüm Android cihazların Widevine Güvenlik Seviyesi 3'ü (Widevine L3) desteklemesi gerekir. Bununla birlikte, tüm içerik işleme, kriptografi ve kontrolün Güvenilir Yürütme Ortamı'nda (TEE) gerçekleştirildiği en yüksek güvenlik düzeyini de destekleyen birçok cihaz vardır: Widevine Güvenlik Seviyesi 1.
Konuyla ilgili olumlu gelişmeleri paylaşmak isteriz. Medyaların en güvenli şekilde oynatılabilmesi için Widevine L1 artık Android için Chrome'da destekleniyor. Bu özelliğin ChromeOS'te zaten desteklendiğini unutmayın.
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.
});
Uyarlanabilir medya biçimleri (DASH ve HLS gibi) için JavaScript kitaplığı olan Shaka Player'da Widevine L1'i denemeniz için bir demo bulunur:
- https://shaka-player-demo.appspot.com/demo/ adresine gidin ve istendiğinde "İzin ver"i tıklayın.
- "Angel One (çok kodlu, çok dilli, Widevine)" seçeneğini belirleyin.
- "Yapılandırma" bölümünün "Video Sağlamlığı" alanına
HW_SECURE_ALL
yazın. - "Yükle" düğmesini tıklayın ve videonun keyfini çıkarın!
Arka plan video parçası optimizasyonları (yalnızca MSE)
Chrome ekibi her zaman pil ömrünü uzatmanın yeni yollarını bulmaya çalışıyor. Chrome 62 de bu durumdan biri.
Chrome artık video Medya Kaynağı Uzantılarını (MSE) kullanıyorsa video arka planda oynatıldığında (ör. görünmeyen bir sekmede) video parçalarını devre dışı bırakır. Daha fazla bilgi edinmek için önceki makalemize göz atın.
Canlı MSE akışlarında aranabilir aralığı özelleştirin
Bildiğiniz gibi seekable
özelliği, tarayıcının aradığı medya kaynağının aralıklarını içerir. Genellikle 0'da başlayan ve medya kaynağı süresinde sona eren tek bir zaman aralığı içerir. Ancak süre mevcut değilse (ör. canlı yayın) zaman aralığı sürekli olarak değişebilir.
Artık mevcut arabelleğe alınmış aralıklarla birleştirilen tek bir aranabilir aralık sağlayarak veya kaldırarak seekable
aralık mantığını Medya Kaynağı Uzantılarıyla (MSE) daha etkili bir şekilde özelleştirebilirsiniz. Bu, medya kaynağı süresi +Infinity
olduğunda her ikisine de uyan tek bir aranabilir aralık oluşturur.
Aşağıdaki kodda, medya kaynağı zaten bir medya öğesine eklenmiş ve yalnızca init segmentini içeriyor:
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) }
Yukarıda ele almadığımız birçok durum vardır. Bu nedenle, arabelleğe alınan ve aranabilir zaman aralıklarının farklı MSE etkinliklerine nasıl tepki verdiğini görmek için resmi örneği denemenizi öneririz.
Gönderim Amacı | ChromeDurum İzleyici | Chromium Hatası
MSE için MP4 olarak FLAC
Kayıpsız ses kodlama biçimi FLAC, Chrome 56'dan beri normal medya oynatmalarında desteklenmektedir. Kısa süre sonra ISO-BMFF'de FLAC desteği (diğer adıyla MP4'te FLAC) eklendi. Artık MP4'te FLAC, Medya Kaynağı Uzantıları (MSE) için Chrome 62'de kullanılabilir.
Bilgi veriyorum; MP4 kapsülleme spesifikasyonunda FLAC desteğini geliştirip uygulayan Firefox ekibidir. BBC de bunu MSE ile kullanmayı denemektedir. Daha fazla bilgi için BBC'nin "Radio 3 Konser Sesini Yayınlama" başlıklı yayınını okuyabilirsiniz.
MP4'teki FLAC'ın MSE için desteklenip desteklenmediğini nasıl algılayabileceğiniz aşağıda açıklanmıştır:
if (MediaSource.isTypeSupported('audio/mp4; codecs="flac"')) {
// TODO: Fetch data and feed it to a media source.
}
Tam bir örnek görmek istiyorsanız resmi örneğimize göz atın.
Gönderme Niyeti | Chromestatus İzleyici | Chromium Hatası
Cihaz döndürüldüğünde videonun otomatik olarak tam ekrana geçmesi
Görüntü alanında video oynatılırken cihazı yatay moda döndürürseniz oynatma otomatik olarak tam ekran moduna geçer. Cihazı dikey moda döndürdüğünüzde video pencere moduna geri döner. Daha fazla bilgi için geçmiş makalemizi inceleyin.