随着互联网对人们生活习惯的改变,Android短视频开发业务不断升温。移动端各个媒体平台成为流量市场中增长的主力,各式各样的短视频应用迅速抢占人们的手机屏幕。而在Android端想要实现录制功能,就需要储备相关的知识,以实现720P、30帧为例选择一个正确的实现方案,避免CPU的消耗太大造成手机发烫的现象。比如今天想跟大家分享的关于视频的编解码的相关知识。
软件编码和硬件编码定义
1.软件编码即采用CPU对相机所采集的原始数据进行编码,然后跟音频一起合并成为MP4格式的文件。这一方案的优点是,
2.硬件编码即采用手机提供的硬编接口,利用其中的硬件芯片直接进行编码的合成。
区别
1.    软件编码相对来说技术比较成熟,实现起来快而且兼容性也好。缺点就是,软件编码的CPU占用率高,像一些性能比较差的手机可能就无法达到我们所说的720p,30帧。而且还会同时引用大量的第三方库,导致包体过大。
2.    而硬件编码的速度非常快且效率极高,CPU的占用率低,简单点讲就是即使我们长时间的保持高清录制,手机也不会发烫。缺点是,由于某些智能手机的机型问题,需要处理兼容性方面的问题,同时Android端上的硬件编码和Surface以及openGL的关系相对也比较密切。对于这一方的知识,还需要多查阅多摸索才行。
软件解码和硬件解码
1.硬件解码就是通过硬件进行视频的解码工作,其中硬件解码是由GPU来进行的,使用GPU解码能够降低CPU的工作负荷从而降低功耗。
2.软件解码则是通过软件本身占用的CPU进行解码,所以会增加CPU工作负荷造成功耗上升。
区别
1.硬件解码播放出来的视频更加流畅,而且能够延长移动设备终端播放视频的时间。而软件解码由于会加大CPU工作负荷,导致占用了过多的移动CPU资源,如果手机的CPU能力不足,那么软件也会受到一定影响。
2.硬件解码所需要的解码视频格式容易受到GPU的影响,导致无法播放全部视频,画质也不够清晰。而软件解码能解码所有的视频格式文件,且画质更加清晰。
综合以上内容我们可以看出,在Android短视频开发业务中,硬件编解码方式比较合适。因为短视频的本地录制并不像直播,对带宽、实时性和互动性等方面要求严格,比如编码需要进行动态调节编码器中码率帧率的情况,所以本地录制可以将编码器的码率设置的比较高一些,也不需要进行动态的调节来改变视频分辨率。