FFmpeg 作者法布裡斯•貝拉:我只是在做我感興趣的事

2021-02-25 CSDN

法布裡斯•貝拉(FabriceBellard)有著「天才程式設計師」之稱,因為FFmpeg、QEMU等項目而聞名於業界。同時,他憑著極其深厚的計算機底層功力編寫出了多款編譯器和虛擬機,並靠著出色的數學知識提出了最快圓周率算法貝拉公式。然而面對這些成就,貝拉坦言不過是因為是喜歡做自己感興趣的事情。


 

高中寫出壓縮軟體

貝拉於1972年生在法國格勒諾布爾,從小就對電子設備表現出與生俱來的興趣,據說他咿呀學語時說出的第一個詞語是「magn ́etophone」 (錄音機)。

良好的家境使得幼時的貝爾能夠更加容易地獲得他所探索領域的知識和設備。在他9歲時,家裡就給貝拉購買了一臺TI-59科學計算器,好滿足他對編程的好奇之心。11歲時,貝拉擁有了一臺更為先進的TI-49/4A私人電腦。15歲時,貝拉的裝備換成了Amstrad PC1512,更為強大的配置和全 qwerty 鍵盤,令貝拉對計算機和編程所表現出來的濃厚興趣發揮得淋漓盡致。

讀高中的貝拉在PC1512 上編程時,因為磁碟空間有限,他想到通過壓縮文件來節省有限的磁碟空間。他用8086 彙編語言(PC1512的機器語言)重寫了現有的壓縮方法LZSS,優化了程序的結構,使得壓縮、解壓過程變得更加快速,同時允許被壓縮的可執行文件在後續的啟動時不需要明確的解壓縮。這就是後來著名的可執行壓縮程序LZEXE,是當年DOS上第一個廣泛使用的文件壓縮程序。

貝拉將LZEXE發給幾個朋友並發布到各種論壇裡,引起了不小的轟動,貝拉的編程能力開始嶄露頭角。

 

求學時的思考

高中畢業後,貝拉先後進入巴黎高等綜合理工學院和法國電信研究院求學。

早年在編程方面的經歷,以及在理工學院求學的經歷讓日漸成熟的貝拉對計算機科學的整體面貌有了更為全面的認識和思考。他認為計算機科學最重要的兩個方面是學習計算機如何運作的原理和知識,以及通過學習計算本身來開發語言,用各種不同的方法讓計算機更加有效地工作。

而編程必是基於原始程序設計經驗,從一個非常靠近機器的語言開始,慢慢發展為高級的語言。貝拉覺得有志向的計算機科學家通過彙編語言和計算機硬體來深度理解計算機的工作原理是必不可少的一個環節。

 

發布最快圓周率的算法

1995年,貝拉用 C 語言編寫出了快速乘法,FFT 是快速傅立葉變換的縮寫,這是一個在數位訊號處理中非常常用和有效的算法。歐洲數學家JohnPollard曾發現用在 FFT 中的一個類似的過程可以用做有效的乘法,然而苦於沒有實際完整的代碼實現,可以說是貝拉最後用 C 語言實現 Pollard 的工作。

1997年,貝拉提出了最快速的計算圓周率的算法,他使用改良後的查德諾夫斯基方程算法來進行圓周率的計算,並使用貝利-波爾溫-普勞夫公式來驗證計算的結果。這種算法是當時也是目前所有圓周率算法中最快的一種,這個計算N位圓周率的公式比傳統的BBQ算法要快47%。為了紀念貝拉對圓周率算法所作出的傑出貢獻,他所使用的改良型算法被命名為「Fabrice Bellard算法」。

2009年,貝拉用桌面電腦打破了由超級計算機保持的圓周率運算記錄。他僅花費了116天,就計算出了PI的小數點後第2.7萬億位,超過了排名世界第47位的T2K Open超級計算機於2009年8月17日創造的世界紀錄,新紀錄比原紀錄多出1200億位,然而,與超級計算機比,貝拉所使用的的不過是價格不到2000歐元的個人PC,配置、性能根本無法與T2K Open相提並論。

