分享

网络视频直播系统开发中,关于软硬编码的那些事

 云豹短视频系统 2019-09-23

在网络视频直播系统的开发过程中,必然会涉及到编码方式的选择。目前关于视频的编码主要有两种方式,一种是硬编码、一种是软编码。在实际开发中,若搭建平台时所用的系统不同,两种编码的使用方式也会有所变化。那么这两种编码有何不同?它们的优势和劣势分别是什么?如何选择?下面就随小编一同看下。

一、软硬编码是什么

软编码也叫非硬件编码,若用在直播上,通俗点讲,这种方式是直接利用硬件的CPU对采集到的视频进行编码。相对而言,硬编码则是利用非CPU进行编码,如显卡的GPU、专用的DSP、FPGA、ASIC芯片等等。

二、软硬编码的优劣比较

先说它们的优点:软编码实现直接、简单,参数调整方便,而且升级比较容易,兼容性好,用在网络视频直播系统上,几乎能解码所有的视频格式文件,画质清晰、画面精致,而且解码的速度较快。而硬解码的主要优点就是整体性能好,虽然在低码率情况下,质量相对于软编码来说,会比较差一点,但部分产品在GPU硬件平台移植了优秀的软编码算法,质量基本等同于软编码的效果,而且在这种模式下GPU承担起了视频的编码工作,因此硬编码对于CPU的占用比较低。

再说它们的缺点:由于软编码主要是CPU负责的,所以对于线程不够的CPU来讲,处理效率可能就不如硬编码来的快,而且CPU容易发热,从而导致视频降帧、卡顿,无法正常录制。而且采用软编码,可能会使软件包体变大,从而占用硬件过多的内存。那么对于硬编码来讲,就是它的兼容性比不上软编码,导致不能全平台覆盖。

三、如何选择软硬编码

从以上可以看出,软硬编码的优势和劣势其实是互补的,根据平台的不同,尽可能扬长避短,提供不同的方案。这里结合了网上大神的说法,给出了一个选择方向:以在手机上构建网络视频直播系统为例,如果是使用推流编码,则推荐安卓4.3以上使用硬编码,以下使用软编码,而iOS使用全部硬编码。如果是使用播放解码,不管是安卓还是iOS,都使用软解码方案,虽然这样做不可避免的牺牲功耗,但是在部分细节方面表现会较优,且可控性强,兼容性也强,出错情况少。

以上,就是网络视频直播系统开发过程中,对于软硬编码的认识和选择,如果您还有什么疑问的话,欢迎留言。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多