首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

视频处理过程中的常见帧率问题

在了解视频处理过程中的常见帧率问题前,我们先来看下分辨率在音视频数据处理路径。本文来自ZEGO即构科技音视频开发工程师关于分辨率与帧率的分享。

细化到每个处理阶段来看,会涉及采集、渲染显示、前后处理、编解码、网络传输等环节,我们可以将各阶段输出的帧率进行区分,以方便描述。如下图:

理想情况下,我们希望上述各个环节输出的视频帧率相同,且帧间隔均匀稳定,以保证最终渲染出来的视频流畅度与原始采集的一致,但实际应用中却难以尽如人愿。常见的可能问题,比如:

1、采集阶段

因为设备性能问题或设备故障,导致摄像头的采集速度达不到预期,采集帧率会受损;

如果摄像头采集帧率过高,每一帧图像的曝光时间不足,可能导致图像偏暗。根据环境亮度变化,可能需要动态地调整采集帧率、改善曝光,以保证采集画面的明亮度。

2、前、后处理阶段

裁剪缩放、美颜滤镜等操作需要对每一帧图像做处理,处理逻辑越复杂,则运算量越大、耗时越长,可能导致单位时间内无法完成预期帧数的处理。

3、编码阶段

因为设备性能问题,导致编码模块的工作效率达不到预期,编码帧率会受损;

若上行带宽受限,为避免出现发送拥塞,可能需要动态调整编码帧率,以控制每秒发送的数据量,适应当前带宽。

4、网络传输阶段

传输链路不稳定,视频帧数据的流转出现延迟、拥塞、丢包,导致数据丢失或者传输不均匀(接收端长时间收不到数据,或者短时间内收到过多数据)。

5、解码、渲染阶段

上述的帧率变化,有一些是客观因素引入的被动损失,有一些是为了应对客观因素而执行的主动调整。而所提到的客观因素,主要受复杂的网络环境和各异的终端设备影响,这恰恰是 RTC 应用场景下的常态。

在这里,我们无法穷举所有可能导致帧率异常的原因,大家只要知道,帧率从定义上是基于“时间” 维度来计量的 “数量”,无论是被动的问题,还是主动的调整,任何会影响 “处理耗时”、“帧数量” 、“帧间隔” 的操作,最终都可能影响到帧率。而各阶段的帧率影响一环扣一环,最终体现到渲染显示上,就会出现 ”卡顿 “的问题。

在开发音视频应用时,一般会通过渲染帧率来量化最终的用户体验(针对视频流畅度),如果遇到视频的 ”卡顿“ 问题,就需要沿着音视频的处理路径,排查是哪一个阶段出现了帧率异常。这就要求我们,在整个音视频数据处理链路、各个关键节点上做好帧率统计,这是个不小的工程。

那以上问题如何解决较好呢?建议可以选择第三方服务商的SDK来加快音视频应用的开发进度,比如ZEGO即构科技音视频SDK。

当使用ZEGO音视频SDK开发音视频应用时,SDK 会通过质量回调接口,定期告诉你统计周期内的、不同处理阶段的输出帧率,方便你进行视频流畅度的观测以及用户体验的评估,并辅助进行问题定位。当然,除了帧率外,质量回调接口也提供其他重要的指标数据,你完全可以基于此搭建自己的质量监控体系。更多的细节可以免费集成SDK进行体验。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230519A0AOCP00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券