目前开发短视频主要是要开发安卓端和iOS端,今天小编主要介绍一下安卓端的视频录制的解决方案。众所周知,短视频app开发业务中“视频录制”以及 “视频编辑”是两个核心功能。
其中视频录制又包括:视频采集、实时美颜、自定义码率、摄像头切换、变焦、对焦、曝光度调节以及滤镜等功能。视频编辑则包括:视频裁剪、视频拼接、混音、视频动画效果、动态贴图等功能。
视频录制的大致实现流程是先由Camera、AudioRecord进行最原始的相机画面以及声音的采集,然后将采集的数据进行滤镜、降噪等前处理,处理完成后由MediaCodec进行硬件编码,最后采用MediaMuxer生成最终的MP4文件。
虽然这几年智能手机的性能大大增强,很多旗舰手机基本都是8核的CPU了,但要操作如此大量的图片数据并进行浮点运算对CPU的消耗还是很大的。CPU暂用率高就会引起手机发烫,手机发烫就会导致Camera采集掉帧,还会引起CPU降频,CPU一旦降频那APP所暂用的CPU比例就更高了,进而引发手机电量消耗过快。
而对于视频编辑功能,目前Android端没有很好的系统API即硬件处理方式,主要还是利用ffmpeg进行相应的叠加、裁剪混音等后期处理。可以优化的一个点是,先将原始的MP4视频进行解码,然后将解码后的YUV数据映射到GPU的纹理上进行亮度、饱和度等参数的调节,然后将调好的参数配置为ffmpeg进行编辑处理。
这个方案的优势是全程采用了GPU以及硬件编码,基本上不涉及CPU上的操作,所以在可实现在高帧率(30fps)、高分辨率(720P)以及高码率的情况下CPU暂用率也非常低,即使在性能较差的手机上也能很好的运行。在音视频开发中,通常情况下对音视频的处理,主要是对视频的YUV、H264音频的PCM、AAC这类数据格式进行操作,这类操作都有相关成熟的RFC技术,实现起来比较容易,通常情况下在PC等设备上也可以这么处理。
这个方案是目前比较适用的解决方案,短时片APP开发是一个大项目,不仅仅是要解决录制问题,还有更多需要解决的事项,特别是还有第三方服务,这里小编建议如果感兴趣的投资者,开发短视频尽量还是优先找专业的团队来完成,可以解决很多后顾之忧。
联系我时,请说是在武汉便民网看到的,谢谢!