我們早已經(jīng)進(jìn)入了數(shù)字多媒體時代,相信每天都會有數(shù)不清的男男女女,在PC手機(jī)上播放一部部令人熱血賁張的小電影。沒錯,視頻播放早已是信息時代的日常,花樣迭出的視頻播放器成為了手機(jī)電腦中不成或缺的軟件。不過,你可知道這些名目繁多的視頻播放器要運作起來,往往都離不開神級播片軟件FFmpeg?今天,就一起來談?wù)勔曨l播放和FFmpeg的那點事吧。
![](/d/20211015/48b02d178e8404f987a36e607cb8920f.gif)
很多伴侶都喜歡看電影,但可知到底是什么技術(shù)幫你把片子播出來呢?
一部小電影到底是如何播放出來的?
盡管我們每天都在看小電影之類的視頻,不過對視頻播放背后的機(jī)理,恐怕并不是每個伴侶都會去作了解。我們平時看到的小電影有著各種各樣的格式,例如AVI、RMVB、MKV等等,但是這些格式并非是視頻之間的素質(zhì)區(qū)別——差別的格式往往只代表著差別的容器,容器內(nèi)封裝的具體視頻流、音頻流等內(nèi)容,才是一個視頻的素質(zhì)所在。
例如,AVI中可以封裝H. 264 編碼的視頻流,MKV也可以封裝H.264,但同時MKV還能夠封裝HEVC、VP9 等視頻流。因此,MKV和MKV之間的區(qū)別,可能要比某個AVI和某個MKV之間的區(qū)別大得多。當(dāng)然,差別的容器也是有功能和性能上的區(qū)另外,例如MKV對各種編碼的兼容性就非常好,而AVI則有所局限,且不支持流媒體播放等。
![](/d/20211015/03d381fa5179ceba80567115723078a9.gif)
差別的容器可以封裝各種視頻編碼
要播放某段視頻,播放軟件所需要做的,首先要支持某種容器,然后把視頻流、音頻流等內(nèi)容從容器中分離出來,接而解碼,,然后渲染,用戶就可以播放出視頻、音頻乃至字幕等內(nèi)容了。這個過程是比較繁瑣并且頗有技術(shù)含量的,世界上有著茫茫多規(guī)格的編碼格式,做一個播放器就意味著需要對這些東西吃得比較透,這無疑是相當(dāng)費時費力的。因此,為數(shù)龐大的視頻播放器實際上都使用了統(tǒng)一的解決方案——FFmpeg。
神級播放軟件FFmpeg:萬能播放器的根基
FFmepg是一套視頻音頻的完整解決方案,它提供了視頻解碼、編碼、后期處理等一系列功能,對世界上千奇百怪的視頻音頻編碼有著完善的支持。FFmpeg是在Linux平臺下開發(fā)的,完全開源,也可以在其他平臺編譯運行。FFmpeg的名稱顯然是來自“MPEG”,而MPEG則是視頻編碼尺度的制定者,從名字就可以看出,F(xiàn)Fmpeg旨在研究和MPEG相關(guān)的一系列技術(shù)。
![](/d/20211015/1abee6209455c6e8c1157806d7a60d56.gif)
FFmpeg提供了一整套視頻音頻解決方案,其中也包孕了視頻解碼
FFmpeg的功能非常強(qiáng)大,雖然前文和標(biāo)題都說它是播片神器,但它的功能絕不但僅限于播片。FFmpeg自然可以解碼諸多的視頻音頻編碼,并且它同時也提供了視頻音頻轉(zhuǎn)換、編碼、封裝的功能,還可以進(jìn)行視頻裁剪、縮放、色域轉(zhuǎn)換等一系列后期處理。不但如此,F(xiàn)Fmpeg還支持HTTP、FTP、SMB等協(xié)議。可以說,無論你想要當(dāng)?shù)夭テ?,還是轉(zhuǎn)換視頻格式,亦或是利用網(wǎng)絡(luò)看視頻,F(xiàn)Fmpeg都可以勝任。
![](/d/20211015/816ed9d39b99c81b3c1c7cccb51d55a2.gif)
使用FFmpeg作為解碼器是萬能播放器們的主流之選
FFmpeg項目起源于 2000 年,多年來,F(xiàn)Fmpeg一直在進(jìn)化。FFmpeg項目在 2011 年分裂出了Libav項目,該項目誕生出了現(xiàn)今最強(qiáng)力的視頻解碼器LAV。無論對于軟硬件,LAV解碼器都有著頗為完善的支持,大量播放軟件都可以調(diào)用LAV解碼,而LAV自己也可以利用各種顯卡進(jìn)行視頻硬解。想要用PC播放難搞的4K HDR藍(lán)光?LAV絕對是最好的解決方案。
![](/d/20211015/fa1b57995d8657fa9e25702c938f5d50.gif)
基于FFmpeg的LAV是目前最強(qiáng)的視頻解碼器
FFmpeg之所以是神,不但僅是由于自身的強(qiáng)大,還在于對業(yè)界的影響力。很多播放器都宣稱本身多么多么萬能,支持先進(jìn)的4K乃至8K視頻播放,乍看這播放器搞定了世界上如此繁雜的視頻容器、視頻音頻編碼,太了不起了!然而實際上,真正的原因往往是因為這播放器自帶了FFmpeg/LAV解碼器,真正神的不是播放器,而是背后的FFmpeg/LAV,你能用播放器順利放出小電影,可別忘記感謝FFmpeg。因此,把FFmpeg稱作為神級軟件,完全實至名歸。
FFmpeg:可能是被抄襲得最嚴(yán)重的開源軟件