如何暂时取消webRTC中视频轨道的发送?

问题描述 投票:0回答:1

我已经创建了 webRtc 连接(javascript),并且我想暂时取消视频轨道的发送(必须保留音频轨道)以最大程度地减少网络流量。 我应该执行哪些操作才能做到这一点: (1) 做

videoTrack.enabled = false;
(videoTrack是MediaStreamTrack) 然后执行:
videoTrack.enabled = true;
恢复它 或(2)调用 videoTrack.stop() ? (1) 和 (2) 之间有什么区别 - 哪种情况会最大限度地减少网络流量? 案例(2)我该如何恢复视频发送?

webrtc
1个回答
0
投票

将 .enabled 设置为 false 将发送黑帧而不是实际视频,从而大大减少带宽使用。试试 https://webrtc.github.io/samples/src/content/peerconnection/bandwidth/ 通过粘贴

localStream.getVideoTracks()[0].enabled = false
显示大约 12kbps 加上标头开销。

它仍然会为每个帧发送数据包,这在某些情况下可能是不可取的。使用 RTCRtpSender 的

replaceTrack(null)
或停止轨道会进一步减少这种情况。

停止跟踪还有一个额外的好处,它会关闭摄像头灯,这是用户期望的隐私保护,但在重新获取视频并再次调用

getUserMedia
后,您需要再次调用replaceTrack。

© www.soinside.com 2019 - 2024. All rights reserved.