Chrome 69'daki medya güncellemeleri

François Beaufort
François Beaufort

AV1 video kod çözücü

ChromeDurum İzleyici | Chromium Hatası

EME: Şifreleme şeması desteğini sorgulama

Bazı platformlar veya anahtar sistemler yalnızca CENC modunu destekler, bazıları ise yalnızca destekler CBCS moduna girer. Bazıları ise her ikisini de destekleyebilir. Bu iki şifreleme şeması uyumlu olmadığı için web geliştiricilerinin akıllı seçimler yapabilmesi gerekir. daha çok ayrıntı içerir.

"Bilinen" olup olmadığını kontrol etmek için hangi platformda olduklarını belirlemek zorunda kalmamak amacıyla şifreleme şeması desteğini kullandığınızda, tarayıcıya yeni bir encryptionScheme anahtarı eklenir Web sitelerinin belirtilmesine izin vermek için MediaKeySystemMediaCapability sözlük Şifrelenmiş Medya Uzantıları'nda (EME) hangi şifreleme şemasının kullanılabileceğini gösterir.

Yeni encryptionScheme anahtarı şu iki değerden biri olabilir:

  • 'cenc' AES-CTR modu tam örnek ve video NAL alt örnek şifrelemesi.
  • 'cbcs' AES-CBC modu kısmi video NAL kalıbı şifrelemesi.

Belirtilmezse herhangi bir şifreleme şemasının kabul edilebilir olduğunu belirtir. Not Anahtarı Temizle'nin her zaman 'cenc' şemasını desteklediğini doğrulayın.

Aşağıdaki örnekte, farklı ayarlara sahip iki yapılandırmanın nasıl sorgulanacağı gösterilmektedir şifreleme şemalarını kullanır. Bu durumda yalnızca bir tanesi seçilir.

await navigator.requestMediaKeySystemAccess('org.w3.clearkey', [
    {
      label: 'configuration using the "cenc" encryption scheme',
      videoCapabilities: [{
        contentType: 'video/mp4; codecs="avc1.640028"',
        encryptionScheme: 'cenc'
      }],
      audioCapabilities: [{
        contentType: 'audio/mp4; codecs="mp4a.40.2"',
        encryptionScheme: 'cenc'
      }],
      initDataTypes: ['keyids']
    },
    {
      label: 'configuration using the "cbcs" encryption scheme',
      videoCapabilities: [{
        contentType: 'video/mp4; codecs="avc1.640028"',
        encryptionScheme: 'cbcs'
      }],
      audioCapabilities: [{
        contentType: 'audio/mp4; codecs="mp4a.40.2"',
        encryptionScheme: 'cbcs'
      }],
      initDataTypes: ['keyids']
    },
  ]);

Aşağıdaki örnekte yalnızca iki farklı şifrelemeye sahip bir yapılandırma emin olun. Bu durumda, Chrome tüm özellikler nesnesini siler destekleyemediği için biriken yapılandırma tek bir şifreleme içerebilir ya da her ikisini birden seçebilirsiniz.

await navigator.requestMediaKeySystemAccess('org.w3.clearkey', [{
    videoCapabilities: [
      { // A video capability using the "cenc" encryption scheme
        contentType: 'video/mp4; codecs="avc1.640028"',
        encryptionScheme: 'cenc'
      },
      { // A video capability using the "cbcs" encryption scheme
        contentType: 'video/mp4; codecs="avc1.640028"',
        encryptionScheme: 'cbcs'
      },
    ],
    audioCapabilities: [
      { // An audio capability using the "cenc" encryption scheme
        contentType: 'audio/mp4; codecs="mp4a.40.2"',
        encryptionScheme: 'cenc'
      },
      { // An audio capability using the "cbcs" encryption scheme
        contentType: 'audio/mp4; codecs="mp4a.40.2"',
        encryptionScheme: 'cbcs'
      },
    ],
    initDataTypes: ['keyids']
  }]);

Uygulama Amacı | ChromeDurum İzleyici | Chromium Hatası

EME: HDCP politika kontrolü

HDCP günümüzde yüksek çözünürlüklü akışlar için yaygın politika gereksinimidir korunan içerik kapsamında değerlendirilebilir. Bir HDCP politikasını uygulamak isteyen web geliştiricileri lisans değişiminin tamamlanmasını beklemeli veya canlı yayın başlatmalıdır daha yüksek çözünürlüğe sahip olmalıdır. Bu, HDCP Politikası'nın Check API'nin amacı şudur.

Önerilen bu API, web geliştiricilerinin belirli bir HDCP politikasının geçerli olup olmadığını sorgulamalarına olanak tanır. videodaki ekran görüntüsünde optimum çözünürlükte başlatılabilmesi için en iyi kullanıcı deneyimini sunmak. Projenin durumunu sorgulamak için kullanılan basit bir bir HDCP politikasıyla ilişkilendirilmiş varsayımsal bir anahtar, MediaKeySession veya gerçek bir lisans getirin. MediaKeys değerinin olması gerekmez ekleyebilirsiniz.

HDCP Policy Check API yalnızca şunu çağırarak çalışır: minHdcpVersion anahtarına sahip bir nesneyle mediaKeys.getStatusForPolicy() ve geçerli bir değer girin. HDCP belirtilen sürümde kullanılabiliyorsa döndürülen taahhüt 'usable' tutarında MediaKeyStatus ile sonuçlandırılır. Aksi takdirde MediaKeyStatus gibi diğer hata değerleriyle çözümlenir. 'output-restricted' veya 'output-downscaled'. Anahtar sistemi HDCP Politika Kontrolü'nü desteklemez (ör. Anahtar Sistemini Temizle) ise taahhüt reddedilir.

