您的位置:首页 > 移动开发 > Android开发

android平台Camera采集数据ffmpeg进行编码探究

2016-09-18 14:02 549 查看
  在PC机上,Camera采集数据利用ffmpeg进行编码往往没有任何问题,但是到了android平台或多或少会出现一系列问题,下面就针对这些问题总结一下。

  1、在PC和android平台最大的差别就是架构不一样,这就是导致出现一系列问题的“罪魁祸首”的原因:

   android端采用的精简指令导致编码运算时间远远长于PC机。

  2、不管是本地编码存储还是编码之后发送到后台直播,这些都是要考虑的,比如利用ffmpeg进行X264编码,一般人的做法就是Android平台Camera采集数据,通过预览

  获取摄像头原始数据,然后利用ffmpeg进行编码(编码器是X264),编码成h264格式数据,然后进行本地存储或是发送给服务器。但是这样做有一个很严重问题存在:

  采集的数据进行编码的帧率达不到要求,而且不同手机的效果差别非常大(好一点的手机可能没有那么明显,差一点的手机非常明显)。这是什么原因造成的呢?

 究其原因是:ffmpeg仅仅是软编码,仅仅利用cpu,没有用到硬编码处理,这样就导致系统压力非常大,如果预览数据用于其他用途的时候,这种现象更加明显。

 所以这样情况下,我们应该利用硬编码来处理,ffmpeg更加适合解码,很多直播APP就是利用ffmpeg来做的,直播软件后台都是PC端来处理,然后发送压缩流,到手机端通过ffmpeg进行解码器对压缩流进行解码,然后显示出来。

下一章 来具体看代码中的ffmpeg编码和系统的硬编码两种不同的方式。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