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编码和系统的硬编码两种不同的方式。
1、在PC和android平台最大的差别就是架构不一样,这就是导致出现一系列问题的“罪魁祸首”的原因:
android端采用的精简指令导致编码运算时间远远长于PC机。
2、不管是本地编码存储还是编码之后发送到后台直播,这些都是要考虑的,比如利用ffmpeg进行X264编码,一般人的做法就是Android平台Camera采集数据,通过预览
获取摄像头原始数据,然后利用ffmpeg进行编码(编码器是X264),编码成h264格式数据,然后进行本地存储或是发送给服务器。但是这样做有一个很严重问题存在:
采集的数据进行编码的帧率达不到要求,而且不同手机的效果差别非常大(好一点的手机可能没有那么明显,差一点的手机非常明显)。这是什么原因造成的呢?
究其原因是:ffmpeg仅仅是软编码,仅仅利用cpu,没有用到硬编码处理,这样就导致系统压力非常大,如果预览数据用于其他用途的时候,这种现象更加明显。
所以这样情况下,我们应该利用硬编码来处理,ffmpeg更加适合解码,很多直播APP就是利用ffmpeg来做的,直播软件后台都是PC端来处理,然后发送压缩流,到手机端通过ffmpeg进行解码器对压缩流进行解码,然后显示出来。
下一章 来具体看代码中的ffmpeg编码和系统的硬编码两种不同的方式。
相关文章推荐
- android平台Camera采集数据ffmpeg进行编码探究
- Android中直播视频技术探究之---采集摄像头Camera视频源数据进行推流(采用金山云SDK)
- Android中直播视频技术探究之---采集摄像头Camera视频源数据进行推流(采用金山云SDK)
- Android中直播视频技术探究之---采集摄像头Camera视频源数据进行推流(采用金山云SDK)
- Android中直播视频技术探究之---摄像头Camera视频源数据采集解析
- Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
- Android中直播视频技术探究之---摄像头Camera视频源数据采集解析
- Android中直播视频技术探究之---摄像头Camera视频源数据采集解析
- android平台,利用ffmpeg对android摄像头采集编码
- [转]Android中直播视频技术探究之---摄像头Camera视频源数据采集解析
- VS2008+OPENCV+FFMPEG实现从摄像头采集数据并进行H264编码
- windows平台下使用ffmpeg对视频进行H264编码总结
- 使用 ffmpeg 进行网络推流:拉流->解封装->解码->处理原始数据(音频、视频)->编码->编码->推流
- [原]从管道传送数据到ffmpeg进行视频编码
- android 基于ffmpeg将视频采集的nv21转h264格式数据
- 从管道传送数据到ffmpeg进行视频编码
- 利用ffmpeg进行摄像头提取视频编码为h264通过RTP发送数据到指定的rtp地址
- 【Android】Android上Camera获取byte数据在native层进行转换
- Android学习笔记:在Android平台上通过JSON格式与服务器端进行数据交互
- Android平台第三方SDK会采集用户的那些隐私数据及具体实现代码