Chrome 62'deki medya güncellemeleri

Furkan
François Beaufort

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:

  1. https://biograf-155113.appspot.com/ttt/episode-2/ adresine gidin
  2. "Çevrimdışı kullanılabilir yap"ı tıklayın ve videonun indirilmesini bekleyin.
  3. Uçak modunu açın.
  4. "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:

  1. https://shaka-player-demo.appspot.com/demo/ adresine gidin ve istendiğinde "İzin ver"i tıklayın.
  2. "Angel One (çok dilli, çok dilli, Widevine)" seçeneğini belirleyin.
  3. "Yapılandırma" bölümündeki "Video Bozukluğu" alanına HW_SECURE_ALL girin.
  4. "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.