天天看點

windows xp下編譯出ffmpeg.exe

windows xp下編譯出ffmpeg.exe

轉自 http://home.chinavideo.org/space.php?uid=1&do=thread&id=9

找了好多資料,把自己的編譯成功過程詳細叙述,以避免後來者可以少浪費點時間。

1.安裝MSys

到http://sourceforge.net/project/showfiles.php?group_id=2435下載下傳檔案:

bash-3.1-MSYS-1.0.11-tar.bz2

msysCORE-1.0.11-2007.01.19-1.tar.bz2

msysCORE-1.0.11-2007.01.19-1.tar.bz2下載鏈接:

http://sourceforge.net/project/downloading.php?group_id=2435&use_mirror=nchc&filename=msysCORE-1.0.11-2007.01.19-1.tar.bz2&39247800

bash-3.1-MSYS-1.0.11-tar.bz2下載鏈接:

http://sourceforge.net/project/downloading.php?group_id=2435&use_mirror=nchc&filename=bash-3.1-MSYS-1.0.11-1.tar.bz2&93684193

解壓msysCORE-1.0.11-2007.01.19-1.tar.bz2,比如解壓到D:/msys(以下内容都使用該路徑描述)。

解壓bash-3.1-MSYS-1.0.11-tar.bz2,産生一個名為bash-3.1的目錄,在該目錄下有一個子目錄名為bin,其 他   的目錄不需要關心。複制bin目錄中的所有檔案到D:/msys/bin,提示是否要覆寫sh.exe的時候,選擇是。

到“D:/msys/ postinstall”目錄下執行pi.bat,在出現的提示中輸入n回車後,按任意鍵退出即可。 如果你不輸入N的話就輸入兩次Y,最後把c:/msys/mingw 輸入即可 。如果輸入N的話,要打開D:/msys/etc/fstab.sample把它重命名為fstab 并用nodepad打開編輯,把c:/mingw /mingw 改成d:/msys/mingw即可。最後配置PATH,在系統的環境配置中添加d:/msys/bin。

2.安裝MinGW

同樣是到http://sourceforge.net/project/showfiles.php?group_id=2435下載下傳檔案:

binutils-2.17.50-20060824-1.tar.gz

gcc-core-3.4.5-20060117-1.tar.gz

gcc-g++-3.4.5-20060117-1.tar.gz

w32api-3.9.tar.gz

mingw-runtime-3.12.tar.gz

把它們全部解壓到D:/msys/mingw。

或者直接下載下傳MinGW.exe檔案選最小安裝即可 下載下傳好按步驟安裝,選擇安裝的元件最好都選上啦。不過安裝目錄一定要選擇d:/msys/mingw 别的路徑它找不到。

3.修改“msys.bat”

用文本編輯器打開D:/msys/msys.bat, 安裝微軟的Visual Studio或是Visual C++。把下面一行加到msys.bat的最前面,把路徑替換成機器上vcvars32.bat實際存在的路徑,比如我的在“c:/Program Files/Microsoft Visual Studio .NET 2005/Vc/bin”,于是就添加:

call "c:/Program Files/Microsoft Visual Studio .NET 2005/Vc/bin/vcvars32.bat"

4.svn

http://tortoisesvn.net/downloads下載下傳TortoiseSVN,安裝好之後,在d:/ffmpeg右擊,選擇SVN check out,

第一行目錄選擇svn://svn.mplayerhq.hu/ffmpeg/trunk 然後确定。這樣就得到最新的SVN。

但由于SVN隻針對UNIX系統做的。是以無法GCC對最新的SVN編譯。會報錯:192 PR command not found.

解決方法一:不用最新的SVN版本。因為即使用了最新的MinGW5.1.exe還是有這樣的錯誤。 windows下還是無法編譯最新的SVN代碼。我這有07年3月的版本是可以用的。需要的可以索要。

解決方法二:下載下傳

coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2 Mirror

并且解壓縮出來,把bin下的内容拷貝到MSYS下,因為MSYS缺少COREUTILS是以報錯 PR command not found。

改完後你會發現可以編譯了,但是make的時候又出錯了。怎麼辦呢?去sourceforge網站上

http://sourceforge.net/project/showfiles.php?group_id=2435      

下載下傳make-3.81-MSYS-1.0.11-2.tar.bz2,改名并替換掉原來的make.exe檔案即可 (搜尋了一天時間,提供出來免得大家走歪路!)

這樣就可以用最新的SVN版本來進行編譯了。

5.測試

打開msys.bat,輸入cd空格/d/ffmpeg,路徑變化後,然後輸入./configure空格--enable-memalign-hack,回車!

如果不報錯,那麼再輸入make.

6.第三方插件

根據以上5個步驟就已經可以得到ffmpeg.exe了,但沒有加入聲音,以及對其他格式支援的也不夠好。

現在開始加入lame,就是聲音。到http://oss.netfarm.it/mplayer-win32.php下載下傳已經編譯的mp3lame庫(可以向我索要),解壓出來後分别拷貝到你安裝好的mingw目錄下的相對目錄裡。在傳遞配置參數時要加入“--enable-libmp3lame” ,即使用以下指令配置:

./configure --enable-static --disable-shared --enable-memalign-hack --enable-libmp3lame

然後加入mp4的格式的支援:

然後加入3GP的支援:

編譯的時候加上--enable-amr_nb --enable-amr_wb參數就行,根據編譯系統的提示,是以我們得下載下傳一

些編譯3gp所需得檔案。

http://www.3gpp.org/ftp/Specs/archive/26_series/26.204/26204-510.zip

解壓以後把裡面的檔案都拷貝到libavcodec/amrwb_float

http://www.3gpp.org/ftp/Specs/archive/26_series/26.104/26104-510.zip

解壓以後把裡面的檔案都拷貝到libavcodec/amr_float

----------------------------------------------------------------------------------------------

cd /C/ffmpeg

./configure --enable-memalign-hack

1. 編譯x264

./configure --prefix=d:/mingw

make

make install

2. 編譯ffmpeg

./configure --enable-shared --disable-static --enable-memalign-hack --enable-x264 --enable-gpl --prefix=d:/ffmpeg

make 

make install

make install