- Chrome, AV1 video kod çözmeyi destekler.
- Artık EME üzerinden hangi şifreleme şemalarının desteklendiğini sorgulayabilirsiniz.
- Web geliştiricileri, belirli bir HDCP politikasının uygulanıp uygulanmayacağını sorgulamayla denemeler yapabilir.
- Medya Kaynağı Uzantıları artık arabelleğe alınan aralıklar ve süre değerleri için PTS'yi kullanmaktadır.
- Android Go kullanıcıları indirilen ses, video ve resimleri Chrome'da açabilir.
- MSE kullanan medya öğeleri için durdurulmuş etkinlikler kaldırılır.
AV1 video kod çözücü
Chromestatus İzleyici | Chromium Hatası
EME: Şifreleme şeması desteğini sorgulama
Bazı platformlar veya anahtar sistemler yalnızca CENC modunu desteklerken bazıları yalnızca CBCS modunu destekler. Yine de diğerleri her ikisini de destekleyebilir. Bu iki şifreleme şeması uyumsuzdur. Bu nedenle, web geliştiricilerinin hangi içeriğin yayınlanacağı konusunda akıllı seçimler yapabilmesi gerekir.
"Bilinen" şifreleme şeması desteğini kontrol etmek için hangi platformda olduklarını belirlemek zorunda kalmamak amacıyla web sitelerinin Şifrelenmiş Medya Uzantılarında (EME) hangi şifreleme düzeninin kullanılabileceğini belirlemelerine olanak tanımak için MediaKeySystemMediaCapability
sözlüğe yeni bir encryptionScheme
anahtarı eklenir.
Yeni encryptionScheme
anahtarı şu iki değerden biri olabilir:
'cenc'
AES-TO modu tam örnek ve video NAL alt örnek şifrelemesi.'cbcs'
AES-CBC modu kısmi video NAL kalıbı şifrelemesi.
Belirtilmezse tüm şifreleme şemalarının kabul edilebilir olduğunu gösterir. Temizleme Anahtarı'nın her zaman 'cenc'
şemasını desteklediğini unutmayın.
Aşağıdaki örnekte, farklı şifreleme şemalarına sahip iki yapılandırmanın nasıl sorgulanacağı gösterilmektedir. 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, iki farklı şifreleme düzenine sahip yalnızca bir yapılandırma sorgulanmıştır. Bu durumda, Chrome destekleyemeyeceği özellik nesnesini siler. Bu nedenle, toplanan yapılandırma bir şifreleme şeması veya her ikisini de içerebilir.
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ı | Chromestatus Tracker | Chromium Hatası
EME: HDCP politika kontrolü
HDCP, günümüzde korunan içeriklerin yüksek çözünürlüklü akışı için yaygın bir politika gereksinimidir. HDCP politikasını uygulamak isteyen web geliştiricilerinin ise lisans değişiminin tamamlanmasını beklemesi veya düşük çözünürlükte içerik akışını başlatması gerekir. Bu, HDCP Policy Check API'nin çözmeyi hedeflediği üzücü bir durumdur.
Önerilen bu API, oynatmanın en iyi kullanıcı deneyimi için optimum çözünürlükte başlatılabilmesi amacıyla web geliştiricilerinin belirli bir HDCP politikasının uygulanıp uygulanmayacağını sorgulamalarına olanak tanır. HDCP politikasıyla ilişkilendirilmiş varsayımsal bir anahtarın durumunu, MediaKeySession
oluşturmaya veya gerçek bir lisans getirmeye gerek kalmadan sorgulamak için basit bir yöntemden oluşur. Herhangi bir ses veya video öğesine MediaKeys
öğesinin eklenmesine de gerek yoktur.
HDCP Policy Check API'si sadece mediaKeys.getStatusForPolicy()
öğesini, minHdcpVersion
anahtarı ve geçerli bir değere sahip bir nesneyle çağırarak çalışır. Belirtilen sürümde HDCP kullanılabiliyorsa döndürülen söz, 'usable'
değerindeki MediaKeyStatus
ile çözümlenir. Aksi takdirde, söz konusu 'output-restricted'
veya 'output-downscaled'
gibi MediaKeyStatus
diğer hata değerleri ile çözümlenir. Anahtar sistemi HDCP Politika Kontrolü'nü hiç desteklemiyorsa (ör. Anahtar Sistemini Temizle) sözü reddeder.
Özetle, şimdilik API'nin çalışma şekli şöyledir. Tüm HDCP sürümlerini denemek için resmi örneğe göz atın.
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 denemelerinde kullanılabilir
Web geliştiricilerinden geri bildirim almak amacıyla, Masaüstü için Chrome 69'a (ChromeOS, Linux, Mac ve Windows) HDCP Politika Kontrolü API'sı özelliğini daha önce eklemiştik.
Deneme süresi Kasım 2018'de başarıyla sona erdi.
Deneme Amacı | Chromestatus İzleyici | Chromium Hatası
MSE PTS/DTS uygunluğu
Arabelleğe alınan aralıklar ve süre değerleri artık Medya Kaynağı Uzantılarında (MSE) Kod Çözme Zaman Damgası (DTS) aralıkları yerine Sunu Zaman Damgası (PTS) aralıklarına göre raporlanıyor.
MSE yeni olduğunda Chrome'un uygulaması, PTS ile DTS arasında farkın bulunmadığı bazı medya akışı biçimleri olan WebM ve MP3'e göre test edildi. ISO BMFF (diğer adıyla MP4) eklenene kadar sistem düzgün çalışıyordu. Bu container, sıklıkla sıra dışı sunum ve kod çözme zaman akışları içerdiğinden (örneğin, H.264 gibi codec'ler için) DTS ve PTS'nin farklı olmasına yol açar. Bu durum, Chrome'un beklenenden biraz farklı arabelleğe alınmış aralıklar ve süre değerleri raporlamasına neden oldu (genellikle biraz). Bu yeni davranış Chrome 69'da kademeli olarak kullanıma sunulacak ve MSE uygulamasını MSE spesifikasyonu ile uyumlu hale getirecektir.
![PTS/DTS](https://developer.chrome.com/static/blog/media-updates-in-chrome-69/image/ptsdts-a029a068bdd9b.png?authuser=5&hl=tr)
Bu değişiklik MediaSource.duration
(ve dolayısıyla HTMLMediaElement.duration
), SourceBuffer.buffered
(ve sonuç olarak HTMLMediaElement.buffered)
ile SourceBuffer.remove(start, end)
) alanlarını etkiler.
Arabelleğe alınan aralıkları ve süre değerlerini raporlamak için hangi yöntemin kullanıldığından emin değilseniz dahili chrome://media-internals
sayfasına gidip günlüklerde "ChunkDemuxer: PTS tarafından arabelleğe alınıyor" veya "ChunkDemuxer: DTS tarafından arabelleğe alınıyor" ifadesini arayabilirsiniz.
Uygulama Amacı | Chromium Hatası
Android Go'da medya görüntüleme amaçlarını işleme
Android Go, Android'in giriş seviyesi akıllı telefonlar için tasarlanmış hafif bir sürümüdür. Bu açıdan, bazı medya görüntüleme uygulamalarıyla birlikte gönderilmesi gerekmez. Dolayısıyla, örneğin bir kullanıcı indirilen bir videoyu açmaya çalışırsa bu amacı gerçekleştirecek herhangi bir uygulaması olmaz.
Bu sorunu düzeltmek için Android Go'daki Chrome 69 artık medya görüntüleme amaçlarını dinliyor. Böylece kullanıcılar indirilen ses, video ve resimleri görüntüleyebilir. Başka bir deyişle, eksik görüntüleme uygulamalarının yerini alır.
![ALT_TEXT_HERE](https://developer.chrome.com/static/blog/media-updates-in-chrome-69/image/alttexthere-0d5b0859fc0e3.png?authuser=5&hl=tr)
Bu Chrome özelliğinin, Android O ve sonraki sürümleri çalıştıran ve en fazla 1 GB RAM'e sahip tüm Android cihazlarda etkinleştirildiğini unutmayın.
MSE kullanan medya öğeleri için "durdurulmuş" etkinliklerin kaldırılması
Medya verileri indirme işlemi yaklaşık 3 saniye boyunca başarısız olursa medya öğesinde "durduruldu" etkinliği gösterilir. Medya Kaynağı Uzantıları (MSE) kullanıldığında, web uygulaması indirme işlemini yönetir ve medya öğesi ilerleme durumunu fark etmez. Bu durum, web sitesinin son 3 saniyede SourceBuffer.appendBuffer()
içeren yeni medya veri parçaları eklemediği durumlarda Chrome'un uygun olmayan zamanlarda "durduruldu" etkinliklerini yükseltmesine neden oldu.
Web siteleri büyük veri parçalarını düşük sıklıkta eklemeye karar verebileceğinden bu durum, arabelleğe alma durumu hakkında yararlı bir sinyal değildir. MSE kullanarak medya öğeleri için "durdurulmuş" etkinliklerin kaldırılması, karışıklığı ortadan kaldırır ve Chrome'un MSE spesifikasyonuyla daha uyumlu olmasını sağlar. MSE kullanmayan medya öğelerinin, "durdurulmuş" etkinlikleri şu anda olduğu gibi yükseltmeye devam edeceğini unutmayın.
Kullanımdan Kaldırma ve Kaldırma Amacı | Chromestatus Tracker | Chromium Bug