- Kalıcı lisanslarla çevrimdışı oynatma ve Widevine L1 artık Android'de destekleniyor.
- Chrome artık performansı optimize etmek amacıyla arka planda bir MSE videosu oynatıldığında video parçalarını devre dışı bırakıyor.
- Web geliştiricileri, canlı MSE akışlarında aranabilir aralığı özelleştirebilir.
- Chrome artık MSE ile MP4'te FLAC'yi destekliyor.
- Cihaz döndürüldüğünde video tam ekran moduna geçer.
Android için kalıcı lisanslar
Şifrelenmiş Medya Uzantıları (EME) kapsamındaki kalıcı lisans, lisansın cihazda kalıcı olarak kalabileceği anlamına gelir. Böylece uygulamalar, sunucuya başka bir lisans isteği göndermeden lisansı belleğe yükleyebilir. Çevrimdışı oynatma EME'de bu şekilde desteklenir.
ChromeOS şimdiye kadar kalıcı lisansları destekleyen tek platformdu. Artık doğru değil. Korunan içerikleri cihaz çevrimdışıyken EME üzerinden oynatmak artık Android'de de mümkündür.
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.
});
Sample Media PWA'ya göz atıp şu adımları uygulayarak kalıcı lisansları kendiniz deneyebilirsiniz:
- 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ıklayın ve videonun keyfini çıkarın!
Android için Widevine L1
Bildiğiniz gibi tüm Android cihazların Widevine Güvenlik Düzeyi 3'ü (Widevine L3) desteklemesi gerekir. Bununla birlikte, en yüksek güvenlik düzeyini de destekleyen birçok cihaz vardır: tüm içerik işleme, kriptografi ve denetimin Güvenilir Yürütme Ortamı'nda (TEE) yürütüldüğü Widevine Güvenlik Düzeyi 1.
Konuyla ilgili olumlu gelişmeleri paylaşmak isteriz. Medyanın en güvenli şekilde oynatılabilmesi için Widevine L1 artık Android için Chrome'da destekleniyor. Bu özelliğin Chrome OS'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.
});
DASH ve HLS gibi uyarlanabilir medya biçimleri için JavaScript kitaplığı olan Shaka Player'da, Widevine L1'i deneyebileceğiniz bir demo bulunmaktadır:
- https://shaka-player-demo.appspot.com/demo/ adresine gidin ve istendiğinde "İzin ver"i tıklayın.
- "Angel One (çok dilli, çok dilli, Widevine)" seçeneğini belirleyin.
- "Yapılandırma" bölümündeki "Video Bozukluğu" alanına
HW_SECURE_ALL
girin. - "Yükle" düğmesini tıklayın ve videonun keyfini çıkarın!
Arka plan video kanal optimizasyonları (yalnızca MSE)
Chrome ekibi her zaman pil ömrünü uzatmanın yeni yollarını bulmaya çalışıyor ve Chrome 62 de bu konuda bir istisna değil.
Video arka planda (ör. görünür olmayan bir sekmede) Medya Kaynağı Uzantıları (MSE) kullanıyorsa Chrome artık video parçalarını devre dışı bırakıyor. 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 arama yapabileceği medya kaynağı 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.
Neyse ki mevcut arabelleğe alınan aralıklarla birleştirilmiş tek bir aranabilir aralık sağlayarak veya kaldırarak seekable
aralığı mantığını Medya Kaynağı Uzantıları (MSE) ile daha etkili bir şekilde özelleştirebilirsiniz. Medya kaynağı süresi +Infinity
olduğunda her ikisine de uyan tek bir aranabilir aralık elde edilir.
Aşağıdaki kodda, medya kaynağı zaten bir medya öğesine eklenmiştir ve yalnızca kendi başlangıç segmentini içerir:
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 değinmediğim birçok durum olduğundan, tamponlu 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ı | Chromestatus İzleyici | Chromium Hatası
MSE için MP4'te FLAC
Kayıpsız ses kodlama biçimi FLAC, Chrome 56'dan beri normal medya oynatma işlemlerinde desteklenmektedir. Kısa süre sonra ISO-BMFF desteğindeki FLAC (MP4'te FLAC olarak da bilinir) eklendi. MP4'te FLAC artık Medya Kaynağı Uzantıları (MSE) için Chrome 62'de kullanılabilir.
Bilgi için, MP4 kapsülleme spesifikasyonunda FLAC desteği geliştirip uygulayanlar Firefox çalışanlarıdır. BBC, MSE ile bunu kullanma konusunda denemeler yapıyor. Daha fazla bilgi edinmek için BBC'nin "Sunum Radyo 3 Konser Sesi" gönderisini okuyabilirsiniz.
MP4'te FLAC'nin MSE için desteklenip desteklenmediğini şu şekilde tespit edebilirsiniz:
if (MediaSource.isTypeSupported('audio/mp4; codecs="flac"')) {
// TODO: Fetch data and feed it to a media source.
}
Tam bir örnek görmek isterseniz resmi örneğimize göz atın.
Gönderim Amacı | Chromestatus İzleyici | Chromium Hatası
Cihaz döndürüldüğünde otomatik video tam ekran moduna geçer
Video, görüntü alanında oynatılırken cihazı yatay konuma getirirseniz oynatma otomatik olarak tam ekran moduna geçer. Cihaz dikey konuma döndürüldüğünde video tekrar pencereli moda döner. Daha fazla bilgi için geçmiş makalemize göz atın.