VideoEncoder: configure() 方法

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

安全上下文: 此功能僅在安全上下文(HTTPS)中可用,且支援此功能的瀏覽器數量有限。

注意:此功能在 專用 Web Workers 中可用。

VideoEncoder 介面的 configure() 方法會將編碼器的 state 更改為 "configured" ,並非同步準備編碼器,以便使用指定的引數接受 VideoEncoder 進行編碼。如果編碼器不支援指定的引數或由於其他原因無法初始化,則會透過提供給 VideoEncoder 建構函式的錯誤回撥來報告錯誤。

如果 VideoEncoder 之前已被配置,則新的配置將在所有先前任務完成後才會應用。

語法

js
configure(config)

引數

config

一個包含以下成員的字典物件

codec

包含 有效編解碼器字串 的字串。有關編解碼器字串構造的詳細資訊,請參閱 "codecs" 引數

width 可選

一個整數,表示每個輸出 EncodedVideoChunk 的寬度(以畫素為單位),在進行任何比例調整之前。

height 可選

一個整數,表示每個輸出 EncodedVideoChunk 的高度(以畫素為單位),在進行任何比例調整之前。

displayWidth 可選

一個整數,表示顯示時每個輸出 EncodedVideoChunk 的預期顯示寬度(以畫素為單位)。

displayHeight 可選

一個整數,表示顯示時每個輸出 EncodedVideoChunk 的垂直尺寸(以畫素為單位)。

hardwareAcceleration

一個提示,用於配置此編解碼器的硬體加速方法。可選值包括:

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

一個整數,包含編碼影片的平均位元率(單位:位元/秒)。

framerate

一個整數,包含預期的幀率(單位:幀/秒)。

alpha

一個字串,指示在編碼之前是否應保留或丟棄 VideoFrame 輸入的 alpha 分量。可選值包括:

  • "discard"(預設)
  • "keep"
scalabilityMode

一個字串,包含 WebRTC 中定義的編碼可伸縮性模式識別符號 WebRTC

bitrateMode 可選

一個字串,包含位元率模式。可選值包括:

"constant"

編碼器將目標設定為恆定位元率。

"variable"(預設)

編碼器將目標設定為可變位元率,允許為複雜訊號使用更多空間,為不那麼複雜的訊號使用更少空間。

"quantizer"

編碼器將忽略 bitrate 選項,而是使用在 VideoEncoder.encode()options 引數中為每幀指定的編解碼器特定量化器值。

latencyMode 可選

一個字串,包含一個配置此編解碼器延遲行為的值。可選值包括:

"quality"(預設)

編碼器應最佳化編碼質量。

"realtime"

編碼器應最佳化低延遲,甚至可能丟棄幀以遵守 framerate

返回值

無(undefined)。

異常

TypeError

如果提供的 config 無效,則丟擲此異常。

InvalidStateError DOMException

如果 state"closed",則會丟擲此異常。

NotSupportedError DOMException

如果提供的 config 有效,但使用者代理無法提供可解碼此配置檔案的編解碼器,則丟擲此異常。

示例

以下示例建立一個新的 VideoEncoder 並使用一些可用選項對其進行配置。

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);

規範

規範
WebCodecs
# dom-videoencoder-configure

瀏覽器相容性