涉及知识点:
- Camera2 API使用
- YUV420P与YUV420SP(NV21)格式转换
- h264文件格式
- FFmpeg工程
- x264解码器
这次就先记录一下开发过程,因为牵涉到的很多技术问题都不太清楚,Android的知识都不太记得了,还有一些知识牵扯到这些开源工程的内部实现,待以后慢慢学习再写。
这个小demo就是做一个摄像头数据的获取与编码存储,由于这个demo的目的是为了给学习直播技术打基础,所以对编码速度有一定要求。
指标:编码耗费时间必须在33.3ms以下
指标说明:由于摄像头采集速度一般在30fps左右,所以编码速度不能小于这个值,否则就会出现编码速度跟不上视频获取速度的情况,造成帧的积压与丢失。
很久没有写过Android代码了,Android开发的资料还是丰富,官方文档比较详细,再看FFmpeg的文档,非核心的函数也就有个返回值类型的说明了
-
Camera 2 API
https://developer.android.google.cn/reference/android/hardware/camera2/package-summary
Camera 2 API是Android API level 21以后添加的摄像头相关库,取代了Camera 1,使用方法有区别,Camera 1其实看起来更清晰,用起来很方便,但是据说Camera 2