- Nhà phát triển web có thể kiểm soát chế độ Hình trong hình cho video.
- Bộ giải mã AV1 hiện được hỗ trợ trong Chrome dành cho máy tính x86-64.
- Bạn có thể đệm và phát trên nhiều bộ mã hoá và nhiều luồng byte trong MSE.
- Chrome hiện hỗ trợ Opus trong MP4 bằng MSE.
- Theo mặc định, bạn được phép phát nội dung được bảo vệ trên Android.
Xem video bằng tính năng Hình trong hình
Chế độ Hình trong hình (PiP) cho phép người dùng xem video trong một cửa sổ nổi (luôn đặt trên các cửa sổ khác) để họ có thể theo dõi nội dung đang xem trong khi tương tác với các trang web hoặc ứng dụng khác. Với Picture-in-Picture Web API mới, bạn có thể bắt đầu và kiểm soát chế độ Hình trong hình cho video trên trang web của mình.
Hãy đọc bài viết của chúng tôi để tìm hiểu tất cả thông tin về vấn đề này.
Bộ giải mã AV1
AV1 là một bộ mã hoá và giải mã thế hệ mới do Liên minh vì nội dung nghe nhìn mở phát triển. AV1 cải thiện hiệu quả nén thêm hơn 30% so với codec video tiên tiến hiện tại là VP9. Chrome 70 bổ sung một bộ giải mã AV1 vào Chrome Desktop x86-64 dựa trên quy cách luồng bit chính thức. Hiện tại, hoạt động hỗ trợ chỉ giới hạn ở hồ sơ 0 "Chính" và không bao gồm các chức năng mã hoá. Vùng chứa được hỗ trợ là MP4 (ISO-BMFF) (xem phần Từ video thô đến video sẵn sàng cho web để biết giải thích ngắn gọn về vùng chứa).
Cách dùng thử AV1:
- Truy cập vào trang YouTube TestTube.
- Chọn "Ưu tiên dùng AV1 cho chế độ SD" hoặc "Luôn ưu tiên AV1" để có được độ phân giải AV1 mong muốn. Xin lưu ý rằng ở độ phân giải cao hơn, AV1 có nhiều khả năng gặp phải vấn đề về hiệu suất phát trên một số thiết bị.
- Hãy thử phát các đoạn video trên YouTube trong Danh sách phát ra mắt phiên bản thử nghiệm AV1.
- Xác nhận bộ mã hoá và giải mã av01 trong phần "Thống kê chi tiết".
Hỗ trợ chuyển đổi codec và vùng chứa trong MSE
Chrome đang thêm tính năng hỗ trợ cho các quá trình chuyển đổi được cải thiện giữa các bộ mã hoá và giải mã hoặc giữa các luồng byte trong quá trình phát Tiện ích nguồn nội dung nghe nhìn bằng phương thức changeType() mới trên SourceBuffer. Thao tác này cho phép thay đổi loại byte nội dung nghe nhìn được thêm vào SourceBuffer sau đó.
Phiên bản hiện tại của MSE hỗ trợ chế độ phát thích ứng nội dung nghe nhìn; tuy nhiên, chế độ thích ứng yêu cầu mọi nội dung nghe nhìn được thêm vào một SourceBuffer phải tuân thủ loại MIME được cung cấp khi tạo SourceBuffer ban đầu thông qua MediaSource.addSourceBuffer(type). Các bộ mã hoá và giải mã thuộc loại đó và mọi phân đoạn khởi tạo đã phân tích cú pháp trước đó phải giữ nguyên trong suốt quá trình. Điều này có nghĩa là trang web phải thực hiện các bước rõ ràng để hoàn thành việc chuyển đổi codec hoặc luồng byte (bằng cách sử dụng nhiều phần tử đa phương tiện hoặc các bản nhạc SourceBuffer và chuyển đổi giữa các bản nhạc đó), làm tăng độ phức tạp của ứng dụng và độ trễ mà người dùng nhìn thấy. (Những quá trình chuyển đổi như vậy yêu cầu ứng dụng web thực hiện hành động đồng bộ trên luồng chính của trình kết xuất). Độ trễ chuyển đổi này làm giảm độ mượt mà của quá trình phát nội dung nghe nhìn trong các hiệu ứng chuyển đổi.
Với phương thức changeType() mới, SourceBuffer có thể lưu vào bộ nhớ đệm và hỗ trợ phát trên nhiều định dạng luồng byte và bộ mã hoá/giải mã. Phương thức mới này giữ lại nội dung nghe nhìn đã được lưu vào bộ nhớ đệm trước đó, ngoại trừ việc loại bỏ hoặc xoá khung được mã hoá MSE trong tương lai, đồng thời tận dụng logic nối và lưu vào bộ nhớ đệm trong thuật toán xử lý khung được mã hoá MSE hiện có.
Sau đây là cách sử dụng phương thức changeType():
const sourceBuffer = myMediaSource.addSourceBuffer('video/webm; codecs="opus, vp09.00.10.08"');
sourceBuffer.appendBuffer(someWebmOpusVP9Data);
// Later on...
if ('changeType' in sourceBuffer) {
// Change source buffer type and append new data.
sourceBuffer.changeType('video/mp4; codecs="mp4a.40.5, avc1.4d001e"');
sourceBuffer.appendBuffer(someMp4AacAvcData);
}
Như dự kiến, nếu trình duyệt không hỗ trợ loại được truyền, thì phương thức này sẽ gửi một ngoại lệ NotSupportedError.
Hãy xem mẫu để thử nghiệm với tính năng phát và đệm chéo bộ mã hoá và giải mã của một phần tử âm thanh.
Intent to Ship | Chromestatus Tracker | Chromium Bug
Opus trong MP4 cho MSE
Codec âm thanh mở và có tính linh hoạt cao Opus đã được hỗ trợ trong các phần tử <audio> và <video> kể từ Chrome 33. Sau đó, chúng tôi đã thêm tính năng hỗ trợ Opus trong ISO-BMFF (còn gọi là Opus trong MP4). Giờ đây, Opus trong MP4 đã có trong Chrome 70 cho Media Source Extensions (Tiện ích nguồn nội dung nghe nhìn).
Sau đây là cách bạn có thể phát hiện xem MSE có hỗ trợ Opus trong MP4 hay không:
if (MediaSource.isTypeSupported('audio/mp4; codecs="opus"')) {
// TODO: Fetch data and feed it to a media source.
}
Nếu bạn muốn xem ví dụ đầy đủ, hãy xem mẫu chính thức của chúng tôi.
Do thiếu các công cụ để kết hợp Opus trong MP4 với các giá trị cắt cuối và bỏ qua trước chính xác, nếu độ chính xác như vậy là quan trọng đối với bạn, thì bạn cần sử dụng SourceBuffer.appendWindow{Start,End} và SourceBuffer.timestampOffset trong Chrome để có được chế độ phát chính xác theo mẫu.
Intent to Ship | Chromestatus Tracker | Chromium Bug
Cho phép phát nội dung được bảo vệ theo mặc định trên Android
Trong Chrome 70 cho Android, giá trị mặc định của chế độ cài đặt trang web "nội dung được bảo vệ" sẽ thay đổi từ "Hỏi trước" thành "Cho phép", giảm bớt trở ngại liên quan đến việc phát nội dung nghe nhìn như vậy. Một phần lý do có thể thực hiện thay đổi này là do các bước bổ sung được thực hiện để xoá giấy phép nội dung nghe nhìn cùng với cookie và dữ liệu trang web, đảm bảo rằng các trang web không sử dụng giấy phép nội dung nghe nhìn để theo dõi những người dùng đã xoá dữ liệu duyệt web.