短视频app开发——Android端实用短视频录制方案
继抖音、快手、微视等一众短视频豪强并起以来,2018年的短视频市场可谓一片火热,而国内很多短视频平台运营商也开始纷纷布局海外短视频市场。面对眼前的场景,短视频app开发也逐渐引发了创投者的兴趣,生怕自己错过眼下的短视频红海。
今天就为大家简单介绍下短视频app开发中关于Android端比较实用的短视频录制方案,希望能对大家有所帮助。
众所周知,短视频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等设备上也可以这么处理。
以上的方案是目前Android端比较适用的短视频录制方面的解决方案。然而短视频app开发毕竟是一项“大工程”,所以如果想要使开发的短视频系统达到运营级效果,除了要有过硬的音视频开发技术实力,还需要用到许许多多的三方SDK服务,建议大家有条件的话还是寻找专业的开发团队来做。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Android设备接入阿里云IoT物联网平台
1. 准备工作 1.1 注册阿里云账号 使用个人淘宝账号或手机号,开通阿里云账号,并通过__实名认证(可以用支付宝认证)__ 1.2 免费开通IoT物联网套件 产品官网 https://www.aliyun.com/product/iot 1.3 软件环境 JDK安装 编辑器 IDEA 2. 开发步骤 2.1 云端开发 1) 创建高级版产品 2) 功能定义,产品物模型添加属性 添加产品属性定义 属性名 标识符 数据类型 范围 温度 temperature float -50~100 湿度 humidity float 0~100 物模型对应属性上报topic /sys/替换为productKey/替换为deviceName/thing/event/property/post 物模型对应的属性上报payload { id: 123452452, params: {
- 下一篇
Android插件化之VirtualAPK框架初试
因为需求要做插件化,所以写篇文章写个小demo来记录一下,这篇文章只是写个demo,而不做总结和讲解。 一.前言 1.什么是插件化,网上很大大佬有很好的解释,这里我不重复,简单来说就是要一个apk加载另一个apk的内容。 主apk我们成为宿主,被加载内容的apk我们称为插件 2.为什么使用VirtualAPK 关于插件化有很多方案和框架可以使用,至于我为什么选择VirtualAPK,主要有两点原因: (1)这个框架目前还在维护 (2)接入方便,文档清晰 3.框架地址 https://github.com/didi/VirtualAPK 二.写Demo接入VirtualAPK 要接入VirtualAPK,我们要跟着文档走,打开连接地址,然后点开wiki,上面会有接入的流程。注意:不管用什么框架,最好的文档都是官方的文档,就算在接入过程有问题也应该先去找Issues有没有相应的贴,实在没有才用搜索引擎去搜索问题。 读过这个框架之后我们知道要做两个项目,一个是宿主项目,一个是插件项目。那我用AS开发的话可以写一个工程然后两个module,这边比较方便管理 我这里宿主就是:app模块,插件就是...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Hadoop3单机部署,实现最简伪集群
- CentOS8编译安装MySQL8.0.19
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Mario游戏-低调大师作品
- CentOS6,CentOS7官方镜像安装Oracle11G