Chrome 62'deki medya güncellemeleri

François Beaufort
François Beaufort

Android için kalıcı lisanslar

Şifrelenmiş Medya Uzantıları'ndaki (EME) 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ı olabileceği anlamına gelir. EME'de çevrimdışı oynatma bu şekilde desteklenir.

Şu ana kadar ChromeOS, kalıcı lisansları destekleyen tek platformdu. Artık doğru 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.
});

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 destekleyen birçok cihaz vardır: Widevine Security Level 1; tüm içerik işleme, kriptografi ve denetimin Güvenilir Yürütme Ortamı (TEE) içinde gerçekleştirildiği.

Konuyla ilgili olumlu gelişmeleri paylaşmak isteriz. Medya içerikleri en güvenli şekilde oynatılabilmesi için artık Widevine L1 Android için Chrome'da destekleniyor. 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.
});

Uyarlanabilir medya biçimlerine (DASH ve HLS gibi) yönelik JavaScript kitaplığı olan Shaka Player, Widevine L1'i denemeniz için bir demo içerir:

  1. https://shaka-player-demo.appspot.com/demo/ adresine gidin ve istendiğinde "İzin ver"i tıklayın.
  2. "Angel One (çok kodlu, çok dilli, Widevine)" seçeneğini belirleyin.
  3. "Yapılandırma" bölümünün "Video Sağlığı" alanına HW_SECURE_ALL değerini girin.
  4. "Yükle" düğmesini tıklayın ve videonun keyfini çıkarın!

Arka plan video parçası optimizasyonları (yalnızca MSE)

Chrome ekibi sürekli olarak pil ömrünü uzatmanın yeni yollarını bulmak için çalışıyor. Chrome 62 de bu durumdan öyle.

Video Medya Kaynağı Uzantıları (MSE) kullanıyorsa Chrome artık video arka planda (ör. görünmez olmayan bir sekmede) oynatıldığında video kanalları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 arayabileceğ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. Bununla birlikte, canlı yayın gibi süre sunulmuyorsa zaman aralığı sürekli olarak değişebilir.

Neyse ki mevcut arabelleğe alınmış aralıklarla birleştirilmiş tek bir aranabilir aralık sağlayarak veya kaldırarak artık 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 ekli ve yalnızca başlangıç 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 birçok durum olduğu için 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ı | ChromeDurum İzleyici | Chromium Hatası

MSE için MP4 olarak FLAC

Kayıpsız ses kodlama biçimi FLAC, Chrome 56'dan bu yana normal medya oynatmada desteklenmektedir. ISO-BMFF desteğine (MP4'te FLAC) FLAC kısa süre sonra eklendi. Artık MP4 olarak FLAC, Chrome 62'de Medya Kaynağı Uzantıları (MSE) için kullanılabilir.

Örneğin, Firefox MP4 kapsülleme spesifikasyonunda FLAC desteği geliştirip uyguladı. BBC ise bu desteği MSE ile kullanma konusunda denemeler yapıyor. Daha fazla bilgi için BBC'nin "Delivering Radio 3 Concert Sound" (Radyo 3 Konser Sesi) başlıklı yayınını okuyabilirsiniz.

MSE için MP4'te FLAC'ın desteklenip desteklenmediğini aşağıdaki ş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 için resmi örneğimize göz atın.

Gönderim Amacı | ChromeDurum İzleyici | Chromium Hatası

Cihaz döndürüldüğünde otomatik video tam ekrana geçer

Bir video görüntü alanında oynatılırken cihazı yatay olarak döndürürseniz oynatma otomatik olarak tam ekran moduna geçer. Cihaz dikey yöne döndürüldüğünde video tekrar pencereli moda döner. Daha fazla bilgi için geçmiş makalemize göz atın.