ffmpeg編譯(生成Windows或Win32平臺dll, lib)
介紹:本文簡要介紹通過cygwin環境來編譯生成ffmpeg。
包括解碼組件libfaad與libopencore-amrnb的編譯。
1)安裝msys + mingw環境
具體安裝過程可以看網上教程
我用的是:http://code.google.com/p/msys-cn/
假設裝在d:/msys
如果需編譯libfaad,還需裝msysDTK-1.0.1.exe
需在msys.bat文件首行加入:call "D:/Program Files/Microsoft Visual Studio 8/VC/bin/vcvars32.bat"
2)下載最新ffmpeg源碼
我用的是:ffmpeg-export-2009-12-22版(即:SVN-r20910-snapshot)
解壓縮至e:/ffmpeg_r20910_win32
3)修改e:/ffmpeg_r20910_wm/common.h文件,如下:
#ifndef av_cold
//GCC on MinGW has bug on "cold" feature
//#if (!defined(__ICC) || __ICC > 1110) && AV_GCC_VERSION_AT_LEAST(4,3)
#if 0
3)按需下載各解碼組件,如
faad2-2.7.zip? (AAC解碼組件)
opencore-amr-0.1.2.tar.gz (amr解碼組件)
新建e:/ffmpeg_r20910_wm/codecs目錄,將組件放入其中
4)編譯各解碼組件
4.1)libfaad
解壓縮faad2-2.7.zip,依次執行
autoreconf -ivf
./configure --enable-static --disable-shared --prefix=/mobile
make (編譯時出錯two or more data types什么的,不用管,libfaad.a已經生成)
make install
4.2)libopencore-amr
解壓縮opencore-amr-0.1.2.tar.gz,依次執行
./configure --enable-static --disable-shared --prefix=/mobile
make
make install
5)編譯ffmpeg
#!/bin/sh
./configure --enable-memalign-hack --prefix=/mobile --enable-libfaad --enable-libopencore-amrnb --enable-libopencore-amrwb --disable-static --enable-shared --enable-gpl --enable-version3 --disable-zlib --disable-ipv6 --disable-debug --disable-ffplay --disable-ffmpeg --disable-ffserver --disable-encoders --disable-network --disable-muxers --extra-ldflags="-L/mobile/lib" --extra-cflags="-I/mobile/include"
此命令太長,可以將命令寫入到sh文件(如doConfigureWin32.sh)來執行。(出現libvdpau>=0.2提示,不用管)
make
make install
保留類似于avcodec-52.dll avcodec-52.lib的文件,刪除其它。