限制 WebRTC 比特率:Firefox 的问题

Limiting WebRTC bitrate: issues with Firefox

我正在尝试限制从浏览器发送的 WebRTC 视频流的比特率。对于基于 Chromium 的浏览器,我只需在 addTransceiver 时间设置 sendEncodings 字段的 maxBitrate 字段。由于 Firefox 不支持 sendEncodings,我需要在发件人上调用 getParameters,调整其 encodings 字段,然后调用 setParameters.

这在联播情况下效果很好;然而,在非联播情况下(encodings 是一个包含单个条目的数组),Firefox 似乎忽略了 maxBitrate 字段,并且始终以其最大比特率 (2.5kbit/s) 发送。

在非联播的情况下,encodings[0].maxBitrate 是否应该在 Firefox 中工作?

经过一些调查,如果设置了 rid 字段,则 Firefox 不遵守 non-simulcast 情况下的带宽限制。所以这在 Chromium 和 Firefox 中都有效:

let p = sender.getParameters();
p.encodings = [{maxBitrate: 700000}];
await sender.setParameters(p);

虽然这只适用于 Chromium:

let p = sender.getParameters();
p.encodings = [{rid: 'h', maxBitrate: 700000}];
await sender.setParameters(p);