一款优质的短视频APP诞生并非易事,开发过程也是需要考虑各种问题,包括音视频问题、开屏速度等等。无论是短视频还是直播,都要经过无数次的测试、优化等步骤完成。
那么今天我们就来看一下,短视频直播源码如何利用软硬编码两种方式为用户提供更流畅的使用感。
一、编解码有什么用?
短视频APP开发必然会涉及到编码方式的选择,软编码即非硬件编码,是利用软件本身,或者说使用CPU对视频拍主所拍摄的原视频进行编码的方式,而硬编码即硬件编码,利用手机硬件芯片(如GPU)对原视频进行编码的操作。
在音视频进行流媒体传播时,直接上传原视频会占用很多带宽,很费网速,于是为了节约带宽,便于观看者手机解码,在上传前,直播源码中内置的编码功能会对原视频进行压缩和编码,让视频文件变小,成为统一的编码格式,这样一来,不但能节约宽带,还能提高视频加载速度,所以编解码是必不可少的。
三、软编码和硬编码有什么区别?
硬编码方式处理速度快,由于GPU承担起了编码的重担,因此硬编码对CPU的占用率低,就算长时间高清录制视频手机也不会发烫降频。而软编码方式处理更精细,兼容性好,能解码所有的视频格式文件,画质清晰、画面精致。
它们当然也都有自己的劣势,软件编码的CPU占用率高,一些性能比较差的手机可能会因CPU发热而降频、卡顿,但是随着现在手机性能的普遍提高,已经不是什么难点了。而硬件编码的缺点就更明显,在某些智能手机上,由于机型区别,采取硬件编码的方式可能会出现兼容性上的问题,还有硬件编码画面不够精细的问题一直都很难解决。
四、软硬编码如何选择
由于客户开发需求不同,所以就软硬编码的选择不能一概而论。才艺展示类短视频的用户可能会更适合用硬编码,而美妆类、开箱视频类、游戏类短视频拍主可能会更适合用软编码模式,如果平台需要的话,也可以在个人中心设置选择拍摄清晰度和流畅度(软硬编码)的按钮,供用户自行选择。
五、目前的主流GPU加速平台
Intel、AMD、NVIDIA
目前主流的GPU平台开发框架
CUDA:NVIDIA的封闭编程框架,通过框架可以调用GPU计算资源
AMD APP:AMD为自己的GPU提出的一套通用并行编程框架,标准开放,通过在CPU、GPU同时支持OpenCL框架,进行计算力融合。
OpenCL:开放计算语言,为异构平台编写程序的该框架,异构平台可包含CPU、GPU以及其他计算处理器,目标是使相同的运算能支持不同平台硬件加速。
Inel QuickSync:集成于Intel显卡中的专用视频编解码模块。