WebRTC视频编码控制

WebRTC在编码视频的时候有四个选项,今天我们就简单聊一下这四个选项的基本用途。后边我们再介绍他们分别是怎么起作用的。好了,先回归今天的主题。首先,WebRTC定义了一个枚举类DegradationPreference,之所以没有直接使用enum枚举类型,是处于类型安全的考虑,枚举类的值是不能和整数型进行转换的,这样就可以保证数据不被意外修改。

enum class DegradationPreference {
  // Don't take any actions based on over-utilization signals. Not part of the
  // web API.
  DISABLED,
  // On over-use, request lower resolution, possibly causing down-scaling.
  MAINTAIN_FRAMERATE,
  // On over-use, request lower frame rate, possibly causing frame drops.
  MAINTAIN_RESOLUTION,
  // Try to strike a "pleasing" balance between frame rate or resolution.
  BALANCED,
};

首先看DISABLED,表示WebRTC不进行任何控制,只通过相应的信令起作用,一般信令频繁的话会CPU利用率过高,所以当不启用CPU过载监测的时候,采用这种模式。

其次看MAINTAIN_FRAMERATE,它表示WebRTC在进行视频编码的时候,保证输出帧率不变,当带宽不足的时候,必然会造成分辨率下降。

接着看MAINTAIN_RESOLUTION,它其实和MAINTAIN_FRAMERATE相对应,视频编码的时候是保证分辨率稳定输出,但这样做的风险就是当代码不足时,可能导致帧率下降。

最后看BALANCED,它是WebRTC的默认模式,在帧率和分辨率寻找最佳的动态平衡。

好了,今晚上先到这儿吧,有时间再继续深入介绍。也欢迎感兴趣的同学留言。

猜你喜欢

转载自blog.csdn.net/liuzehn/article/details/105301883
今日推荐