- Chrome hỗ trợ giải mã video AV1.
- Truy vấn các giao thức mã hoá được hỗ trợ thông qua Hiện đã có EME.
- Các nhà phát triển web có thể thử nghiệm bằng cách truy vấn xem có thể thực thi một chính sách HDCP nhất định hay không.
- Tiện ích nguồn nội dung nghe nhìn hiện sử dụng PTS cho các phạm vi và giá trị thời lượng được lưu vào vùng đệm.
- Người dùng Android Go có thể mở âm thanh, video và hình ảnh đã tải xuống trong Chrome.
- Sự kiện bị trì hoãn cho các thành phần nội dung đa phương tiện sử dụng MSE sẽ bị xoá.
Bộ giải mã video AV1
Trình theo dõi Chromestatus | Lỗi Chromium
EME: Truy vấn hỗ trợ lược đồ mã hoá
Một số nền tảng hoặc hệ thống khoá chỉ hỗ trợ chế độ CENC, trong khi một số nền tảng khác chỉ hỗ trợ Chế độ CBCS. Một số khác có thể hỗ trợ cả hai. Hai giao thức mã hoá này không tương thích, vì vậy, các nhà phát triển web phải có khả năng đưa ra các lựa chọn thông minh về nội dung sẽ phân phát.
Để tránh phải xác định nền tảng mà họ đang sử dụng để kiểm tra nhãn "đã biết"
hỗ trợ lược đồ mã hoá, khoá encryptionScheme
mới sẽ được thêm vào
MediaKeySystemMediaCapability
từ điển để cho phép các trang web chỉ định
có thể dùng lược đồ mã hoá nào trong Tiện ích phương tiện đã mã hoá (EME).
Khoá encryptionScheme
mới có thể là một trong hai giá trị:
'cenc'
Mã hoá mẫu phụ NAL video và mẫu đầy đủ của chế độ AES-CTR.'cbcs'
Mã hoá một phần mẫu NAL video ở chế độ AES-CBC.
Nếu bạn không chỉ định chính sách này, hệ thống sẽ chỉ ra rằng mọi giao thức mã hoá đều được chấp nhận. Ghi chú
rằng Xoá khoá luôn hỗ trợ lược đồ 'cenc'
.
Ví dụ bên dưới cho thấy cách truy vấn hai cấu hình với các cấu hình khác nhau các giao thức mã hoá. Trong trường hợp này, chỉ một tài khoản được chọn.
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']
},
]);
Trong ví dụ bên dưới, chỉ có một cấu hình có hai phương thức mã hoá khác nhau các giao thức được truy vấn. Trong trường hợp đó, Chrome sẽ loại bỏ mọi đối tượng chức năng nó không thể hỗ trợ, vì vậy cấu hình được tích luỹ có thể chứa một mã hoá hoặc cả hai.
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']
}]);
Ý định triển khai | Trình theo dõi trạng thái Chrome | Lỗi Chromium
EME: Kiểm tra chính sách HDCP
Ngày nay, HDCP là một yêu cầu phổ biến trong chính sách để truyền trực tuyến độ phân giải cao nội dung được bảo vệ. Những nhà phát triển web muốn thực thi chính sách HDCP phải đợi quá trình trao đổi giấy phép hoàn tất hoặc bắt đầu phát trực tuyến nội dung có độ phân giải thấp. Chúng tôi rất tiếc khi biết rằng Chính sách về DHU Mục đích của Check API là giải quyết.
API đề xuất này cho phép các nhà phát triển web truy vấn xem có một chính sách HDCP nhất định hay không
có thể được thực thi để có thể bắt đầu quá trình phát ở độ phân giải tối ưu cho
trải nghiệm người dùng tốt nhất. Nó bao gồm một phương thức đơn giản để truy vấn trạng thái của
một khoá giả định được liên kết với chính sách HDCP mà không cần phải tạo
MediaKeySession
hoặc tìm nạp một giấy phép thực. Không bắt buộc phải có MediaKeys
được đính kèm vào bất kỳ phần tử âm thanh hoặc video nào.
API Kiểm tra chính sách HDCP hoạt động đơn giản bằng cách gọi
mediaKeys.getStatusForPolicy()
với một đối tượng có khoá minHdcpVersion
và một giá trị hợp lệ. Nếu có HDCP ở phiên bản đã chỉ định, thì
lời hứa được phân giải với MediaKeyStatus
là 'usable'
. Nếu không thì lời hứa
giải quyết với các giá trị lỗi khác của MediaKeyStatus
, chẳng hạn như
'output-restricted'
hoặc 'output-downscaled'
. Nếu hệ thống khoá không
hỗ trợ Kiểm tra chính sách HDCP (ví dụ: Xoá Hệ thống khoá), thì lời hứa sẽ bị từ chối.
Tóm lại, sau đây là cách hoạt động của API này. Hãy xem mẫu chính thức để dùng thử tất cả các phiên bản của 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...
});
Có cho bản dùng thử theo nguyên gốc
Để nhận phản hồi của nhà phát triển web, trước đây chúng tôi đã thêm Chính sách dành cho HDCP Kiểm tra tính năng API trong Chrome 69 dành cho máy tính (ChromeOS, Linux, Mac và Windows).
Thử nghiệm đã kết thúc thành công vào tháng 11 năm 2018.
Ý định thử nghiệm | Trình theo dõi trạng thái Chrome | Lỗi Chromium
Tuân thủ MSE PTS/DTS
Các phạm vi và giá trị thời lượng được lưu vào vùng đệm hiện được báo cáo bằng Dấu thời gian trình bày (PTS) thay vì bằng khoảng thời gian Giải mã dấu thời gian (DTS) trong mục Nội dung đa phương tiện Tiện ích nguồn (MSE).
Khi MSE còn mới, việc triển khai của Chrome đã được thử nghiệm so với WebM và MP3, một số trong đó không có sự khác biệt giữa PTS và DTS. và nó hoạt động tốt cho đến khi ISO BMFF (còn gọi là MP4) được thêm vào. Vùng chứa này thường chứa bản trình bày không đúng thứ tự so với luồng thời gian giải mã (cho như H.264 chẳng hạn) khiến DTS và PTS khác nhau. Điều đó khiến Chrome sẽ báo cáo (thường chỉ là một chút) phạm vi và thời lượng vùng đệm khác nhau hơn dự kiến. Hành vi mới này sẽ được triển khai từng bước trong Chrome 69 và triển khai MSE theo quy cách MSE.
![PTS/DTS](https://developer.chrome.com/static/blog/media-updates-in-chrome-69/image/ptsdts-a029a068bdd9b.png?authuser=9&hl=vi)
Thay đổi này ảnh hưởng đến MediaSource.duration
(và do đó
HTMLMediaElement.duration
), SourceBuffer.buffered
(và do đó
HTMLMediaElement.buffered)
và SourceBuffer.remove(start, end)
.
Nếu bạn không rõ phương thức nào được dùng để báo cáo các phạm vi và khoảng thời gian lưu vào vùng đệm
các giá trị khác, bạn có thể truy cập vào trang chrome://media-internals
nội bộ và tìm kiếm
"ChunkDemuxer: tạo bộ đệm bằng PTS" hoặc "ChunkDemuxer: buffer by DTS" trong
nhật ký.
Ý định triển khai | Lỗi Chromium
Xử lý ý định đối với lượt xem nội dung nghe nhìn trên Android Go
Android Go là một phiên bản Android gọn nhẹ được thiết kế cho người dùng sơ cấp điện thoại thông minh. Để đạt được mục tiêu đó, video không nhất thiết xuất hiện cùng với một số lượt xem nội dung nghe nhìn vì vậy, nếu người dùng cố gắng mở một video đã tải xuống, họ sẽ không có ứng dụng nào để xử lý ý định đó.
Để khắc phục vấn đề này, Chrome 69 trên Android Go hiện lắng nghe ý định xem nội dung nghe nhìn để người dùng có thể xem âm thanh, video và hình ảnh đã tải xuống. Nói cách khác, cần vị trí của các ứng dụng xem bị thiếu.
![ALT_TEXT_HERE](https://developer.chrome.com/static/blog/media-updates-in-chrome-69/image/alttexthere-0d5b0859fc0e3.png?authuser=9&hl=vi)
Lưu ý rằng tính năng này của Chrome được bật trên tất cả thiết bị Android chạy Android Trở lên và có RAM 1 GB trở xuống.
Xoá nhãn "bị trì hoãn" sự kiện cho các phần tử truyền thông bằng MSE
Một "bị đình trệ" được thực hiện trên phần tử phương tiện nếu việc tải dữ liệu phương tiện xuống
không thể tiếp tục trong khoảng 3 giây. Khi sử dụng Tiện ích nguồn phương tiện
(MSE), ứng dụng web quản lý quá trình tải xuống nhưng phần tử nội dung đa phương tiện không nhận biết
tiến trình của nó. Điều này khiến Chrome tăng trạng thái "bị trì hoãn" sự kiện tại thời điểm không phù hợp
bất cứ khi nào trang web không thêm đoạn dữ liệu đa phương tiện mới với
SourceBuffer.appendBuffer()
trong 3 giây qua.
Vì các trang web có thể quyết định nối nhiều phần dữ liệu với tần suất thấp, không phải là tín hiệu hữu ích về tình trạng lưu vào bộ đệm. Đang xoá "bị trì hoãn" sự kiện cho các yếu tố phương tiện sử dụng MSE giúp loại bỏ nhầm lẫn và hiển thị Chrome phù hợp hơn bằng thông số kỹ thuật MSE. Xin lưu ý rằng các phần tử nội dung đa phương tiện không sử dụng MSE sẽ tiếp tục tăng từ "tạm ngưng" sự kiện như hiện nay.
Ý định ngừng sử dụng và xoá | Trình theo dõi trạng thái Chrome | Lỗi Chromium