RTCRtpReceiver:transform 属性
RTCRtpReceiver 对象的 transform 属性用于将一个在 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 Encoded Transform # dom-rtcrtpsender-transform |
浏览器兼容性
加载中…