我們?cè)缫呀?jīng)進(jìn)入了數(shù)字多媒體時(shí)代,相信每天都會(huì)有數(shù)不清的男男女女,在PC手機(jī)上播放一部部令人熱血賁張的小電影。沒(méi)錯(cuò),視頻播放早已是信息時(shí)代的日常,花樣迭出的視頻播放器成為了手機(jī)電腦中不成或缺的軟件。不過(guò),你可知道這些名目繁多的視頻播放器要運(yùn)作起來(lái),往往都離不開(kāi)神級(jí)播片軟件FFmpeg?今天,就一起來(lái)談?wù)勔曨l播放和FFmpeg的那點(diǎn)事吧。

很多伴侶都喜歡看電影,但可知到底是什么技術(shù)幫你把片子播出來(lái)呢?
一部小電影到底是如何播放出來(lái)的?
盡管我們每天都在看小電影之類的視頻,不過(guò)對(duì)視頻播放背后的機(jī)理,恐怕并不是每個(gè)伴侶都會(huì)去作了解。我們平時(shí)看到的小電影有著各種各樣的格式,例如AVI、RMVB、MKV等等,但是這些格式并非是視頻之間的素質(zhì)區(qū)別——差別的格式往往只代表著差別的容器,容器內(nèi)封裝的具體視頻流、音頻流等內(nèi)容,才是一個(gè)視頻的素質(zhì)所在。
例如,AVI中可以封裝H. 264 編碼的視頻流,MKV也可以封裝H.264,但同時(shí)MKV還能夠封裝HEVC、VP9 等視頻流。因此,MKV和MKV之間的區(qū)別,可能要比某個(gè)AVI和某個(gè)MKV之間的區(qū)別大得多。當(dāng)然,差別的容器也是有功能和性能上的區(qū)另外,例如MKV對(duì)各種編碼的兼容性就非常好,而AVI則有所局限,且不支持流媒體播放等。

差別的容器可以封裝各種視頻編碼
要播放某段視頻,播放軟件所需要做的,首先要支持某種容器,然后把視頻流、音頻流等內(nèi)容從容器中分離出來(lái),接而解碼,,然后渲染,用戶就可以播放出視頻、音頻乃至字幕等內(nèi)容了。這個(gè)過(guò)程是比較繁瑣并且頗有技術(shù)含量的,世界上有著茫茫多規(guī)格的編碼格式,做一個(gè)播放器就意味著需要對(duì)這些東西吃得比較透,這無(wú)疑是相當(dāng)費(fèi)時(shí)費(fèi)力的。因此,為數(shù)龐大的視頻播放器實(shí)際上都使用了統(tǒng)一的解決方案——FFmpeg。
神級(jí)播放軟件FFmpeg:萬(wàn)能播放器的根基
FFmepg是一套視頻音頻的完整解決方案,它提供了視頻解碼、編碼、后期處理等一系列功能,對(duì)世界上千奇百怪的視頻音頻編碼有著完善的支持。FFmpeg是在Linux平臺(tái)下開(kāi)發(fā)的,完全開(kāi)源,也可以在其他平臺(tái)編譯運(yùn)行。FFmpeg的名稱顯然是來(lái)自“MPEG”,而MPEG則是視頻編碼尺度的制定者,從名字就可以看出,F(xiàn)Fmpeg旨在研究和MPEG相關(guān)的一系列技術(shù)。

FFmpeg提供了一整套視頻音頻解決方案,其中也包孕了視頻解碼
FFmpeg的功能非常強(qiáng)大,雖然前文和標(biāo)題都說(shuō)它是播片神器,但它的功能絕不但僅限于播片。FFmpeg自然可以解碼諸多的視頻音頻編碼,并且它同時(shí)也提供了視頻音頻轉(zhuǎn)換、編碼、封裝的功能,還可以進(jìn)行視頻裁剪、縮放、色域轉(zhuǎn)換等一系列后期處理。不但如此,F(xiàn)Fmpeg還支持HTTP、FTP、SMB等協(xié)議。可以說(shuō),無(wú)論你想要當(dāng)?shù)夭テ€是轉(zhuǎn)換視頻格式,亦或是利用網(wǎng)絡(luò)看視頻,F(xiàn)Fmpeg都可以勝任。

使用FFmpeg作為解碼器是萬(wàn)能播放器們的主流之選
FFmpeg項(xiàng)目起源于 2000 年,多年來(lái),F(xiàn)Fmpeg一直在進(jìn)化。FFmpeg項(xiàng)目在 2011 年分裂出了Libav項(xiàng)目,該項(xiàng)目誕生出了現(xiàn)今最強(qiáng)力的視頻解碼器LAV。無(wú)論對(duì)于軟硬件,LAV解碼器都有著頗為完善的支持,大量播放軟件都可以調(diào)用LAV解碼,而LAV自己也可以利用各種顯卡進(jìn)行視頻硬解。想要用PC播放難搞的4K HDR藍(lán)光?LAV絕對(duì)是最好的解決方案。

基于FFmpeg的LAV是目前最強(qiáng)的視頻解碼器
FFmpeg之所以是神,不但僅是由于自身的強(qiáng)大,還在于對(duì)業(yè)界的影響力。很多播放器都宣稱本身多么多么萬(wàn)能,支持先進(jìn)的4K乃至8K視頻播放,乍看這播放器搞定了世界上如此繁雜的視頻容器、視頻音頻編碼,太了不起了!然而實(shí)際上,真正的原因往往是因?yàn)檫@播放器自帶了FFmpeg/LAV解碼器,真正神的不是播放器,而是背后的FFmpeg/LAV,你能用播放器順利放出小電影,可別忘記感謝FFmpeg。因此,把FFmpeg稱作為神級(jí)軟件,完全實(shí)至名歸。
FFmpeg:可能是被抄襲得最嚴(yán)重的開(kāi)源軟件