RTCRtpReceiver:transform 屬性

基準線 2025
新推出

自 2025 年 10 月起,此功能已在最新的裝置和瀏覽器版本中可用。此功能可能不適用於較舊的裝置或瀏覽器。

RTCRtpReceiver 物件的 transform 屬性用於將一個在 worker 執行緒中執行的轉換流(TransformStream)插入到接收者管道中。這允許在編碼的影片和音訊幀從打包器到達時(在播放/渲染之前)對其應用流轉換。

要新增的轉換使用 RTCRtpScriptTransform 及其關聯的 Worker 來定義。如果在對等連線的 track 事件處理程式中設定了轉換,則轉換流將接收該軌道的第一個完整傳入幀。

一個 RTCRtpScriptTransform,或者如果接收者沒有關聯的轉換流,則為 null

示例

請注意,這是 使用 WebRTC 編碼轉換 指南主題中更大示例的一部分。

為傳入幀新增轉換

此示例演示瞭如何新增 WebRTC 編碼轉換來修改傳入流。程式碼假定存在一個名為 peerConnectionRTCPeerConnection 物件,並且該物件已連線到遠端對等端。

為了將轉換流插入到傳入幀的管道中,我們需要構造一個 RTCRtpScriptTransform 並將其分配給接收者的 transform 屬性。我們可以像下面這樣在 track 事件處理程式中完成此操作。當遠端端傳送軌道時,此事件會在對等連線上觸發。event.receiver 屬性是一個 RTCRtpReceiver 物件。

js
const worker = new Worker("worker.js");
peerConnection.ontrack = (event) => {
  event.receiver.transform = new RTCRtpScriptTransform(worker, {
    someOption: "receiverTransform",
  });
};

由於轉換是在 RTCRtpReceiver 建立後立即構造的,因此它將接收第一個傳入幀。在 RTCRtpScriptTransform 建構函式中作為第二個引數傳遞的物件會被髮送到 worker 執行緒,worker 程式碼可以使用它為傳入幀提供與傳出幀不同的轉換。

規範

規範
WebRTC Encoded Transform
# dom-rtcrtpsender-transform

瀏覽器相容性

另見