RTCRtpReceiver:transform 属性
transform
属性是 RTCRtpReceiver
对象的一个属性,用于将运行在 worker 线程中的转换流 (TransformStream
) 插入接收器管道。这允许在编码的视频和音频帧从打包器到达时(在播放/渲染之前)对其应用流转换。
要添加的转换使用 RTCRtpScriptTransform
及其关联的 Worker
定义。如果在对等连接的 track
事件 处理程序中设置了转换,则转换流将接收轨道上的第一个完整的传入帧。
值
一个 RTCRtpScriptTransform
,或者如果接收器没有关联的转换流,则为 null
。
示例
请注意,这是指南主题 使用 WebRTC 编码转换 中较大型示例的一部分。
为传入帧添加转换
此示例演示如何添加 WebRTC 编码转换以修改传入流。代码假设存在一个名为 peerConnection
的 RTCPeerConnection
,它已连接到远程对等方。
要将转换流插入传入帧的管道中,我们需要构造一个 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 编码转换 # dom-rtcrtpsender-transform |
浏览器兼容性
BCD 表仅在启用了 JavaScript 的浏览器中加载。