Thông tin cập nhật về âm thanh/video trong Chrome 70

François Beaufort
François Beaufort

Xem video bằng tính năng Hình trong hình

Tính năng 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 ở trên các cửa sổ khác) để họ có thể theo dõi nội dung mình đang xem trong khi tương tác với các trang web hoặc ứng dụng khác. Với API Web Hình trong hình mới, bạn có thể bắt đầu và điều khiển 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 mọi thông tin về công cụ này.

Bộ giải mã AV1

AV1 là bộ mã hoá và giải mã thế hệ mới do Alliance for Open Media phát triển. AV1 cải thiện hiệu quả nén hơn 30% so với bộ mã hoá và giải mã video tiên tiến hiện tại là VP9. Chrome 70 thêm bộ giải mã AV1 vào Chrome Desktop x86-64 dựa trên thông số kỹ thuật luồng bit chính thức. Tại thời điểm này, chức năng hỗ trợ chỉ được giới hạn ở hồ sơ 0 "Chính" và không bao gồm khả năng mã hoá. Vùng chứa được hỗ trợ là MP4 (ISO-BMFF) (xem bài viết Từ video thô đến sẵn sàng trên web để 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 "Prefer AV1 for SD" (Ưu tiên dùng AV1 cho SD) hoặc "Always Prefer AV11" (Luôn ưu tiên AV1) để có độ phân giải AV1 mong muốn. Lưu ý rằng ở độ phân giải cao hơn, AV1 có nhiều khả năng gặp vấn đề về hiệu suất phát trên một số thiết bị.
  • Thử phát các đoạn video trên YouTube trong Danh sách phát khởi chạy AV1 Beta.
  • Xác nhận bộ mã hoá và giải mã av01 trong phần "Thống kê chi tiết".
Phần Thống kê chi tiết dùng AV1 trên YouTube.
Hình 1. Phần Thống kê chi tiết dùng AV1 trên YouTube.

Hỗ trợ chuyển đổi bộ mã hoá và vùng chứa trong MSE và bộ mã hoá và giải mã

Chrome đang thêm tính năng hỗ trợ nhằm cải thiện quá trình chuyển đổi giữa các bộ mã hoá và 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. Phương thứ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 MSE hiện tại hỗ trợ tính năng phát nội dung đa phương tiện thích ứng; tuy nhiên, việc điều chỉnh yêu cầu mọi nội dung nghe nhìn được thêm vào SourceBuffer đều phải tuân theo loại MIME đã cung cấp khi tạo SourceBuffer thông qua MediaSource.addSourceBuffer(type) ban đầu. Các bộ mã hoá và giải mã từ loại đó và mọi phân đoạn khởi chạy được phân tích cú pháp trước đó phải giữ nguyên. Đ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 thiện bộ mã hoá và giải mã hoặc chuyển đổi luồng byte (bằng cách sử dụng nhiều phần tử nội dung đa phương tiện hoặc SourceBuffer theo dõi và chuyển đổi giữa các phần tử đó), làm tăng độ phức tạp của ứng dụng và độ trễ mà người dùng thấy được. (Các quá trình chuyển đổi như vậy đòi hỏi ứng dụng web phải 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 việc phát nội dung đa phương tiện giữa các quá trình chuyển đổi.

Với phương thức changeType() mới, SourceBuffer có thể lưu vào vùng đệm và hỗ trợ phát lại trên nhiều định dạng luồng byte và bộ mã hoá và giải mã. Phương thức mới này giữ lại nội dung nghe nhìn đã lưu vào bộ đệm trước đó, chuyển hoặc loại bỏ khung hình đã mã hoá MSE trong tương lai theo mô-đun, đồng thời tận dụng logic nối và lưu vào bộ đệm trong thuật toán xử lý khung được mã hoá MSE hiện có.

Dưới đâ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 loại đã truyền không được trình duyệt hỗ trợ, thì phương thức này sẽ gửi ra một ngoại lệ NotSupportedError.

Hãy xem mẫu để phát với bộ mã hoá và phát trực tiếp giữa nhiều byte và bộ mã hoá để phát, cũng như phát một phần tử âm thanh.

Ý định gửi | Trình theo dõi trạng thái Chrome | Lỗi Chromium

Opus ở định dạng MP4 cho MSE

Bộ mã hoá và giải mã âm thanh mở và rất linh hoạt Opus đã được hỗ trợ trong các phần tử <audio><video> kể từ Chrome 33. Sau đó, tính năng hỗ trợ Opus trong ISO-BMFF (còn gọi là Opus trong MP4) được thêm vào. Giờ đây, Opus ở định dạng MP4 đã có trong Chrome 70 dành cho Tiện ích nguồn nội dung nghe nhìn.

Dưới đây là cách bạn có thể phát hiện xem Opus ở định dạng MP4 có hỗ trợ MSE 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ông cụ để kết hợp Opus trong MP4 có các giá trị cắt bỏ đầu và cắt bỏ trước chính xác, nên nếu độ chính xác như vậy quan trọng đối với bạn, thì bạn sẽ cần sử dụng SourceBuffer.appendWindow{Start,End}SourceBuffer.timestampOffset trong Chrome để có thể phát chính xác mẫu.

Ý định gửi | Trình theo dõi trạng thái Chrome | Lỗi Chromium

Cho phép phát nội dung được bảo vệ theo mặc định trên Android

Trong Chrome 70 dành 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 "Được phép", giúp giảm sự phiền hà liên quan đến việc phát nội dung đa phương tiện như vậy. Điều này có thể xảy ra một phần là do chúng tôi áp dụng thêm các bước để xoá giấy phép nội dung nghe nhìn cùng với cookie và dữ liệu trang web, nhằm đảm bảo rằng các trang web sẽ không dùng giấy phép nội dung nghe nhìn để theo dõi người dùng đã xoá dữ liệu duyệt web.

Chế độ cài đặt nội dung được bảo vệ trong Android.
Hình 2. Chế độ cài đặt nội dung được bảo vệ trong Android.