Android短视频软编、硬编、滤镜、合成等功能解析

        在Android上要实现一个录制功能,需要有几个方面的知识储备:自定义相机的开发、视频数据格式的了解、编码相关知识以及视频合成技术,同时如果需要美颜、磨皮等滤镜操作还需要一定的openGL的知识。

        视频的编码录制主要是软编和硬编两种方案:

  软编即采用CPU对相机采集的原始数据进行编码后再和音频一起合并成一个MP4等格式的文件。优点 是技术相对成熟,网上开源的编码以及合成库很多,实现相对较快,同时兼容性比较好。缺点 是CPU暂用率高,性能差的手机无法达到较大目标参数,同时引用了大量的第三方库,导致包很大。

       软编的具体实现方案如下图所示,流程相对清晰简单:

       camera采集YUV数据 ==> 滤镜 ==> x264编码器机型编码 ==> MP4打包合成

 

       硬编即采用手机提供的硬编接口,利用硬件芯片直接进行编码合成。优点 是速度快、效率高、CPU占用极少,即使长时间高清录制也不会发烫,同时由于使用系统API,库相对较小。缺点 是某些奇葩机型需要处理兼容性问题,同时Android上的硬编跟Surface以及openGL关系比较密切,网上相关知识较少,需要自己摸索踩坑。

 

  硬编的主要流程如下图所示,可以看到所有的数据,从采集、编码、显示以及合成都在GPU里面进行流转。

       

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值