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