開始寫時,想把vlc/ffmepg/x264/xvid/都弄一遍,以爲不少代碼都要本身編譯一下才爽,後來發現,若是不作二次開發,拿dll回來用,足夠了,不用費勁本身搞環境。大部分時間你們又想用windows平臺下的編譯方法,這又更加麻煩了,由於windows的shell環境太弱了,gcc又須要另外裝,太麻煩了。linux
並且想弄的庫什麼的太多,我乃普通人,學不了這麼多東西。另外有太多事情你們已經重複作過不少次,寫了不少文章,我不用多此一舉了。因此我決定打個折扣,只寫一些你們不太關心的,可是又有一些人想知道的。git
我要是能把264編解都搞定,xvid/ffmpeg又能用得虎虎生風,也不會像如今這樣寫普及文章了,呵呵。shell
這個徹底是純操做,按步驟,正常人都行的。bootstrap
1.VLCwindows
實際上授人以魚,不如授人以漁。VLC的官方網站實際就有編譯方法,就文檔這一項,比其餘項目強太多了。網絡
連接在此:https://wiki.videolan.org/Category:Building/ 選擇你須要編譯的平臺看doc便可。
框架
雖然按照步驟還會有一些問題出現,可是一般這些問題均可以google到。大部分時間,問題都出在autoconf/automake/libtools這套東西上,這個東西實在爛的能夠,版本差別又極大,真是無藥可救。ide
我大概說一下我作的過程,這個實際上和你的linux版本有太多關係了。並且我本身都是失敗了放棄了不少不少次以後,才逐漸找個規律,而後如今基本均可以一次編譯經過。svn
先裝好須要的工具,cmake/yasm/svn/git/cvs,由於vlc編譯時,有不少的依賴庫會從網絡下載,因此有時有些網站被牆時,有些tar.gz沒法下載,你就須要本身去下載回來,而後放到contrib/tarballs下面。工具
% cd contrib
% mkdir native
% cd native
% ../bootstrap
% make
先編譯依賴包,由於vlc自己只是一個框架,實際的協議棧/codec/這些庫,早就有人開發好了,不用白不用,因此VLC就把這些庫拿過來放到本身代碼下面了。具體就在contrib/src下有不少。mk腳本,都是配置選項,下載連接之類的東西,在這裏。編完依賴,回到根目錄,直接make編譯成功便可。
2.ffmpeg
老規矩,告訴一個官方的文檔來。
http://ffmpeg.zeranoe.com/builds/
這是一個ffmpeg for win32的編譯網站,幾乎每隔幾天就會編譯一個版本出來,若是須要開發,直接拿sdk和bin回來用,就能夠了,本身在windows上架cygwin/mingw,真心不是好玩的,我玩了太屢次,已經累覺不愛了。
3.x264
直接戳這裏:http://download.videolan.org/pub/videolan/x264/binaries/
各類平臺都有了,拿回來用吧。不爽的一點就是不知道有些編譯選項是否打開,好比我要給ARM編譯一個,看來這個須要本身動手編譯了。
4.xvid
windows平臺也很容易編譯,由於這個項目組已經提供了vc項目了。只需一個f5便可。
不過要先裝nasm才行。由於有些彙編優化代碼是gnu格式的,windows的masm不認識。
一些其餘的東西:
關於264
ffmpeg的代碼,只有解碼模塊,沒有編碼模塊,ffmpeg(這裏指命令行工具)雖然能壓縮片子,可是這個實際是調用x264實現的。
x264的代碼,主要是一個編碼器,並不側重解碼這塊,甚至沒有完整的解碼器實現。
xvid和divx有一場聖戰,詳細請戳http://zh.wikipedia.org/wiki/Xvid
nasm不少時候,開發軟件真是很是痛苦,好比開發工具就很是鬱悶。彙編的格式還有所不一樣,致使彙編器不同,因此masm與nasm就出現了,一個是mirosoft的,一個gnu for win32的。更具體的區別
http://hi.baidu.com/3100100788/item/819ef992dff650fe28164742
好吧,其實開源界的codec代碼(FLAC/OGG/VP8/theora.....)實在太多了,真不知道國外怎麼那麼多高手,我連看都看不明白,他們隨便寫了一個又一個。不過真實的世界多是,大公司爲了推廣本身的技術,派幾我的作個開源版本,而後本身賣閉源軟件。真是精明啊。