2016年,一名叫做雷霄驊的中國傳媒大學博士生因為過度勞累而離世,在那之後,CSDN社區的許多網友和鉆研技術的人們都自發來緬懷他。如果你是一個玩轉視頻、音頻的代碼和解碼相關的人,或者是CSDN技術社區的老油條,那麼很有可能就認識這位博士。
雷博士是 CSDN 論壇的連續兩屆博客之星,他專註於視音頻技術的研究和開發,也經常在網上分享幫助他人。
尤其是一個叫做 FFmpeg 的東西,他對這玩意兒的研究尤其深入,分享很多學習方法和解析,還寫出堪稱中文圈子最完整、最全面的 FFmpeg 入門教程,被譽為 “ 音視頻界的雷鋒 ” 。
所以很多人在緬懷雷博士的時候,也感謝他讓很多人都入 FFmpeg 的門,因為這套開源項目幾乎是想要玩轉音視頻的必備技能。
不過話又說回來,憑啥這個看著像一串驗證碼的東西,能夠成為許多開發者的必修課?
因為我們日常生活中再熟悉不過的各種音頻和視頻播放器,還真就離不開 FFmpeg 的功勞。
這個 “ 驗證碼 ” 當年推出之後,就幾乎憑借一己之力實現視頻播放大統一,就連當年的 QQ 影音都用上這玩意兒。
要想說清楚這個偉大的發明,還得先從它的發明者說起。
FFmpeg 最開始由一個叫做 Fabrice Bellard 的法國程序員在 2000 年前後發起的,他還有一個假名叫做 Gérard Lantau。
強者的發型
由於真名和假名都比較拗口,所以咱們就叫他老貝吧。
老貝確實是一個很有才華的人,除 FFmpeg,他還做過模擬處理器軟件 QEMU 和 Tiny C 編譯器等各種各樣的軟件,可以說是把計算機給玩明白。
FFmpeg 的名字靈感來源是 MPEG,也就是動態圖像專傢組,他們是給圖像和語音壓縮專門制定國際標準的一個組織。
前面的 FF 則是 Fast Forward 的縮寫,意思是快進。
連起來這麼一看,感覺老貝這是想加速統一音視頻領域啊?
那具體怎麼個加速法呢?分三步走。
首先就是 FFmpeg 的適用范圍及其廣泛,它什麼程序和代碼都有,包括但不限於編碼、解碼、轉碼和格式轉換等等。
FFmpeg 的冰山一角
簡而言之,FFmpeg 把你能想到的涉及音視頻相關的東西全都給打包進去,包括源代碼,想用啥就用啥。
所以它幾乎能播放所有的內容,無論是電子包漿的古老格式還是最新的視頻格式,它都支持。
接下來是第二步,FFmpeg 的整個項目都是免費且開源的。
FFmpeg 在推出後遵循 GPL 協議,這個協議的全稱是 GNU 通用公共許可證,不少軟件和代碼都會遵循這個協議。
舉個例子,比如我寫一段超牛逼的代碼,然後我選擇把這段代碼免費開源給大傢,但走的是 GPL 協議,這就意味著假如你在我代碼的基礎上進行修改,那麼你的這段代碼也要開源才行。
所以一定程度上,GPL 協議起到監督和約束的作用。
FFmpeg 遵循 GPL 協議,也就意味著大傢都可以使用這個功能超級齊全的音視頻工具箱,並在此基礎上魔改出各種軟件,可以說是賽博菩薩。
請 選 擇 你 的 代 碼
比如早期大傢經常用的 QQ 影音和暴風影音等等,它們的內核其實都是 FFmpeg ,然後大廠再拿過來根據需求增加功能或者本土化一下,就可以打包發佈。
還有我個人很喜歡用的 PotPlayer 播放器,簡單好用功能齊全,內核也是 FFmpeg 。
其實正常來講,有這前兩步,FFmpeg 在互聯網界就已經是十分炸裂的存在,然而它還有一個大殺器 ——
盡管它最初是在 Linux 環境下開發的,但是它移植起來並不麻煩。
所以大傢也能在 Windows 等系統上使用,實現真正的遍地開花,比如視頻處理軟件 QuickCut 等等。
甚至就連安卓系統,也有 RxFFmpeg 這種基於 FFmpeg 和 OpenSSL 等編譯的音視頻處理框架,真就散是滿天星。
所以 FFmpeg 它一來功能齊全,要啥有啥,二來基於開源協議,免費試用,三來基於 Linux ,但是又便於移植。
好傢夥,這幾樣 buff 疊起來,想不成功都難啊。
按理來講,本期科普小作文到這裡就該結束,結尾升華一波,誇贊一下這個開源項目讓大傢的生活有多麼方便 blabla 之類的。
然而並沒有,事實上,這個團隊也是有它的小脾氣的,因為 FFmpeg 當年做過一個非常經典的樂子新聞 ——Hall Of Shame 的恥辱柱名單。
我說停停,您這不是已經開源嗎,怎麼還來個恥辱柱公開掛別人啊?
但這事兒其實很好理解,因為那些用 FFmpeg 的軟件或者公司中,有相當一部分不講武德,沒有遵循 GPL 協議,不公開自己的代碼。
於是 FFmpeg 思來想去,就算不能找你對線,那我還不能順著網線惡心你嗎?
於是他們就在 FFmpeg 的官網整個恥辱柱,把那些不開源的軟件和企業名字挨個掛出來,直接公開處刑。
這東西沒啥實質性懲罰,主打的就是一個精神攻擊,隔著大半個地球嘲諷一下你。
之所以說是隔著大半個地球,因為這個恥辱柱名單裡面,就有前面提到的 QQ 影音和暴風影音。
我去,合著國內這些軟件都在這吃獨食是吧?
反正,你可以說 FFmpeg 小心眼,也可以說人傢真的很嚴格,但畢竟它最初就遵守 GPL 協議,後來的軟件無論個人還是互聯網大廠,都應該講信用才對。
不過這個協議在好幾年前就下架,也不知道啥時候能更新,我還挺期待的。
總之大傢還是要遵守 GPL,人傢把這麼好用甚至改變大傢生活的好東西免費給大夥用,你反而還不開源,吃相確實挺難看的。
經過 20 多年的互聯網風風雨雨,FFmpeg 至今依然在不斷更新,並且可以在官網下載源代碼,可以說是當代良心典范。