- 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.
- Video, cihaz döndürüldüğünde 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.
Kalıcı lisansları destekleyen tek platform şimdiye kadar ChromeOS idi. Artık geçerli değil. Cihaz çevrimdışıyken EME üzerinden korunan içerik oynatma özelliği artık Android'de de kullanılabilir.
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. Ancak, 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 (çoklu codec, çok dilli, Widevine)"yi seçin.
- "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 videoyu izleyin.
Arka plan video parçası optimizasyonları (yalnızca MSE)
Chrome ekibi, pil ömrünü iyileştirmenin yeni yollarını bulmaya her zaman çalışıyor. Chrome 62 de bu kapsamda geliştirildi.
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 makalemizi inceleyin.
Canlı MSE yayınlarında aranabilir aralığı özelleştirme
Bildiğiniz gibi seekable
özelliği, tarayıcının aradığı medya kaynağının aralıklarını içerir. Genellikle 0'dan başlayıp 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 seekable
aralık mantığını, mevcut arabelleğe alınmış aralıklarla birleştirilmiş tek bir aranabilir aralık sağlayarak veya kaldırarak 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ınmış 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önderme Niyeti | Chromestatus İzleyici | Chromium Hatası
MSE için MP4'te 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 ise 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.