解碼、預處理、視頻編碼,共同構(gòu)成了視頻轉(zhuǎn)碼的流程。而其中最為關(guān)鍵的,當屬視頻編解碼技術(shù),無論是轉(zhuǎn)碼耗時,還是最終輸出視頻的碼率和畫質(zhì),都與此息息相關(guān)。
不同的轉(zhuǎn)碼形式有不同的特點和適用場景,不止軟件轉(zhuǎn)碼,七牛云現(xiàn)已支持GPU硬件視頻轉(zhuǎn)碼,為您提供更多選擇。
一、GPU轉(zhuǎn)碼vs CPU轉(zhuǎn)碼
我們通常所說的視頻轉(zhuǎn)碼,一般基于ffmpeg/x264/x265這樣的開源視頻編解碼軟件進行,過程中需要占用大量CPU資源進行計算,轉(zhuǎn)碼的壓縮性能較好,但是需要更長的時間。
而GPU轉(zhuǎn)碼則是利用硬件的計算單元或?qū)iT電路集成的視頻編解碼器進行轉(zhuǎn)碼,常見的如GPU中Nvidia的Nvenc/Nvdec編解碼器、Intel的QSV、MacOS的VideoToolbox等。以Nvidia的GPU硬件轉(zhuǎn)碼為例,相比于CPU軟件轉(zhuǎn)碼,雖畫質(zhì)稍有下降,但是卻有著更快的轉(zhuǎn)碼速度。
二、為什么要選擇GPU轉(zhuǎn)碼?
GPU轉(zhuǎn)碼的特性,用一個字來概括,就是「快」。盡管在視頻的壓縮性能和相關(guān)轉(zhuǎn)碼功能上,相比CPU軟件轉(zhuǎn)碼有所損失,但是由于其使用專門電路進行計算,從而獲得了更快的編解碼速度,在編碼上體現(xiàn)得尤為明顯。通過下圖的對比可以看出,在輸入輸出不改變分辨率的情況下,GPU轉(zhuǎn)碼的速度比CPU轉(zhuǎn)碼要快2至3倍。這意味著1分鐘時長的視頻,CPU轉(zhuǎn)碼以1倍速轉(zhuǎn)碼需要1分鐘左右,而通過GPU硬件轉(zhuǎn)碼,20到30秒即可完成。
更為重要的是,GPU轉(zhuǎn)碼和CPU轉(zhuǎn)碼,不是答案唯一的單選題。由于GPU轉(zhuǎn)碼所占用的CPU資源更少,采用CPU+GPU的異構(gòu)組合成為可能,通過這樣的使用方式,可充分利用CPU和GPU的計算資源,提供更多路的轉(zhuǎn)碼服務(wù)。
三、什么樣的場景適合GPU轉(zhuǎn)碼?
隨著直播電商、在線教育等場景的出現(xiàn),直播不僅是觀眾單向的收看,流暢的互動已成為其中的重要一環(huán),對交互的實時性提出了新要求。而在云剪輯等內(nèi)容創(chuàng)作場景中,用戶對生成視頻的時間相對敏感,縮短轉(zhuǎn)碼速度也能極大提升用戶的體驗。
在這樣對實時性要求比較高的場景中,GPU轉(zhuǎn)碼速度快的特點可以得到最大發(fā)揮,幫助音視頻內(nèi)容快速推向用戶。
GPU轉(zhuǎn)碼和CPU轉(zhuǎn)碼,沒有絕對的高下之分,各有所長的情況下,根據(jù)自身業(yè)務(wù)特點,選擇更匹配需求場景的方式,才能找到最優(yōu)解。七牛云GPU轉(zhuǎn)碼現(xiàn)已在行業(yè)客戶中成功落地,也歡迎更多用戶按需選擇,獲得最佳方案。