1

很明显,WebRTC 使用自己的速率控制 (GCC) 来控制编码器的比特率,但我也找不到任何有关更改分辨率的信息。

WebRTC(或其他实时视频系统,如 Hangout、Skype)在实时摄取期间是否仅更改比特率而不更改分辨率?
如果它不改变分辨率,那是为什么呢?

根据下图的码率、画质、分辨率曲线, 在此处输入图像描述 仅使用单一的固定分辨率来覆盖码率变化似乎效率不高。
这是因为如果单个分辨率的比特率真的很低,质量就会急剧下降。(由于左侧曲线的陡峭斜率)
因此,我认为改变分辨率和比特率是必要且合理的,但我不确定WebRTC、Hangouts、Skype或其他实时移动视频是否支持系统。

图片参考:https ://teradek.com/blogs/articles/what-is-the-optimal-bitrate-for-your-resolution

4

1 回答 1

0

是的,面对带宽限制,WebRTC 也会改变分辨率。

甚至为此计划了一个控制面,称为degradePreference

const p = sender.getParameters();
console.log(p.degradationPreference); // "balanced" by default 
p.degradationPreference = pick? "maintain-framerate" : "maintain-resolution";
await sender.setParameters(p);

但该控制尚未由任何人实施。目前,实现通常会做出自己的判断调用(这是默认值"balanced")。

于 2019-03-22T18:17:47.797 回答