- Chrome 支援 AV1 影片解碼功能。
- 透過以下途徑查詢支援哪些加密配置: 現已支援 EME。
- 網頁開發人員可以嘗試查詢是否可強制執行特定 HDCP 政策。
- 媒體來源擴充功能現在使用緩衝範圍和持續時間值的 PTS。
- Android Go 使用者可以在 Chrome 中開啟已下載的音訊、影片和圖片。
- 使用 MSE 的媒體元素會移除停滯事件。
AV1 影片解碼器
Chromestatus Tracker | Chromium 錯誤
EME:查詢加密配置支援
部分平台或金鑰系統只支援 CENC 模式,有些則只支援 CENC 模式 CBCS 模式。但其他人仍可同時支援這兩種模式。這兩種加密機制 因此網頁程式開發人員必須能 要放送什麼內容
不必苦苦判斷特定平台是否「已知」
支援加密配置,新的 encryptionScheme
金鑰已新增至
MediaKeySystemMediaCapability
字典:允許網站指定
加密媒體擴充功能 (EME) 中可使用哪些加密配置。
新的 encryptionScheme
鍵可以是以下其中一個值:
'cenc'
AES-CTR 模式完整樣本和影片 NAL 子取樣加密。'cbcs'
AES-CBC 模式部分影片 NAL 模式加密。
如果未指定,代表可接受任何加密配置。注意事項
Clear Key 一律支援 'cenc'
配置。
以下範例說明如何查詢具有不同 加密配置。在此情況下,系統只會選擇其中一個。
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']
},
]);
在以下範例中,只有一個設定具備兩種不同的加密機制 會發出查詢配置遇到這種情況時,Chrome 會捨棄所有功能物件 由於 Pod 不支援,因此累積的設定可能含有一個加密 配置或這兩者的配置。
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']
}]);
意圖實作 | Chromestatus Tracker | Chromium 錯誤
EME:HDCP 政策檢查
目前 HDCP 是串流高解析度串流的常見政策規定 「受保護的內容」類別。想要強制執行 HDCP 政策的網頁程式開發人員 必須等待授權交換完成,或是開始串流 觀賞內容這屬於 HDCP 政策的不幸情況 查看 API 來解決問題。
這個提議的 API 可讓網頁開發人員查詢特定 HDCP 政策
才能以最佳解析度開始播放
最佳使用者體驗其中包含一個用來查詢
與 HDCP 政策相關聯的假設性金鑰,不必建立
MediaKeySession
或擷取實際授權。無須要求 MediaKeys
附加至任何音訊或影片元素
HDCP Policy Check API 的運作原理,是呼叫
將 mediaKeys.getStatusForPolicy()
替換為具有 minHdcpVersion
鍵的物件
和有效的值如果 HDCP 適用於指定版本,則會傳回
承諾使用 'usable'
的 MediaKeyStatus
可解析。否則
可透過 MediaKeyStatus
的其他錯誤值解析,例如
'output-restricted'
或 'output-downscaled'
。如果按鍵系統
支援 HDCP 政策檢查 (例如清除金鑰系統),承諾就會拒絕。
簡單來說,以下是 API 目前的運作原理。查看官方範例 ,試用所有版本的 HDCP。
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...
});
適用於來源試用
為了收集網頁程式開發人員的意見,我們先前加入了 HDCP 政策 查看 Chrome 69 電腦版 (ChromeOS、Linux、Mac 和 Windows) 的 API 功能。
試用期已於 2018 年 11 月順利完成。
意圖進行實驗 | Chromestatus Tracker | Chromium 錯誤
MSE PTS/DTS 法規遵循
緩衝區範圍和時間長度值現在採用簡報時間戳記 媒體中的 (PTS) 間隔,而非解碼時間戳記 (DTS) 間隔 Source Extensions (MSE)。
MSE 是 Chrome 的實作版本,針對 WebM 和 MP3 進行測試。 媒體串流格式 (PTS 和 DTS) 沒有加以區別。且 但經過 ISO BMFF (又稱 MP4) 之前,這項錯誤可以正常運作。這個容器 經常包含順序失真的與解碼時間串流 (例如 例如 H.264 等轉碼器) 會造成 DTS 和 PTS 不同。已造成 Chrome 會回報不同的緩衝範圍和時間長度 值超出預期Chrome 69 將逐步推出這項新行為 並使其 MSE 實作符合 MSE 規格。
![PTS/DTS](https://developer.chrome.google.cn/static/blog/media-updates-in-chrome-69/image/ptsdts-a029a068bdd9b.png?authuser=9&hl=zh-tw)
這項變更會影響 MediaSource.duration
(進而
HTMLMediaElement.duration
)、SourceBuffer.buffered
(以及
HTMLMediaElement.buffered)
和 SourceBuffer.remove(start, end)
。
如果您不確定要使用哪種方法回報緩衝範圍和時間長度
請前往內部 chrome://media-internals
頁面搜尋
「ChunkDemuxer:buffering by PTS」或「ChunkDemuxer:DTS 緩衝」的
。
處理 Android Go 上的媒體檢視意圖
Android Go 是專為入門級設計的 Android 輕量版本 智慧型手機因此,「實際」媒體檢視不一定能 如此一來,如果使用者嘗試開啟下載的影片 將完全沒有應用程式可以處理該意圖
為解決這個問題,Android Go 上的 Chrome 69 現在會監聽媒體檢視意圖, 使用者就能觀看已下載的音訊、影片和圖片也就是說 因此,我們不必再擔心遭到忽略的檢視應用程式。
![ALT_TEXT_HERE](https://developer.chrome.google.cn/static/blog/media-updates-in-chrome-69/image/alttexthere-0d5b0859fc0e3.png?authuser=9&hl=zh-tw)
請注意,所有搭載 Android 的 Android 裝置都會啟用這項 Chrome 功能 RAM 低於 1 GB 的 O 和後續機型。
移除「停滯」使用 MSE 的媒體元素事件
「停滯」如果下載的媒體資料有
無法繼續進行約 3 秒使用媒體來源額外資訊時
(MSE),網頁應用程式會管理下載內容,但媒體元素不知道
其進度。這導致 Chrome 將包含不當活動
表示網站沒有附加新的媒體資料區塊時
過去 3 秒的SourceBuffer.appendBuffer()
。
由於網站可能會選擇低頻率附加大量資料,因此 這並不是有關緩衝健康狀態的實用信號。正在移除「停滯」事件 使用 MSE 時可清楚混淆,並讓 Chrome 更加排行 與 MSE 規範請注意,沒有使用 MSE 的媒體元素 繼續提高「穩定」活動。