一款優(yōu)質(zhì)的短視頻APP誕生并非易事,開發(fā)過程也是需要考慮各種問題,包括音視頻問題、開屏速度等等。無論是短視頻還是直播,都要經(jīng)過無數(shù)次的測試、優(yōu)化等步驟完成。
那么今天我們就來看一下,短視頻直播源碼如何利用軟硬編碼兩種方式為用戶提供更流暢的使用感。
一、編解碼有什么用?
短視頻APP開發(fā)必然會涉及到編碼方式的選擇,軟編碼即非硬件編碼,是利用軟件本身,或者說使用CPU對視頻拍主所拍攝的原視頻進行編碼的方式,而硬編碼即硬件編碼,利用手機硬件芯片(如GPU)對原視頻進行編碼的操作。
在音視頻進行流媒體傳播時,直接上傳原視頻會占用很多帶寬,很費網(wǎng)速,于是為了節(jié)約帶寬,便于觀看者手機解碼,在上傳前,直播源碼中內(nèi)置的編碼功能會對原視頻進行壓縮和編碼,讓視頻文件變小,成為統(tǒng)一的編碼格式,這樣一來,不但能節(jié)約寬帶,還能提高視頻加載速度,所以編解碼是必不可少的。
三、軟編碼和硬編碼有什么區(qū)別?
總的來說,硬編碼方式處理速度快,由于GPU承擔起了編碼的重擔,因此硬編碼對CPU的占用率低,就算長時間高清錄制視頻手機也不會發(fā)燙降頻。而軟編碼方式處理更精細,兼容性好,能解碼所有的視頻格式文件,畫質(zhì)清晰、畫面精致。
它們當然也都有自己的劣勢,軟件編碼的CPU占用率高,一些性能比較差的手機可能會因CPU發(fā)熱而降頻、卡頓,但是隨著現(xiàn)在手機性能的普遍提高,已經(jīng)不是什么難點了。而硬件編碼的缺點就更明顯,在某些智能手機上,由于機型區(qū)別,采取硬件編碼的方式可能會出現(xiàn)兼容性上的問題,還有硬件編碼畫面不夠精細的問題一直都很難解決。
四、軟硬編碼如何選擇
由于客戶開發(fā)需求不同,所以就軟硬編碼的選擇不能一概而論。才藝展示類短視頻的用戶可能會更適合用硬編碼,而美妝類、開箱視頻類、游戲類短視頻拍主可能會更適合用軟編碼模式,如果平臺需要的話,也可以在個人中心設(shè)置選擇拍攝清晰度和流暢度(軟硬編碼)的按鈕,供用戶自行選擇。
五、目前的主流GPU加速平臺
Intel、AMD、NVIDIA
目前主流的GPU平臺開發(fā)框架
CUDA:NVIDIA的封閉編程框架,通過框架可以調(diào)用GPU計算資源
AMD APP:AMD為自己的GPU提出的一套通用并行編程框架,標準開放,通過在CPU、GPU同時支持OpenCL框架,進行計算力融合。
OpenCL:開放計算語言,為異構(gòu)平臺編寫程序的該框架,異構(gòu)平臺可包含CPU、GPU以及其他計算處理器,目標是使相同的運算能支持不同平臺硬件加速。
Inel QuickSync:集成于Intel顯卡中的專用視頻編解碼模塊。