這個(gè)免費(fèi)良心的開源項(xiàng)目,為啥要把國產(chǎn)軟件們釘在恥辱柱上?
本文來自公眾號(hào)【差評(píng)】

2016 年,一名叫做雷霄驊的中國傳媒大學(xué)博士生因?yàn)檫^度勞累而離世,在那之后,CSDN 社區(qū)的許多網(wǎng)友和鉆研技術(shù)的人們都自發(fā)來緬懷他。
如果你是一個(gè)玩轉(zhuǎn)視頻、音頻的代碼和解碼相關(guān)的人,或者是 CSDN 技術(shù)社區(qū)的老油條,那么很有可能就認(rèn)識(shí)這位博士。
雷博士是 CSDN 論壇的連續(xù)兩屆博客之星,他專注于視音頻技術(shù)的研究和開發(fā),也經(jīng)常在網(wǎng)上分享幫助他人。

尤其是一個(gè)叫做 FFmpeg 的東西,他對(duì)這玩意兒的研究尤其深入,分享了很多學(xué)習(xí)方法和解析,還寫出了堪稱中文圈子最完整、最全面的 FFmpeg 入門教程,被譽(yù)為 “ 音視頻界的雷鋒 ” 。
所以很多人在緬懷雷博士的時(shí)候,也感謝他讓很多人都入了 FFmpeg 的門,因?yàn)檫@套開源項(xiàng)目幾乎是想要玩轉(zhuǎn)音視頻的必備技能。

不過話又說回來,憑啥這個(gè)看著像一串驗(yàn)證碼的東西,能夠成為許多開發(fā)者的必修課?
因?yàn)槲覀內(nèi)粘I钪性偈煜げ贿^的各種音頻和視頻播放器,還真就離不開 FFmpeg 的功勞。。。
這個(gè) “ 驗(yàn)證碼 ” 當(dāng)年推出之后,就幾乎憑借一己之力實(shí)現(xiàn)了視頻播放大統(tǒng)一,就連當(dāng)年的 QQ 影音都用上了這玩意兒。。。

而要想說清楚這個(gè)偉大的發(fā)明,還得先從它的發(fā)明者說起。
FFmpeg 最開始由一個(gè)叫做 Fabrice Bellard 的法國程序員在 2000 年前后發(fā)起的,他還有一個(gè)假名叫做 Gérard Lantau。
強(qiáng)者的發(fā)型

由于真名和假名都比較拗口,所以咱們就叫他老貝吧。
老貝確實(shí)是一個(gè)很有才華的人,除了 FFmpeg,他還做過模擬處理器軟件 QEMU 和 Tiny C 編譯器等各種各樣的軟件,可以說是把計(jì)算機(jī)給玩明白了。
FFmpeg 的名字靈感來源是 MPEG,也就是動(dòng)態(tài)圖像專家組,他們是給圖像和語音壓縮專門制定國際標(biāo)準(zhǔn)的一個(gè)組織。

前面的 FF 則是 Fast Forward 的縮寫,意思是快進(jìn)。
連起來這么一看,感覺老貝這是想加速統(tǒng)一音視頻領(lǐng)域?。?/span>
那具體怎么個(gè)加速法呢?分三步走。
首先就是 FFmpeg 的適用范圍及其廣泛,它什么程序和代碼都有,包括但不限于編碼、解碼、轉(zhuǎn)碼和格式轉(zhuǎn)換等等。
FFmpeg 的冰山一角

簡而言之,F(xiàn)Fmpeg 把你能想到的涉及音視頻相關(guān)的東西全都給打包進(jìn)去了,包括源代碼,想用啥就用啥。
所以它幾乎能播放所有的內(nèi)容,無論是電子包漿的古老格式還是最新的視頻格式,它都支持。
接下來是第二步,FFmpeg 的整個(gè)項(xiàng)目都是免費(fèi)且開源的。
FFmpeg 在推出后遵循了 GPL 協(xié)議,這個(gè)協(xié)議的全稱是 GNU 通用公共許可證,不少軟件和代碼都會(huì)遵循這個(gè)協(xié)議。

舉個(gè)例子,比如我寫了一段超牛逼的代碼,然后我選擇把這段代碼免費(fèi)開源給大家,但走的是 GPL 協(xié)議,這就意味著假如你在我代碼的基礎(chǔ)上進(jìn)行修改,那么你的這段代碼也要開源才行。
所以一定程度上,GPL 協(xié)議起到了監(jiān)督和約束的作用。
而 FFmpeg 遵循 GPL 協(xié)議,也就意味著大家都可以使用這個(gè)功能超級(jí)齊全的音視頻工具箱,并在此基礎(chǔ)上魔改出各種軟件,可以說是賽博菩薩了。。。
請(qǐng) 選 擇 你 的 代 碼?