貝拉在圓周率方面的輝煌成就,使他創造多次圓周率計算的世界紀錄,並因此而登上《科學美國人》法文版。

 

寫出VReng和TinyGL

1998年,貝拉開發出VReng (虛擬實境引擎),這是一個分布式 3D 應用程式,運用多播技術允許通過 Internet 連接在虛擬世界中導航。之後,貝拉注意到有效的OpenGL後端是基於軟體的,比實際需求要慢很多。於是他決定基於 VReng 的代碼來編寫一個更小和更快的3D光柵。

最終在 2002 年,貝拉發布了 TinyGL,一個 OpenGL 的子集的小型實現。TinyGL 比 Mesa 和Solaris 的OpenGL 快很多,是平臺獨立的,並且數量級比後二者小很多,總共才 400KB。這也是他在圖像處理領域取得的重要成就。

 

開發出 FFmpeg

2000年,貝拉化名Gérard Lantau公布了著名的FFmpeg項目。通過這個項目,貝拉將自己在電信和數位訊號處理方面的專長帶到了最前沿。

FFMPE允許用戶在許多不同的格式之間進行轉換。FFMPEG分割成幾個部分,由 libavcodec和libformat 構成,Libavcodec收集音頻和視頻編解碼庫,Libavformat提供音頻和視頻容器復用及解復用庫,這兩個模塊結合起來提供了解析和在不同格式之間進行轉換的各種方法。

這個項目無比強大,我們今天所熟知的視頻播放軟體,如暴風影音、QQ影音、YouTube、VLC等都使用了FFmpeg的編解碼函數庫。FFmpeg易擴展、功能強、速度快、佔資源少,支持的音視頻格式極其廣泛,基本上超越了其他所有同類軟體,被譽為處理數字視頻和音頻的「瑞士軍刀」。

 

開發出QEMU

繼FFmpeg之後,貝拉另一個傑出的成就便是在2005年發布的QEMU。

QEMU是一個處理器仿真,可以用軟體來模擬不同處理器體系,允許為一個特定處理器編譯的程序通過軟體仿真在另外一個體系上運行。QEMU近似於已有的Bochs、PearPC,但具有後兩者所不具備的高速及跨平臺等特性。

貝拉在QEMU之中大量加入了自己的設計構想,使得它不止是一個簡單的處理器仿真器,也可以通過動態翻譯來提高性能,藉助KQEMU加速器處理,甚至能模擬至接近真實電腦的速度。

QEMU非常強大,若沒有過硬的底層硬體和作業系統知識根本完成不了,現在許多的底層開發人員都依賴於它,甚至作業系統教學領域也多用其作為演示。

因為QEMU的速度之快、效率之高,它被包含在許多主要的虛擬化技術中,如 VirtualBox、Xen以及Linux Kernel-based 虛擬機(KVM)。

 

國際混淆C代碼大賽兩次奪冠

國際混淆C代碼大賽(IOCCC) 是C語言界的一項大事,目的是寫出最有創意的、最讓人難以理解的C語言代碼,它每年都吸引了大量的C程式設計師前去角逐榮譽,貝拉曾兩次奪冠。

一次是在2000年,貝拉向IOCCC提交了一個4KB大小的C語言編譯器子集 OTCC。OTCC不僅使貝拉順利奪得了大賽的冠軍,也成為後來的TinyCC的起點。TinyCC 是一個ANSIC99編譯器,比其它C 編譯器小很多,在發布後的很長時間裡一直被開發人員使用。為了演示它的效果,貝拉寫了一個工具用 TinyCC 在 15 秒之內就完成了Linux內核的編譯和啟動。

另一次是在2001年,貝拉設計出一個大小僅為475 字節的程序用於計算和列印最大已知的素數(26972593 – 1),他創造性地使用整數快速傅立葉轉換,在幾分鐘之內便能列印出結果。

 

