VideoEncoder: configure() method

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

Note: This feature is available in Dedicated Web Workers.

Phương thức configure() của giao diện VideoEncoder thay đổi state của bộ mã hóa thành "configured" và chuẩn bị bất đồng bộ bộ mã hóa để chấp nhận các VideoEncoder để mã hóa với các tham số đã chỉ định. Nếu bộ mã hóa không hỗ trợ các tham số đã chỉ định hoặc không thể khởi tạo vì lý do khác, một lỗi sẽ được báo cáo thông qua callback lỗi được cung cấp cho hàm khởi tạo VideoEncoder.

Nếu VideoEncoder đã được cấu hình trước đó, cấu hình mới sẽ không được áp dụng cho đến khi tất cả các tác vụ trước đó đã hoàn thành.

Cú pháp

js
configure(config)

Tham số

config

Một đối tượng từ điển chứa các thành viên sau:

codec

Một chuỗi chứa chuỗi codec hợp lệ. Xem tham số "codecs" để biết chi tiết về cách xây dựng chuỗi codec.

width Optional

Một số nguyên biểu thị chiều rộng của mỗi EncodedVideoChunk đầu ra tính bằng pixel, trước khi có bất kỳ điều chỉnh tỉ lệ nào.

height Optional

Một số nguyên biểu thị chiều cao của mỗi EncodedVideoChunk đầu ra tính bằng pixel, trước khi có bất kỳ điều chỉnh tỉ lệ nào.

displayWidth Optional

Một số nguyên biểu thị chiều rộng hiển thị dự kiến của mỗi EncodedVideoChunk đầu ra tính bằng pixel khi hiển thị.

displayHeight Optional

Một số nguyên biểu thị chiều dọc của mỗi EncodedVideoChunk đầu ra tính bằng pixel khi hiển thị.

hardwareAcceleration

Một gợi ý cấu hình phương pháp tăng tốc phần cứng của codec này. Một trong các giá trị:

  • "no-preference"
  • "prefer-hardware"
  • "prefer-software"
bitrate

Một số nguyên chứa tốc độ bit trung bình của video được mã hóa tính theo bit mỗi giây.

framerate

Một số nguyên chứa tốc độ khung hình dự kiến tính theo khung hình mỗi giây.

alpha

Một chuỗi cho biết liệu thành phần alpha của đầu vào VideoFrame có nên được giữ lại hay loại bỏ trước khi mã hóa. Một trong các giá trị:

  • "discard" (mặc định)
  • "keep"
scalabilityMode

Một chuỗi chứa định danh chế độ khả năng mở rộng mã hóa như được định nghĩa trong WebRTC.

bitrateMode Optional

Một chuỗi chứa chế độ tốc độ bit. Một trong các giá trị:

"constant"

Bộ mã hóa sẽ nhắm đến tốc độ bit không đổi.

"variable" (mặc định)

Bộ mã hóa sẽ nhắm đến tốc độ bit thay đổi, cho phép sử dụng nhiều không gian hơn cho các tín hiệu phức tạp và ít không gian hơn cho các tín hiệu ít phức tạp hơn.

"quantizer"

Bộ mã hóa sẽ bỏ qua tùy chọn bitrate và thay vào đó sẽ sử dụng các giá trị quantizer dành riêng cho codec được chỉ định cho từng khung hình trong tham số options của VideoEncoder.encode().

latencyMode Optional

Một chuỗi chứa giá trị cấu hình hành vi độ trễ của codec này. Một trong các giá trị:

"quality" (mặc định)

Bộ mã hóa nên tối ưu hóa chất lượng mã hóa.

"realtime"

Bộ mã hóa nên tối ưu hóa độ trễ thấp và thậm chí có thể bỏ khung hình để đảm bảo framerate.

Giá trị trả về

Không có (undefined).

Ngoại lệ

TypeError

Được ném nếu config được cung cấp không hợp lệ.

InvalidStateError DOMException

Được ném nếu state"closed".

NotSupportedError DOMException

Được ném nếu config được cung cấp hợp lệ nhưng tác nhân người dùng không thể cung cấp codec có thể giải mã profile này.

Ví dụ

Ví dụ sau tạo một VideoEncoder mới và cấu hình nó với một số tùy chọn có sẵn.

js
const init = {
  output: handleChunk,
  error(e) {
    console.log(e.message);
  },
};

let config = {
  codec: "vp8",
  width: 640,
  height: 480,
  bitrate: 2_000_000, // 2 Mbps
  framerate: 30,
};

let encoder = new VideoEncoder(init);
encoder.configure(config);

Thông số kỹ thuật

Specification
WebCodecs
# dom-videoencoder-configure

Tương thích trình duyệt

Xem thêm