在網(wǎng)絡視頻直播系統(tǒng)的開發(fā)過程中,必然會涉及到編碼方式的選擇。目前關于視頻的編碼主要有兩種方式,一種是硬編碼、一種是軟編碼。在實際開發(fā)中,若搭建平臺時所用的系統(tǒng)不同,兩種編碼的使用方式也會有所變化。那么這兩種編碼有何不同?它們的優(yōu)勢和劣勢分別是什么?如何選擇?下面就隨小編一同看下。 一、軟硬編碼是什么 軟編碼也叫非硬件編碼,若用在直播上,通俗點講,這種方式是直接利用硬件的CPU對采集到的視頻進行編碼。相對而言,硬編碼則是利用非CPU進行編碼,如顯卡的GPU、專用的DSP、FPGA、ASIC芯片等等。 二、軟硬編碼的優(yōu)劣比較 先說它們的優(yōu)點:軟編碼實現(xiàn)直接、簡單,參數(shù)調整方便,而且升級比較容易,兼容性好,用在網(wǎng)絡視頻直播系統(tǒng)上,幾乎能解碼所有的視頻格式文件,畫質清晰、畫面精致,而且解碼的速度較快。而硬解碼的主要優(yōu)點就是整體性能好,雖然在低碼率情況下,質量相對于軟編碼來說,會比較差一點,但部分產(chǎn)品在GPU硬件平臺移植了優(yōu)秀的軟編碼算法,質量基本等同于軟編碼的效果,而且在這種模式下GPU承擔起了視頻的編碼工作,因此硬編碼對于CPU的占用比較低。 再說它們的缺點:由于軟編碼主要是CPU負責的,所以對于線程不夠的CPU來講,處理效率可能就不如硬編碼來的快,而且CPU容易發(fā)熱,從而導致視頻降幀、卡頓,無法正常錄制。而且采用軟編碼,可能會使軟件包體變大,從而占用硬件過多的內存。那么對于硬編碼來講,就是它的兼容性比不上軟編碼,導致不能全平臺覆蓋。 三、如何選擇軟硬編碼 從以上可以看出,軟硬編碼的優(yōu)勢和劣勢其實是互補的,根據(jù)平臺的不同,盡可能揚長避短,提供不同的方案。這里結合了網(wǎng)上大神的說法,給出了一個選擇方向:以在手機上構建網(wǎng)絡視頻直播系統(tǒng)為例,如果是使用推流編碼,則推薦安卓4.3以上使用硬編碼,以下使用軟編碼,而iOS使用全部硬編碼。如果是使用播放解碼,不管是安卓還是iOS,都使用軟解碼方案,雖然這樣做不可避免的犧牲功耗,但是在部分細節(jié)方面表現(xiàn)會較優(yōu),且可控性強,兼容性也強,出錯情況少。 以上,就是網(wǎng)絡視頻直播系統(tǒng)開發(fā)過程中,對于軟硬編碼的認識和選擇,如果您還有什么疑問的話,歡迎留言。 |
|
來自: 云豹短視頻系統(tǒng) > 《待分類》