对于普通的视频拍摄,特别是对视频大小进行定制裁剪的,iOS对多媒体处理的支持还算比较丰富,Android原生Recorder类并不支持视频比例的设置。
视频的录制:
a摒弃原生接口,使用FFmpeg或OpenCV等方式进行录制
这类方法的缺点在于对开发者技术要求较高,FFmpeg和OpenCV移植麻烦,多机型兼容复杂并且要求开发者一定程度的C语言功底,但是最难解决的问题是性能问题,FFmeg和OpenCV都是开源方案,如果要真正达实用级别往往还需要优化定制,这对于熟练于做Android展现的开发者来说完全就是一个新的领域。一般的开发者结果视频的码率(帧率)只能做到15fps左右;
b. 使用原生API录制
在录制界面使遮罩的方式给用户一种1:1的错觉。在预览视频时,使用FFmpeg进行视频裁剪。如果团队没有驾驭FFmpeg的能力,我个人建议使用这种方式。对于视频录制功能来说相对简单,而且裁剪命令优化后基本可以可以做到视频预览一遍也就基本裁剪完毕。
a 原生api 输出视频不能达到高度定制,文件较大,分辨率不能定制。虽然系统不断完善硬件编码api,但系统版本过高,低版本得不到适配,用户割舍量较大。
b 移植ffmpeg /x264 实现视频录制,编译优化,库大小裁剪,以及接口调用,对开发者技术要求较高。另外由于开发工具不成熟,多种语言开发,调试开发难度加大。
c android系统被多家手机厂商定制,硬件设备差异也很大,适配市面所有分辨率以及摄像头工作量较大&#x