Super-Productive Programmer

PavanYara曾形容貝拉是「世界上最多產的程式設計師(Super-ProductiveProgrammer)」,除了上述成就之外,他還有許多項發明創造。

例如,貝拉在2003年開發了Emacs的複製版QEmacs。

2005年,貝拉用帶有VGA顯卡的PC機改裝成DVB-T的信號發射器。公司為了防止洩密,不僅要封音效卡插口,還要焊死顯卡插口。

2011年,貝拉用JavaScript寫了一個PC虛擬機Js linux,仿真了一個32位的x86兼容處理器,一個8259可編程中斷控制器,一個8254可編程中斷計時器,和一個16450 UART。在普通桌面電腦的Chrome瀏覽器中,Jslinux只用了僅僅5.075秒就啟動了Linux。

 

自由軟體的積極倡導者

雖然貝拉多產,但是他最為看重的還是FFMPEG、 QEMU,他坦承這是他工作中的最重要的兩個項目,但是他花費大量心血開發並維護它們並不是出於對金錢的渴求。

事實上,和「Linux之父」 Linus Torvalds等人一樣,貝拉也是自由軟體的積極倡導人,他在自由軟體授權協議的保護下,將包括FFMPEG 、 QEMU在內的許多重要軟體的源碼都毫無保留地公布了,所有人不僅可以自由的下載他的程序,也可以下載和修改程序的原始碼。

貝拉說自己對金錢和名譽毫無興趣,當年化名Gérard Lantau公布FFMPEG的舉動便是有力的佐證,他只是簡單的喜歡在他所感興趣的、他認為有用的項目上花費精力和時間。

有人問他為什麼決定在這樣寬廣的領域中工作,貝拉回答說:「這也不是決定,只是往往我做同樣的事情時感覺很無聊,所以我嘗試一次又一次的轉換項目。」

當貝拉沉浸在這些工作中時,他希望與全世界共享他的工作成果,也希望這對對他人有所幫助。貝拉不屑於行政管理和社交任務,他喜歡做好的、自己感興趣的事情。

參考連結:

https://blog.csdn.net/robertsong2004/article/details/38817679

https://baike.baidu.com/item/%E6%B3%95%E5%B8%83%E9%87%8C%E6%96%AF%C2%B7%E8%B4%9D%E6%8B%89/9358492?fromtitle=Fabrice%20Bellard&fromid=11286214&fr=aladdin

https://baijiahao.baidu.com/s?id=1666893221300048664&wfr=spider&for=pc

程式設計師如何避免陷入「內卷」、選擇什麼技術最有前景,中國開發者現狀與技術趨勢究竟是什麼樣?快來參與「2020 中國開發者大調查」,更有豐富獎品送不停!

戳」閱讀原文「,立即參與中國開發者大調查!

