接下來安裝MSys,地址是:http://www.mingw.org/wiki/msys。想要成功編譯出ffmpeg,需要提前安裝的依賴庫非常非常多,而且有些還非常復雜。現在我們開始一個個嘗試編譯安裝。
從這個鏈接下載:http://yasm.tortall.net/Download.html;選擇其中的win32類別的,下載完成后文件名為:yasm-1.2.0-win32.exe。將這個文件重命名為yasm.exe并拷貝到C:/Windows/system32或者D:/Mingw/Bin中。
zlib是用于數據壓縮的一個開源庫,地址是:http://www.zlib.net/。我們將源文件zlib-1.2.8.tar下載成功后拷貝到D:/MSYS1.0/home/Administrator中并解壓縮。隨后進入msys,依次輸入以下命令:
cd zlib-1.2.8
make -f win32/Makefile.gcc
編譯完成后,在zlib-1.2.8生成了zlib1.dll、libz.a文件。然后調用以下命令將相關文件復制到Mingw響應的目錄:
cp -iv zlib1.dll /mingw/bin
cp -iv zconf.h zlib.h /mingw/include
cp -iv libz.a /mingw/lib
檢查相關目錄,相應的文件已經成功復制過去了。
下載地址是:http://libgsm.sourcearchive.com/。下載完成的文件為libgsm_1.0.13.orig.tar,將其拷貝到D:/MSYS1.0/home/Administrator并解壓。在msys中進入gms目錄后,輸入以下命令:
make(這一步會出現fchmod和fchown的編譯錯誤,無視之,因為我們只需要libgsm.a庫文件即可)
mkdir /mingw/include/gsm
cp inc/gsm.h /mingw/include/gsm
cp lib/libgsm.a /mingw/lib
同樣,檢查相關目錄,頭文件gsm.h和庫文件libgsm.a已經成功復制。
下載地址:http://sourceforge.net/PRojects/lame/files/lame/。將壓縮包在與上面幾個庫相同的位置解壓,msys進入后執行:
./configure --prefix=/mingw --enable-expopt=full
make
make install
檢查相關目錄,/mingw/include下新建了一個lame存放頭文件,而/mingw/lib中已經包含了libmp3lame.a、libmp3lame.dll.a、libmp3lame.la三個庫文件,說明編譯成功。
下載地址為http://xiph.org/downloads/。安裝方法同上面類似,即解壓,在msys中執行
./configure --prefix=/mingw
make
make install
faac主要用于音頻的編解碼,下載地址http://www.audiocoding.com/downloads.html。將faac-1.28.tar解壓。隨后需要對文件進行一些小修改:
在目錄中新建一個文件名為faac-1.28.diff,內容如下:
[plain] view plain copypatch -p1 < faac-1.28.dll
./bootstrap
./configure --prefix=/mingw
make
make install
這樣編譯可以成功。
下載地址:http://www.xvid.org/。解壓,進入/xvidcore/build/generic目錄,執行
./configure --prefix=/mingw
隨后,需要將該目錄下的幾個文件(config/config.status/configure/configure.in)中含有的“-mno-cygwin”字符刪掉,否則會出現編譯錯誤。
然后執行
make
make install
cp -iv /=build/xvidcore.dll.a /mingw/lib/libxvidcore.dll.a
檢查目標文件,libxvidcore.dll.a已經成功復制。
下載地址http://www.videolan.org/developers/x264.html。與上面的庫類似,解壓,進入目錄,執行下列命令“
configure --prefix=/mingw --enable-w32thread --enable-shared --disable-opencl
make
make install
SDL是可以選裝的部分,如果不安裝SDL,我們依然可以生成ffmpeg.exe和ffprob.exe,但是不能生成ffplay.exe。
安裝SDL的過程比較簡單,從http://www.libsdl.org/download-1.2.php下載SDL-devel-1.2.15-mingw32.tar。解壓后,需要將makefile做一些小修改,將CROSS_PATH路徑改為CROSS_PATH := /mingw。在msys命令行中執行:
make cross
結束后,在mingw的include目錄分別生成了SDL目錄存放頭文件,在lib目錄存放庫文件。3、編譯ffmpeg1、首先從Github上https://github.com/FFmpeg/FFmpeg下載ffmpeg源碼ffmpeg-2.8.2;2、與編譯依賴庫類似,進入代碼目錄,依次執行下列命令:./configure --prefix=/mingw --enable-shared --disable-static --enable-gpl --enable-nonfree --enable-postproc --enable-avfilter --enable-runtime-cpudetect --enable-memalign-hack --enable-bzlib --enable-libfaac --enable-libgsm --enable-libmp3lame --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-zlib --disable-debug --enable-pthreads
但是系統會提示pr: command not found。我們需要在http://code.google.com/p/mingw-lib/downloads/detail?name=coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2&can=2&q=下載 coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2這個文件,并將bin目錄下的pr.exe復制到/msys1.0/bin目錄下。系統提示找不到libxvid,所以暫時把"--enable-libxvid"去掉,重新configure,成功。下面執行:
make
make install
執行成功,在/mingw/bin文件夾下我們成功看到了編譯出來的dll以及可執行程序!新聞熱點
疑難解答