API'nin şimdilik nasıl çalıştığı aşağıda kısaca açıklanmıştır. Resmi örneğe göz atın tüm sürümlerini denemek için.

const config = [{
  videoCapabilities: [{
    contentType: 'video/webm; codecs="vp09.00.10.08"',
    robustness: 'SW_SECURE_DECODE' // Widevine L3
  }]
}];

navigator.requestMediaKeySystemAccess('com.widevine.alpha', config)
.then(mediaKeySystemAccess => mediaKeySystemAccess.createMediaKeys())
.then(mediaKeys => {

  // Get status for HDCP 2.2
  return mediaKeys.getStatusForPolicy({ minHdcpVersion: '2.2' })
  .then(status => {
    if (status !== 'usable')
      return Promise.reject(status);

    console.log('HDCP 2.2 can be enforced.');
    // TODO: Fetch high resolution protected content...
  });
})
.catch(error => {
  // TODO: Fallback to fetch license or stream low-resolution content...
});

Kaynak denemeleri için kullanılabilir

Web geliştiricilerinden geri bildirim almak için HDCP Politikası'nı önceden ekledik Masaüstü için Chrome 69'da (ChromeOS, Linux, Mac ve Windows) API özelliğini kontrol edin.

Deneme sürümü Kasım 2018'de başarıyla sona erdi.

Deneme Amacı | ChromeDurum İzleyici | Chromium Hatası

MSE PTS/DTS uygunluğu

Arabelleğe alınan aralıklar ve süre değerleri artık Sunu Zaman Damgası ile raporlanıyor Medya'daki Kod Çözme Zaman Damgası (DTS) aralıkları yerine PTS) aralıkları Kaynak Uzantıları (MSE).

MSE yeni olduğunda, Chrome'un uygulaması WebM ve MP3'e göre test edildi. medya akışı biçimleridir. Ve ISO BMFF (MP4) eklenene kadar sorunsuz çalışıyordu. Bu kapsayıcı çoğu zaman sıralı sunum yerine zaman akışlarının H.264 gibi codec bileşenleri) DTS ve PTS'nin farklı olmasına neden olur. Bu durum, Chrome'un farklı arabellekteki aralıkları ve süreleri (genellikle sadece çok az) bildirmesi için görebilirsiniz. Bu yeni davranış Chrome 69'da kademeli olarak kullanıma sunulacaktır ve MSE uygulamasını MSE spesifikasyonu ile uyumlu hale getirin.

PTS/DTS
PTS/DTS

Bu değişiklik MediaSource.duration öğeyi etkiler (ve bunun sonucunda HTMLMediaElement.duration), SourceBuffer.buffered (ve sonuç olarak) HTMLMediaElement.buffered) ve SourceBuffer.remove(start, end).

Arabellekteki aralıkları ve süreyi raporlamak için hangi yöntemin kullanıldığından emin değilseniz değerleri varsa dahili chrome://media-internals sayfasına gidip "ChunkDemuxer: PTS tarafından arabelleğe alınıyor" veya "ChunkDemuxer: DTS tarafından arabelleğe alınıyor" günlükler.

Uygulama Amacı | Chromium Hatası

Android Go'da medya görüntüleme amaçlarının yönetimi

Android Go, Android'in giriş düzeyi için tasarlanmış hafif bir sürümüdür akıllı telefonlar. Bu bağlamda, bazı medya görüntülemeleriyle birlikte ile geliyor. Örneğin bir kullanıcı, indirilmiş bir videoyu açmaya çalıştığında bu amacı gerçekleştirecek bir uygulamaya sahip olmaz.

Android Go'daki Chrome 69 bu sorunu düzeltmek için artık medya görüntüleme amaçlarını dinliyor. Kullanıcılar indirilen ses, video ve resimleri görüntüleyebilir. Başka bir deyişle, yerine koyduk.

ALT_TEXT_HERE
Medya amacı işleyici

Bu Chrome özelliğinin, Android çalıştıran tüm Android cihazlarda etkin olduğunu unutmayın. En fazla 1 GB RAM ile O ve sonraki sürümlerde.

Chromium Hatası

"Durdurulan" içeriğin kaldırılması MSE kullanan medya öğeleri için etkinlikler

Bir "durmuş" indirme işlemi medya öğesinde gerçekleşirse etkinlik yaklaşık 3 saniyedir başarısız oldu. Medya Kaynağı Uzantıları kullanırken (MSE) kullanıyorsanız indirme işlemini web uygulaması yönetir ve medya öğesi bunun farkında değildir. takip edebiliyorsunuz. Bu durum, Chrome'un "durduruldu" değerini yükseltmesine neden oldu uygunsuz yerlerdeki etkinlikler yeni medya veri parçalarını eklememesiyle elde edilen Son 3 saniye içinde SourceBuffer.appendBuffer().

Web siteleri düşük sıklıkta büyük veri grupları eklemeye karar verebileceğinden arabelleğe alma durumu hakkında yararlı bir işaret değildir. "Durduruldu" durumunu kaldırma etkinlik MSE'yi kullanan medya öğeleri karışıklığı ortadan kaldırır ve Chrome'u daha uyumlu hale getirir uyumlu bir şekilde çalışır. MSE kullanmayan medya öğelerinin "durduruldu" durumunu yükseltmeye devam edin bugün olduğu gibi takip edebilirler.

Kullanımdan Kaldırma ve Kaldırma Amacı | ChromeDurum İzleyici | Chromium Hatası