Android推流帧率的设定与实际情况的影响


如果您在Android平台上通过setVideoFPS设置帧率为30,可能会发现实际帧率只有20FPS,什么原因?

  • 硬件限制
    部分安卓机器的Camera接口无法实现30FPS及以上的数据采集频率,这个问题在很多机型的前置摄像头上尤为明显。

  • 编码不足 我们一般说编码不足是说编码器的计算量太大,机器性能无法胜任,对于Android而言尤为明显。其实Android的CPU核心数一直领先iPhone,然而CPU晶体管数量却没有什么优势,这就意味着Android手机的单个核心计算能力是远不及iPhone的,再加上Android系统的降频策略往往比较激进,所以每个核心的计算能力被软件又限制了一层。

  • 优化方案
    如果您得目标画质是360 * 640 级别,主要场景是是做美女主播等秀场模式,那么软件编码在绝大多数中高端Android手机上是可以实现30FPS的,如果更高的分辨率,就推荐启用硬件编码了。Android RTMP SDK的硬件编码中有详细介绍,当然,鱼与熊掌不可兼得,这会牺牲部分机型的兼容。

  • 20FPS足以
    是的,如果视频源来自摄像头捕捉的画面,20FPS大部分场景下就已经安全足够了,要知道24FPS以上,我们的眼睛就无法看到有任何不流畅的地方。更高的帧率则只适合于手机游戏直播这类用3D模型和实时计算模拟出的动画场景。

你可能感兴趣的:(Qiniu)