libvpx中的rc_dropframe_thresh

 webrtc中的代码:

cfg_.rc_dropframe_thresh =  (!disable_frame_dropping_ && encoder_settings_.GetFrameDropEnabled()) ? 30 : 0;

https://chromium.googlesource.com/webm/libvpx/+/master/vpx/vpx_encoder.h#399

 

参数定义

  • 参数名称rc_dropframe_thresh
  • 数据类型unsigned int
  • 所属结构体vpx_codec_enc_cfg

功能描述

rc_dropframe_thresh 是一个用于控制时间重采样(temporal resampling)的参数。如果编码器支持,该参数允许编码器通过丢弃帧(drop frames)来达到目标数据率(target data rate)。这种策略可能会导致编码视频中出现时间上的不连续性,播放时可能会出现卡顿。这种折衷在某些应用中是可以接受的,但在许多应用中是不被允许的。在这些情况下,可以禁用该功能。

参数具体作用

  • 丢帧机制:当目标数据缓冲区(target data buffer)的满度低于该阈值所描述的百分比时,编码器将丢弃帧。
  • 禁用丢帧:将该阈值设置为 0 可以禁用丢帧功能。

使用场景

  • 启用丢帧:在需要严格控制数据率并且可以接受播放时卡顿的情况下,可以启用丢帧机制,通过设置适当的阈值来允许丢帧。
  • 禁用丢帧:在要求视频播放流畅、不出现卡顿的应用场景中,可以将阈值设置为 0,以禁用丢帧功能。

注意事项

  • 支持的编码器:所有 vpx VPx 编码器(如 VP8、VP9)都支持该功能。
  • 其他编码器:对于其他编码器,需查阅相关文档以确定是否支持该功能。

通过合理配置 rc_dropframe_thresh,可以在视频质量和数据率控制之间找到平衡,以适应不同的应用需求。

posted @ 2024-08-04 10:12  AndyHu518  阅读(12)  评论(0编辑  收藏  举报