- Chrome は AV1 動画のデコードに対応しています。
- サポートされている暗号化スキームのクエリ EME をご利用いただけるようになりました。
- ウェブ デベロッパーは、特定の HDCP ポリシーを適用できるかどうかの確認を試すことができます。
- Media Source Extensions は、バッファリングされた範囲と時間の値に PTS を使用するようになりました。
- Android Go をご利用の場合は、Chrome でダウンロードした音声、動画、画像を開くことができます。
- MSE を使用するメディア要素の停止イベントが削除されました。
AV1 動画デコーダ
Chrome のステータス トラッカー | Chromium のバグ
EME: 暗号化スキームのサポートのクエリ
CENC モードのみをサポートしているプラットフォームや主要システムもあれば、CENC モードのみをサポートしているプラットフォームや主要システムもあります。 CBCS モード。両方のサポートができる組織もあります。この 2 つの暗号化スキームでは、 ウェブ デベロッパーがインテリジェントな選択を行えるよう、 決める必要があります
「既知」かどうかを調べるためにどのプラットフォームを使用しているか特定しなくて済むようにするため
暗号化スキームのサポートに伴い、新しい encryptionScheme
鍵が追加されます。
ウェブサイトで指定できる MediaKeySystemMediaCapability
辞書
Encrypted Media Extensions(EME)で使用できる暗号化スキーム。
新しい encryptionScheme
キーは、次の 2 つの値のいずれかになります。
'cenc'
AES-CTR モードのフルサンプルおよび動画の NAL サブサンプル暗号化。'cbcs'
AES-CBC モードにおける部分的な動画 NAL パターンの暗号化。
指定しない場合は、任意の暗号化スキームを使用できることを示します。備考
キーを消去すると、常に 'cenc'
スキームがサポートされるようになりました。
以下の例は、異なる 2 つの構成で 2 つの構成をクエリする方法を示しています。 暗号化します。この場合は、いずれか 1 つのみが選択されます。
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']
},
]);
以下の例では、1 つの構成に 2 つの異なる暗号化のみが含まれています。 スキームに対するクエリが実行されます。その場合、Chrome はすべてのケーパビリティ オブジェクトを破棄します。 サポートされていないため、蓄積された構成に 1 つの暗号化が含まれているか、 いずれかまたは両方を選択できます
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']
}]);
実装の意図 | Chrome のステータス トラッカー | Chromium のバグ
EME: HDCP ポリシー チェック
現在、HDCP は高解像度のストリーミングで一般的なポリシー要件となっています。 保護されたコンテンツ。HDCP ポリシーを適用したいウェブ デベロッパー ライセンス交換が完了するまで待つか、ストリーミングを開始する必要があります。 低解像度でレンダリングされています。HDCP ポリシーは Check API は、解決することを目的としています。
提案された API を使用すると、ウェブ デベロッパーは特定の HDCP ポリシーが
最適な解像度で再生を開始できるように強制適用できます。
実現できるようにすることですこれは、リクエストのステータスを照会するシンプルなメソッドで構成されており、
HDCP ポリシーに関連付けられた仮想キーを作成でき、
MediaKeySession
するか、実際のライセンスを取得します。MediaKeys
を
音声や動画の要素に付加できます
HDCP Policy Check API は、
mediaKeys.getStatusForPolicy()
は、minHdcpVersion
キーを持つオブジェクトで置き換えます
指定します。指定されたバージョンで HDCP を利用できる場合、
Promise は 'usable'
の MediaKeyStatus
で解決されます。それ以外の場合、Promise は
次のような MediaKeyStatus
の他のエラー値で解決する
'output-restricted'
または 'output-downscaled'
。鍵システムが
HDCP ポリシー チェックをまったくサポートしていない場合(Clear Key System など)、Promise は拒否されます。
簡単に説明すると、この 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 月に終了しました。
テストの意図 | Chrome のステータス トラッカー | Chromium のバグ
MSE PTS/DTS 準拠
バッファリングされた範囲と時間の値がプレゼンテーション タイムスタンプによってレポートされるようになりました メディアの Decode Time Stamp(DTS)間隔ではなく、PTS 間隔を使用します。 Source Extensions(MSE)。
MSE が新たに登場したとき、Chrome の実装は WebM と MP3 でテストされました。 PTS と DTS を区別しなかったメディア ストリーム形式。そして ISO BMFF(別名 MP4)が追加されるまでは正常に機能していました。このコンテナ 順不同の表示ストリームとデコード タイム ストリームが (H.264 などのコーデックなど)によって、DTS と PTS に差異が生じる場合があります。その結果 Chrome から報告されるバッファリングの範囲と継続時間の違い(通常はわずかにわずか) 値が想定よりも高くなる可能性があります。この新しい動作は Chrome 69 で段階的に展開されます MSE 実装を MSE 仕様に準拠させます。
<ph type="x-smartling-placeholder">この変更は MediaSource.duration
(そのため
HTMLMediaElement.duration
)、SourceBuffer.buffered
(結果として
HTMLMediaElement.buffered)
、SourceBuffer.remove(start, end)
。
バッファリングされている範囲や時間をレポートするメソッドがわからない場合は、
chrome://media-internals
の内部ページに移動して、
「ChunkDemuxer: PTS によるバッファリング」または「ChunkDemuxer: buffering by DTS」の
できます。
Android Go でのメディアビュー インテントの処理
Android Go は、エントリー レベル向けに設計された軽量バージョンの Android です。 対応しています。そのため、必ずしもメディア視聴に付随するものではありません。 です。たとえば、ダウンロードした動画をユーザーが開こうとすると、 そのインテントを処理するアプリがありません。
この問題を解決するために、Android Go 版 Chrome 69 ではメディア表示インテントがリッスンされるようになりました。 ダウンロードした音声、動画、画像を表示できます。言い換えれば、 表示されない場所が表示されます。
<ph type="x-smartling-placeholder">この Chrome 機能は、Android を搭載したすべての Android デバイスで有効です O 以降(1 GB 以下の RAM を搭載)
「停止」の削除MSE を使用したメディア要素のイベント
「停滞」ダウンロード中のメディア データがすでに存在する場合は、メディア要素で
処理が約 3 秒間失敗していますMedia Source Extensions を使用する場合
(MSE)の場合、ウェブアプリがダウンロードを管理し、メディア要素は認識しません。
確認できます。これにより、Chrome が「停止」状態になった不適切なイベント
ウェブサイトで新しいメディアデータチャンクが
過去 3 秒間にSourceBuffer.appendBuffer()
。
ウェブサイトは低い頻度で大量のデータチャンクを追加することを決定する場合があるため、これは バッファリングの健全性に関する有用なシグナルではありません。「停止」状態を解消イベント MSE を使用したメディア要素により、混乱が取り除かれ、Chrome がより一層便利になります 実装しますMSE を使用しないメディア要素は、 依然として「stalled」が実施できます