?比如早期大家經(jīng)常用的 QQ 影音和暴風(fēng)影音等等,它們的內(nèi)核其實(shí)都是 FFmpeg ,然后大廠再拿過來根據(jù)需求增加功能或者本土化一下,就可以打包發(fā)布了。

還有世超個(gè)人很喜歡用的 PotPlayer 播放器,簡單好用功能齊全,內(nèi)核也是 FFmpeg 。。。

其實(shí)正常來講,有了這前兩步,F(xiàn)Fmpeg 在互聯(lián)網(wǎng)界就已經(jīng)是十分炸裂的存在了,然而它還有一個(gè)大殺器 ——
盡管它最初是在 Linux 環(huán)境下開發(fā)的,但是它移植起來并不麻煩。
所以大家也能在 Windows 等系統(tǒng)上使用,實(shí)現(xiàn)了真正的遍地開花,比如視頻處理軟件 QuickCut 等等。

甚至就連安卓系統(tǒng),也有 RxFFmpeg 這種基于 FFmpeg 和 OpenSSL 等編譯的音視頻處理框架,真就散是滿天星。。。

所以 FFmpeg 它一來功能齊全,要啥有啥,二來基于開源協(xié)議,免費(fèi)試用,三來基于 Linux ,但是又便于移植。
好家伙,這幾樣 buff 疊起來,想不成功都難啊。。。
按理來講,本期科普小作文到這里就該結(jié)束了,結(jié)尾升華一波,夸贊一下這個(gè)開源項(xiàng)目讓大家的生活有多么方便 blabla 之類的。
然而并沒有,事實(shí)上,這個(gè)團(tuán)隊(duì)也是有它的小脾氣的,因?yàn)?FFmpeg 當(dāng)年做過一個(gè)非常經(jīng)典的樂子新聞 ——
Hall Of Shame 的恥辱柱名單。

我說停停,您這不是已經(jīng)開源了嗎,怎么還來個(gè)恥辱柱公開掛別人啊?
但這事兒其實(shí)很好理解,因?yàn)槟切┯昧?FFmpeg 的軟件或者公司中,有相當(dāng)一部分不講武德,沒有遵循 GPL 協(xié)議,不公開自己的代碼。。。
于是 FFmpeg 思來想去,就算不能找你對(duì)線,那我還不能順著網(wǎng)線惡心你嗎?
于是他們就在 FFmpeg 的官網(wǎng)整了個(gè)恥辱柱,把那些不開源的軟件和企業(yè)名字挨個(gè)掛出來,直接公開處刑。

這東西沒啥實(shí)質(zhì)性懲罰,主打的就是一個(gè)精神攻擊,隔著大半個(gè)地球嘲諷一下你。
之所以說是隔著大半個(gè)地球,因?yàn)檫@個(gè)恥辱柱名單里面,就有前面提到的 QQ 影音和暴風(fēng)影音。。。

我去,合著國內(nèi)這些軟件都在這吃獨(dú)食是吧?
反正,你可以說 FFmpeg 小心眼,也可以說人家真的很嚴(yán)格,但畢竟它最初就遵守了 GPL 協(xié)議,后來的軟件無論個(gè)人還是互聯(lián)網(wǎng)大廠,都應(yīng)該講信用才對(duì)。
不過這個(gè)協(xié)議在好幾年前就下架了,也不知道啥時(shí)候能更新,世超還挺期待的。

總之大家還是要遵守 GPL,人家把這么好用甚至改變了大家生活的好東西免費(fèi)給大伙用,你反而還不開源,吃相確實(shí)挺難看的。
而且經(jīng)過了 20 多年的互聯(lián)網(wǎng)風(fēng)風(fēng)雨雨,F(xiàn)Fmpeg 至今依然在不斷更新,并且可以在官網(wǎng)下載源代碼,可以說是當(dāng)代良心典范了。。。
撰文:百威? ?編輯:米羅
來源:
Wikipedia
LiveVideoStack
知乎 - 關(guān)于FFmepg的冷知識(shí),這一篇就夠了
CSDN - FFMPEG詳解(完整版)
CSDN - 使用 FFmpeg 轉(zhuǎn)換視頻/音頻格式 | 開源 免費(fèi) | 不用套殼軟件
CSDN - 最簡單的基于FFMPEG+SDL的視頻播放器:拆分-解碼器和播放器
GitHub -?QuickCut 、RxFFmpeg
ffmpeg.org
Google 、New Bing