相關焦點

  • 女王大人,再叫我一次,貝拉|貝納勒斯測評
    好了,我們回到正題,如果貝XX,莫XX散搭的話,貝拉上未必會拉開莫奈多少差距根據自行測試的結果,在雷律的一個必殺技時間下,莫石石的傷害為387.0萬傷害,貝石石的傷害為395.9萬。以上數據來自組員「黎恩」首先是無條件的雷傷提高25%,角色出場和使用武器技能後全傷害提高15%持續9秒可刷新。
  • ffmpeg第五彈:Qt+SDL+ffmpeg視頻播放演示
    ,從現在來看的話,如果你直接用命令去安裝ffmpeg的話,到時候我們在qt的環境中去調用ffmpeg的庫,至少到目前為止我暫時不知道去如何配置相關路徑來調用ffmpeg的庫;所以我們明白了這點,那麼就擼起袖子肝就是。
  • 「SPACEPORT專訪」Timirage:我想做的不會止步於興趣
    阿TIM:在初二的時候,我偶然接觸到了電子音樂,很快就成為了狂熱的電子音樂粉絲並且開始接觸製作上的事情。一開始我覺得自己要去做音樂是件難度很大的事,直到後來我發現很多因為興趣愛好而製作音樂的人,他們的音樂真的很不錯,了解到如何製作音樂,我就決定要自己做點東西出來。我比較喜歡Deadmau5這個製作人,他很厲害。
  • Nginx + rtmp + ffmpeg 搭建流媒體伺服器
    /nginx-rtmp-module/archive/master.zip        //下載模塊# unzip master.zip                //解壓# ls nginx-rtmp-module-master/         //查看模塊目錄(2)編譯安裝nginx(說明:此處由於我這邊已有
  • 做自己的設計師,我要我更美
    十萬網友在線收看,觀眾說,「我很喜歡畫畫,還喜歡做衣服」。我要我更美,哪個女人不喜歡呢?3、『七爺大學堂』:孩子越長越不聽話,很可能是你"做"太多!(育兒班)4、「美學課堂」:愛默生:西方散落的雲朵,化成淡紅色的碎片,色調變化無窮,柔和得無法言表;屋外空氣充滿了活力,清新芳香,使人回到屋中竟有痛苦之感。大自然向我訴說的是什麼呢?磨坊後面的山谷,處處生機,難道其中沒有涵義嗎?即使是荷馬或莎士比亞,也無從用文辭來複述。
  • FFmpeg常用命令行
    上面的這些需求或者是想法,都可以用命令行輕鬆搞定,FFmpeg的強大,只有你想不到,沒有他做不到。下面就列舉了一些常用的簡單命令,讓我們一起看一下吧,另外看完後,最好是動手去實踐一番。>ffmpeg -i test.ts -acodec copy -vcodec copy -f mp4 output.mp4//ts視頻流轉mp4ffmpeg -i test.h264 -vcodec copy -f mpegts output.ts//h264視頻轉ts視頻流ffmpeg -i test.h264
  • FFmpeg獲取視頻首幀轉封面圖Bitmap
    作者:simplepeng連結:https://juejin.im/post/5f02ec8b6fb9a07e753c8a03這是學習ffmpeg的第二篇博客,主要是使用ffmpeg獲取本地視頻文件的第一幀數據轉換為Bitmap,然後拋給上層ImageView顯示。
  • ffmpeg數據結構簡介
    關閉解碼器AVCodec *     avcodec_find_decoder (enum AVCodecID id)根據id查找解碼器AVCodec *     avcodec_find_decoder_by_name (const char *name)根據名字查找解碼器結語今天的內容比較空洞,都是些api的簡單解說,有點空中閣樓的感覺。ffmpe
  • ffmpeg常用命令集錦
    常用命令總結一.採集命令列出攝像頭設備ffmpeg -list_devicestrue -f dshow -i dummy列出某一個攝像頭的能力ffmpeg -list_optionstrue -f dshow -i video=「Integrated Camera」指定格式播放某一個設備
  • 我一定要閹割我做的遊戲嗎?丨李建國的選擇07
    每當創意枯竭時,或熬夜趕工疲憊時,抑或是開發陷入瓶頸時,他都會在心裡對自己默念:「我是一名遊戲玩家,我是一名遊戲玩家。」而玩家們需要的很簡單,只是一款好玩的遊戲。李建國必須要作出一款足夠好玩的遊戲,一面是對得起遊戲製作人的稱呼,一面,要對得起身為遊戲玩家的自己。
  • 考拉作者|吳迪:年少成名,自在由我
    這是一個界限分明的年紀,比起年少輕狂時的自在由我,什麼感興趣就寫什麼,此時的寫作在任性之外也帶了一份使命感。出於專業、出於興趣,關注網際網路、經濟題材可以說是一件必然的事。整合資料、採訪當事人……吳迪用簡潔有力的文字將風起雲湧的網際網路行業背後的故事為讀者展現開來。
  • 老師好我叫何同學,我有些不開心
    他在B站和微博上感謝了媽媽,但在現實生活中,他們從來沒有聊起過這件事。何同學唯一會袒露自己內心的地帶,就在B站的視頻裡。打開他的UP主頁面,幾乎每一條視頻都是袒露內心的故事。他回憶自己中二時代的苦惱,他袒露為什麼喜歡拍視頻成為UP主,他展示早已加鎖且從未給人看過的QQ空間,其中一條說說寫著「我無法去做任何一件自己想做的事情,這實在是太悲傷了」。
  • 瞎混的停損點:30歲再做這些事就丟臉了!
    20幾歲有理想、有熱情,是最勇於追夢的年齡。這個年紀的腦子裡,有一個優先順序表,夢想第一,現實第二。當夢想與現實出現糾纏局面時,現實常會被拋諸腦後,拉都拉不住,擋都擋不了,唯一的念頭就是要去追夢!我問過很多20幾歲年輕人,到了幾歲會讓他們覺得自己老了,答案幾乎只有一個,就是30歲!第二個問20幾歲年輕人的問題是,當自己老了,會讓他們有什麼感覺?
  • 「摩中關係像葡萄酒醇美綿長」(我在中國當大使)
    「中國人拼搏奮進的精神從未改變」今年8月,貝拉基什飛抵北京,正式就任摩爾多瓦駐華大使。「看看窗外的北京,跟我第一次來時相比完全變了樣。」貝拉基什說,「中國變化很大,當然有一點從未改變,那就是中國人不斷向前拼搏奮進的精神。」上世紀90年代,貝拉基什第一次到訪中國。「我們訪問了中國很多地方,當時中國政府對改革開放、國家發展戰略的設想給我留下了深刻印象。」
  • 【超級聘】我在新加坡機場做地勤客服
    最近採訪了一位通過snow老師培訓指導,在新加坡做地勤的小夥伴,來給大家做個真實的工作經驗分享。
  • FFmpeg 時間戳詳解
    作者:葉餘來源:https://www.cnblogs.com/leisure_chn/p/10584910.html1.
  • 【作者聲音】| 戎禹:我想我可以有趣些
    我曾在部隊服役了十一年,高高的山上,人跡罕至,最大樂趣就是白天看看天上浮雲由白裳變為蒼狗,晚上望望山下歸家的車流。一年裡最開心的事就是休年假,提前要把自己最喜歡的衣服翻出來,找個晴朗的日子晾一晾,除掉發黴的味道。走出部隊大門,我最希望到的地方就是上海虹橋火車站,坐在二樓欄杆邊的位置,看著這麼多不穿軍裝的人我就高興,雙腿會愉快的抖動起來。
  • 實戰詳細講解ffmpeg命令的使用(來自一線的經驗,視頻合併&avi轉MP4&補空白音頻【收藏下來一定用的到】)
    您好,我是碼農飛哥,感謝您閱讀本文,歡迎一鍵三連哦。本文從實戰的角度出發詳細講解ffmpeg命令的使用。乾貨滿滿,建議收藏,需要用到時常看看。小夥伴們如有問題及需要,歡迎踴躍留言哦~ ~ ~。ffmpeg :表示調用ffmpeg程序的命令,如果沒有配置環境變量的話則需要指定ffmpeg.exe的絕對路徑,就像下面這樣D:\\develop\\ffmpeg-4.3.2-2021-02-20-full_build\\bin\\ffmpeg.exe global_options:用於指定全局操作參數,比如 -y 參數,可選的參數。
  • 動漫中10位深藏功與名的店長,我不做大哥好多年!
    11、  我    只在做一件事的時候才會想你    那就是呼吸12、  從愛你的青絲  一直等到  愛你花白的鬢角13、  你走近的步伐  你擁抱我的姿態  一語不發卻又可笑的真實14、  如果你的一生需要有人捧在手上  那個人只能是我    必須是我