Windows系统使用minGW+msys 编译ffmpeg 0.5的全过程详述

    技术2025-09-05  81

    一.环境配置1.下载并安装 MinGW-5.1.4.exe (http://jaist.dl.sourceforge.net/sourcef … -5.1.4.exe),安装时选中 g++, mingw make。建议安装到c:/mingw.2.下载并安装 MSYS-1.0.11-rc-1.exe (http://jaist.dl.sourceforge.net/sourcef … 1-rc-1.exe),安装结束时会以命令行方式提示输入MinGW的安装路径,输入c:/MinGW, msys建议安装到c:/msys, 默认是c:/msys-1.0, 可以手动改为c:/msys。3.下载gcc-4.3.2-tdm-1-core.zip (http://ftp3.ie.freebsd.org/pub/sourcefo … 1-core.zip),解压后覆盖到 c:/mingw 安装目录. minGW-5.1.4 默认安装的版本是3.4.5.

    二.下载 ffmpeg 0.5 (http://ffmpeg.mplayerhq.hu/releases/ffmpeg-0.5.tar.bz2)1.解压后拷贝到c:/msys/home/目录下。 (C:/msys/home/ffmpeg-0.5)2.用文本编辑器打开源码目录下的 configure (C:/msys/home/ffmpeg-0.5/configure) 文件,搜索两处 pr 全部替换为 print。3.运行c:/msys.bat,进入c:/msys/home/ffmpeg-0.5源码目录,创建release目录 (madir release) 和 debug 目录 (mkdir debug) 目录,视需求编译 release 或 debug 版本:4. 进入c:/msys/home/ffmpeg-0.5/release 目录下执行: ../configure --disable-static --enable-shared --enable-small --enable-memalign-hack --enable-gpl --extra-cflags=-I/local/include --extra-ldflags=-L/local/lib5.或进入 c:/msys/home/ffmpeg-0.5/debug 目录下执行: ../configure --disable-static --enable-shared --enable-memalign-hack --enable-gpl --extra-cflags=-I/local/include --extra-ldflags=-L/local/lib --enable-debug=3 --disable-optimizations --disable-stripping6.make7.make install

    注:参数解释a.--extra-ldflags=-L<prefix>/lib --extra-cflags=-I<prefix>/include

          如果你把库安装在了非gcc的缺省寻找路径,你必须向FFmpeg的configure脚本传递这些路径信息。b.--enable-small

           optimize for sizec.--enable-nonfree       Yes, FFmpeg recently changed the --enable-libfaac to require --enable-nonfree due to some inconsisent licensingdeclarations in the faac source. You can also workaround this by not enabling AAC in the wizard. They have anative AAC encoder in progress, but it is not ready and enabled yet.

    三.支持x264 (--enable-libx264)1. 下载 x264 原始码(http://www.imagemagick.org/download/delegates/ffmpeg /x264-1024283.tar.bz2) (x264-snapshot-20100115-2245.tar.bz2这个源码编译不过,不知道为什么,有时间仔细研究研究。)2.解压后拷贝到c:/msys/home/目录下 (c:/msys/home/x264-1024283)3.进入c:/msys/home/x264-1024283 目录下执行: ./configure --prefix=/usr/local --enable-shared --disable-asm4.make5.make install

    四.支持xvid (--enable-libxvid)1.下载 xvid 原始码(http://www.imagemagick.org/download/delegates/ffmpeg/xvidcore-1.2.2.tar.bz2)2.解压后拷贝到c:/msys/home/目录下 (c:/msys/home/xvidcore)3.进入c:/msys/home/xvidcore/build/generic 目录下执行: ./configure --prefix=/usr/local --enable-shared4.make5.make install

    五.支持MP3 (--enable-libmp3lame)1.下载 MP3 原始码(http://www.imagemagick.org/download/delegates/ffmpeg/lame-398-2.tar.gz)2.解压后拷贝到c:/msys/home/目录下 (c:/msys/home/lame-398-2)3.进入c:/msys/home/lame-398-2 目录下执行: ./configure --prefix=/usr/local --enable-shared4.make5.make install

    六.支持FAAC (--enable-libfaac)1.下载 FAAC 原始码(http://www.imagemagick.org/download/delegates/ffmpeg/faac-1.28.tar.bz2)2.解压后拷贝到c:/msys/home/目录下 (c:/msys/home/faac-1.28)3.进入c:/msys/home/faac-1.28 目录下执行./bootstrap4../configure --prefix=/usr/local --enable-shared --without-mp4v2

    (FAAC 无需编入 mp4 容器支持,封入 mp4 容器的工作由 ffmpeg 负责)5.make6.make install

    七.支持FAAD (--enable-libfaad)1.下载 FAAD 原始码(http://www.imagemagick.org/download/delegates/ffmpeg/faad2-2.7.tar.bz2)2.解压后拷贝到c:/msys/home/目录下 (c:/msys/home/faad2-2.7)3.进入c:/msys/home/faad2-2.7 目录下执行 autoreconf -vif注:编译FAAD需要使用autoreconf, 下载msysDTK-1.0.1.exe 安装到c:/msys.4../configure --prefix=/usr/local --enable-shared --without-mp4v25.make6.make install

    八.支持gsm (--enable-libgsm)1.下载 gsm 原始码(http://www.imagemagick.org/download/delegates/ffmpeg/gsm-1.0.13.tar.gz)2.解压后拷贝到c:/msys/home/目录下 (c:/msys/home/gsm-1.0-pl13)3.进入c:/msys/home/gsm-1.0-pl13 目录下执行: ./configure --prefix=/usr/local --enable-shared4.make注:make编译出错(make: *** [bin/toast] Error 1), 忽视这个错误,不影响。5.cp c:/msys/home/gsm-1.0-pl13lib/libgsm.a  c:/msys/local/lib6.cp c:/msys/home/gsm-1.0-pl13lib/inc/gsm.h  c:/msys/local/include

    九.libamr-nb (--enable-libamr-nb)1.下载 libamr-nb 原始码(http://ftp.penguin.cz/pub/users/utx/amr/amrnb-7.0.0.2.tar.bz2)2.解压后拷贝到c:/msys/home/目录下 (C:/msys/home/amrnb-7.0.0.2)3.下载26104-700.zip (http://www.3gpp.org/ftp/Specs/archive/2 … 04-700.zip), 将这个zip包放到c:/msys/home/amrnb-7.0.0.2 目录下面4.下载unzip-5.51-1-bin.zip (http://downloads.sourceforge.net/gnuwin … -1-bin.zip),解压后将unzip.exe到/mingw/bin下。5.进入c:/msys/home/amrnb-7.0.0.2 目录下执行: ./configure --prefix=/usr/local --enable-shared6.make7.make install

    十.libamr-wb (--enable-libamr-wb)1.下载 libamr-wb 原始码(http://ftp.penguin.cz/pub/users/utx/amr/amrwb-7.0.0.3.tar.bz2)2.解压后拷贝到c:/msys/home/目录下 (C:/msys/home/amrwb-7.0.0.3)3.下载26204-700.zip (http://www.3gpp.org/ftp/Specs/archive/2 … 04-700.zip), 将这个zip包放到c:/msys/home/amrwb-7.0.0.3 目录下面4.下载unzip-5.51-1-bin.zip (http://downloads.sourceforge.net/gnuwin … 工作,这里就不用做了)5.进入c:/msys/home/amrwb-7.0.0.3 目录下执行: ./configure --prefix=/usr/local --enable-shared6.make7.make install

    十一.最后编译ffmpeg 0.51.进入c:/msys/home/ffmpeg-0.5/release2. ../configure --disable-static --enable-shared --enable-small --enable-memalign-hack --enable-gpl --extra-cflags=-I/local/include --extra-ldflags=-L/local/lib --enable-libgsm --enable-libfaac --enable-libfaad --enable-libmp3lame --enable-nonfree --enable-libxvid --enable-libx264 --enable-libamr-nb --enable-libamr-wb3.make4.make install

     

    十二. 编译出lib 文件

    以上方式默认不能编译出 .lib文件。如果希望在vc++调用ffmpeg 库,要用到相应的 .lib 文件。可以用以下方式编译。

     

    1.在msys.bat开头添加一句话:call "C:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/bin/VCVARS32.BAT"

    根据自己vc7实际路径修改以上路径。在重复步骤十一。

    先写到这里,在以后的应用实践中不断补充。

    2 Reply by 晕来晕去 2010-09-08 10:51:27

    晕来晕去AdministratorOffline Registered: 2010-05-26Posts: 984

    Re: Windows系统使用minGW+msys 编译ffmpeg 0.5的全过程详述 (转)

    http://hi.baidu.com/zorru/blog/item/ea3 … ae2cf.html如何编译FFMPEG(WIN,MINGW+MSYS)

    如何编译FFMPEG

    一:配置1:install MinGW 5.0.2Download: http://prdownloads.sf.net/mingw/MinGW-5 … e?download

    2:install MSYS 1.0.1Download: http://prdownloads.sf.net/mingw/MSYS-1. … e?download

    3:install MSYSDTK 1.0.1Download: http://prdownloads.sf.net/mingw/msysDTK … e?download

    4:install dos2unix.exeDownload: http://www.bastet.com/uddu.zipextract, and place a copy of dos2unix.exe in C:/mingw/bin

    5:install nasm.exeDownload: http://prdownloads.sourceforge.net/nasm … p?downloadextract, rename nasmw.exe to nasm.exe and place a copy in C:/mingw/bin

    二:装载库1:libogg 1.1.3download: http://downloads.xiph.org/releases/ogg/ … 1.3.tar.gz./configure --disable-sharedmakemake install

    2:vorbis 1.1.2download: http://downloads.xiph.org/releases/vorb … 1.2.tar.gz./configure --disable-oggtest --disable-shared--with-ogg-includes=/usr/local/include--with-ogg-libraries=/usr/local/libmakemake install

    3:libfaac - faac-snapshot-20060329download: cvs -z3 -d:pserver:anonymous at cvs.audiocoding.com:/cvsroot/faac co -P faacdos2unix configure.in./bootstrap./configure --without-mp4v2makemake install

    4:libfaad - faad2-15092004.tar.gzdownload: http://www.audiocoding.com/modules/mydo … amp;lid=19modify line 308 of libfaad/common.h from:#elif (defined(__i386__) && defined(__GNUC__))to#elif (defined(__i386__) && defined(__GNUC__) && !defined(__MINGW32__))./bootstrap./configure --with-drmcd libfaadmakemake install

    5:a52 - a52dec-0.7.5-cvsdownload: cvs -z3 -d:pserver:anonymous at cvs.sourceforge.net:/cvsroot/liba52 co -P liba52./configuremakemake install

    6:mp3lame - lame-3.97b2download: cvs -z3 -d:pserver:anonymous at cvs.sourceforge.net:/cvsroot/lame co -P lame./configure --disable-sharedmakemake install

    7:libdts - libdts-0.0.2./configuremakemake install

    8:xvid - xvidcore-1.1.0download: http://downloads.xvid.org/downloads/xvi … 1.0.tar.gzcd build/generic./configure --prefix=c:/mingw --disable-sharedmakemake installrm /c/mingw/lib/xvidcore.dllmv /c/mingw/lib/xvidcore.a /c/mingw/lib/libxvidcore.a

    9:libx264 - x264-snapshot-20060416-2245ftp://ftp.videolan.org/pub/videolan/x264/snapshots/./configuremakemake install

    10:ffmpeg - ffmpeg-cvs-20060417Download lastest version using cvs:cvs -z3 -d:pserver:anonymous at mplayerhq.hu:/cvsroot/ffmpeg co -P ffmpeg./configure --enable-faac --enable-faad --enable-a52 --enable-mp3lame--enable-dts --enable-xvid --enable-x264 --enable-vorbis--enable-libogg --enable-gpl --enable-pp --enable-mingw32--enable-memalign-hack --disable-debug--extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/libmakemake install

    附言:

    (关于编译器的问题)

    1.可能没有PR.EXE,(configure时候会用到这个工具)

    A:下载unixutils,把其中的pr.exe拷到bin下面.下载地址 http://unxutils.sourceforge.net/

    B:下载coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2,把其中的pr.exe拷到bin下面

    2.可能要安装bash-3.1.

    3.LIB库的产生:

    msys.bat的最前面,把路径替换成机器上vcvars32.bat实际存在的路径,机器上:"D:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/bin",添加:call "D:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/bin/vcvars32.bat"

     

    FFmpegwindows下的编译,搭建mingw+msys环境 [转载,有改动]

    ffmpeg, windows, 编译, mingw, msys

    本帖最后由 终有时 于 2010-9-14 07:40 PM 编辑 前段时间编译了ffmpeg,由于需要生成在windows下的可执行文件,所以采用的是mingw+msys的环境。这个环境可以在windows下模拟一个linux终端,对linux下的makefile项目进行编译,从而生成windows下的可执行文件和动静态链接库。      对环境的搭建费了好大功夫,百度出来的文章基本上都是几年前的,大家转来转去,就那一个版本,还很简略,现在已经跟不上时代的步伐。好在终于找到一篇比较新的文章,内容非常详细,根据它的步骤一步一步来就可以正常编译ffmpeg,现在将这篇文章转载让大家看看。      我根据此文章搭建好的环境压缩放在了上,下载了之后解压即可使用,免去了大家下载的麻烦,不过我没有做对各种库的添加支持,就是说我的环境已经做完了前面的11步,需要添加支持的直接从后面开始就可以了!注:我把mingw放在了msys/1.0/目录下。mingw+msys环境下载地址:      http://download.csdn.net/source/2634858      以下内容转自《MinGW下简单编译FFmpeg》,转载时有改动。      原文地址:http://jeremiah.blog.51cto.com/539865/126804      由于原文中的资源下载链接现在大部分都已失效,有些资源还比较难找,本人就自己搜集下载并上传到了上,可以直接下载。 编译环境要求: Msys: 1.0.10MinGW:5.1.4make: 3.81gcc: 4.3.2w32api: 3.13SDL: 1.2.1MinGW-Runtime: 3.15一步步的来吧:1. Minimal SYStem (MSYS) 安装下载MSYS-1.0.10.exe并安装:下载地址:http://download.csdn.net/source/2635337安装到c:/msys/1.0,临近最后会出现个dos窗口,最后一句为:Do you wish to continue with the post install? [yn ]输入n,结束安装。2. MSYS DTK (Developer Tool Kit) 安装下载msysDTK-1.0.1.exe并安装:下载地址:http://download.csdn.net/source/2635339安装到C:/msys/1.0,其他默认。3. 升级下MSYS下载msysCORE-1.0.11-bin.tar.gz下载地址:http://download.csdn.net/source/2694777解压这个文件,将bin/mount.exe, msys-1.0.dll, ps.exe三个文件copyc:/msys/1.0/bin下面覆盖下。4. 升级下MSYSBASH下载bash-3.1-MSYS-1.0.11-snapshot.tar.bz2下载地址:http://download.csdn.net/source/2635711解压这个文件,将bin/bash.exe, sh.exe两个文件copyc:/msys/1.0/bin5. MinGW 安装下载mingw-5.1.4.exe并安装:下载地址:http://download.csdn.net/source/2635735安装,选择download and install,下两步之后选择Candidate,不要选Current。选择MinGW base tools (autoselected), g++ compiler, MinGW make; 安装路径为c:/msys/1.0/mingw。等待下载完了安装吧。O(∩_∩)O……5.2. 还原binutils-2.16.91很多朋友需要用ffmpegdll来做开发。编译的时候是用./configure --enable-memalign-hack --disable-static --enable-shared。但是最终编译出来make install或者将相关的dll拷贝得到ffmepg同级目录后,执行ffmpeg或者ffplay报错:应用程序正常初始化失败经过google了许多资料,发现是binutils的版本问题。chinavideo论坛上面有的朋友说是mingw的版本问题,使用MinGW-3.1.0-1.exe会解决。Jeremiah经过试验,发现不大行,从报错的结果来看,MinGW-3.1.0-1.exe没有自带binutils。还是要自己安装。而MinGW-5.1.4.execandidate选项会默认给我们安装binutils-2.18.50-20080109-2.tar.gz。而这个binutils会最终导致应用程序正常初始化失败的错误。Jeremiah和网友deepocean测试了nbinutils的版本,最后发现binutils-2.16.91-20050827-1.tar.gz是最适合的。其他的,ms不行!下载地址:http://download.csdn.net/source/2635739解压到c:/msys/1.0/mingw,覆盖原来的。6. 配置fstabcopy C:/msys/etc/fstab.samplefstab,确保以下对应:#Win32_Path             Mount_Pointc:/msys/1.0/mingw         /mingw原始环境就搭建好了。可以启动桌面上行的MSYS了。7. 升级make下载make-3.81.90-msys.rar下载地址:http://download.csdn.net/source/2635746解压,复制make.exec:/msys/1.0/bin下,覆盖原来的makeMSYS中输入make -v显示的版本为3.818. 升级gcc下载gcc-4.3.2-tdm-1-core.zip下载地址:http://download.csdn.net/source/2635749解压到c:/msys/1.0/mingw,覆盖原来的。MSYS中输入gcc -v显示的版本为4.3.29. 升级W32API下载w32api-3.13-mingw32-dev.tar.gz下载地址:http://download.csdn.net/source/2635754解压到c:/msys/1.0/mingw,覆盖原来的。10. 添加SDL下载SDL-devel-1.2.11-mingw32.tar.gz下载地址:http://download.csdn.net/source/2635755解压该软件包;lib下的所有文件复制到C:/msys/1.0/mingw/libinclude下的所有文件复制到C:/msys/1.0/mingw/includebin下的i386-mingw32msvc-sdl-config复制到C:/msys/1.0/mingw/bin,并重命名为sdl-configbin下的SDL.dll复制到C:/msys/1.0/mingw/bin10.2 添加pr.exe下载coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2:下载地址:http://download.csdn.net/source/2635758解压,拷贝binpr.exec:/msys/1.0/bin下。整体上的编译环境就搭建好了。11. 编译FFmpegffmpeg下载地址:0.5版本:http://download.csdn.net/source/26357900.5.1版本:http://download.csdn.net/source/26357910.5.2版本:http://download.csdn.net/source/26357950.6版本:http://download.csdn.net/source/2635797copyc:/msys/1.0/home/your_name下面(此路径可根据自己喜好)。解压:tar xjvf ffmpeg-(根据版本).tar.bz2vi一个文件ffmpeg-conf.sh,内容为:SDL_CFLAGS=/mingw/includeSDL_LIBS=/mingw/lib./configure --enable-ffplay --enable-memalign-hack执行./ffmpeg-conf.sh执行make,应该不会有错误的。执行ffplay filename就可以播放了。12. 写在编译完之后我们只是对ffmpeg进行了简单的编译,如果需要其他的功能还是去google吧。编译完了应该会出三个可执行文件:ffmpeg.exe, ffplay.exe, ffserver.exe, 但是我编译完了只有前两个,没有ffserver.exe。因为MinGW里面少了关于ffserver用的网络的相关的包。参考http://bbs.chinavideo.org/viewthread.php?tid=95单独使用ffplay,需要将c:/msys/1.0/mingw/bin/SDL.dllffplay.exe放到相同的目录下。Ffmpeg工程组的网站不错http://www.ffmpeg.com.cn,它的论坛[url=http://bbs.chinavideo.org/index.php[/url]]http://bbs.chinavideo.org/index.php[/url]里面应该有不少关于FFmpeg的东西。13. Msys的编辑以前很不喜欢这个系统,因为不能跟cmd或者其他linux的命令行一样复制粘贴,去网上查了一下,发现可以的其实,只不过方式不一样。复制:选中一段文字,就将这段文字复制到剪贴板。粘贴:shift+鼠标左键,就将剪贴板的内容粘贴到命令行了。

    14. libamr库加入首先下载http://gd.tuwien.ac.at/gnu/mingw/wget-1.9.1-mingwPORT.tar.bz2,解压wget.exe/mingw/bin下。下载http://downloads.sourceforge.net/gnuwin32/unzip-5.51-1-bin.zip,解压bin/unzip.exe/mingw/bin下。下载两个库:amrnbhttp://ftp.penguin.cz/pub/users/utx/amr/amrnb-7.0.0.2.tar.bz2amrwbhttp://ftp.penguin.cz/pub/users/utx/amr/amrwb-7.0.0.3.tar.bz2分别解压到~下面。(~/home/yourname)。下载http://www.3gpp.org/ftp/Specs/archive/26_series/26.104/26104-700.zip,将这个zip包放到~/amrnb-7.0.0.2下面。下载http://www.3gpp.org/ftp/Specs/archive/26_series/26.204/26204-700.zip,将这个zip包放到~/amrwb-7.0.0.3下面。~/amrnb-7.0.0.2~/amrwb-7.0.0.3下面分别执行:./configure --disable-sharedmakemake install其中,--disable-shared将产生静态库,如需要动态库,则不要加这个选项。进入ffmpeg-0.5目录,保存以下脚本为ffmpeg-conf02.shSDL_CFLAGS=/mingw/includeSDL_LIBS=/mingw/lib./configure --enable-ffplay --enable-memalign-hack --enable-libamr-nb --enable-libamr-wb --enable-nonfree --extra-ldflags=-L/usr/local/lib --extra-cflags=-I/usr/local/include执行以下脚本:rm -rf config.*sh ffmpeg-conf02.shmake其中rm -rf config.*是为了确保config.h文件能被重写。如果不删除而是覆盖的话,可能会有不能写入覆盖的情况,所以,每次重新从configure开始的编译的话,还是执行下这个rm命令把configure产生的文件都干掉。这样编译出来的ffplay就可以播放3gp文件了。(附件提供)15. libmp3lame库加入首先到lame-3.97.tar.gz (不要最新的版本3.98.2ms有些问题,说audio专码的buffer不够)http://sourceforge.net/projects/lame/files/lame/lame-3.97.tar.gz/download解压到~下。执行以下脚本:./configure --disable-sharedmakemake install进入ffmpeg-0.5目录,保存以下脚本为ffmpeg-conf03.shSDL_CFLAGS=/mingw/includeSDL_LIBS=/mingw/lib./configure --enable-ffplay --enable-static --disable-shared --enable-memalign-hack --enable-libamr-nb --enable-libamr-wb --enable-libmp3lame --enable-nonfree --extra-ldflags=-L/usr/local/lib --extra-cflags=-I/usr/local/include 执行以下脚本:rm -rf config.*sh ffmpeg-conf03.shmakemake后就可以使用ffmpegMP3的转码了ffmpeg -i d:/video/01.avi -vcodec mpeg2video -acodec libmp3lame 01.mpg16. libfaaclibfaad库加入下载faacfaad的源码:http://sourceforge.net/projects/faac/files/faac-src/faac-1.28.tar.bz2/downloadhttp://sourceforge.net/projects/faac/files/faad2-src/faad2-2.7.tar.bz2/download分别解压到~下。注释掉faad2-2.7/frontend/main.c的第34行:分别执行:./bootstrap./configure --disable-shared --without-mp4v2makemake install进入ffmpeg-0.5目录,保存以下脚本为ffmpeg-conf04.shSDL_CFLAGS=/mingw/includeSDL_LIBS=/mingw/lib./configure --enable-ffplay --enable-static --disable-shared --enable-memalign-hack --enable-libamr-nb --enable-libamr-wb --enable-libmp3lame --enable-libfaac --enable-libfaad --enable-gpl --enable-nonfree --extra-ldflags=-L/usr/local/lib --extra-cflags=-I/usr/local/include执行以下脚本:rm -rf config.*sh ffmpeg-conf04.shmakemake后就ffmpeg就可以使用faacfaad了。ffmpeg -i d:/video/02.mp3 -acodec libfaac 01.aac17. 修改Msys的字体及背景色用文本编辑器打开C:/Msys/msys.bat,如下:if "x%MINGW32BGCOLOR%" == "x" set MINGW32BGCOLOR=Blackif "x%MINGW32FGCOLOR%" == "x" set MINGW32FGCOLOR=Yellowstart rxvt -backspacekey     -sl 2500 -fg %FGCOLOR% -bg %BGCOLOR% -sr -fn "Courier New-20" -tn msys -geometry 80x30 -e /bin/sh --login -i其中上面的BlackYellow都是颜色。下面的-fn后面跟"字体-大小"80x30为每行80个字符,共显示30行。这都是Jeremiah喜欢的设置。18. x264编码支持下载x264源码需要用gitgit clone git://git.videolan.org/x264.git或者去http://www.videolan.org/developers/x264.html中,选You can browse the source on-line,点选最新的snapshotJeremiah测试用的是http://git.videolan.org/?p=x264.git;a=snapshot;h=5d75a9bd5b942392c4ab64156a266eed64c0793f;sf=tgz将源码解压到~下,执行./configure --disable-asm --enable-sharedmakemake install进入ffmpeg-0.5目录,保存以下脚本为ffmpeg-conf04.sh#this is enable amr mp3 aac aad x264SDL_CFLAGS=/mingw/includeSDL_LIBS=/mingw/lib./configure /                --enable-ffplay /                --enable-static /                --disable-shared /                --enable-memalign-hack /                --enable-libamr-nb /                --enable-libamr-wb /                --enable-libmp3lame /                --enable-libfaac /                --enable-libfaad /                --enable-gpl /                --enable-nonfree /                --enable-libx264 /                --extra-ldflags=-L/usr/local/lib /                --extra-cflags=-I/usr/local/include执行以下脚本:rm -rf config.*sh ffmpeg-conf05.shmakemake成功后,使用x264,如下:$ ffmpeg -i d:/01.avi -f psp -acodec libfaac -ab 94k -vcodec libx264 -cqp 28 -coder 1 -refs 3 -deblockalpha 1 -deblockbeta -1 -me_method umh -subq 9 -me_range 32 -trellis 2 -chromaoffset -2 -nr 0 -bf 2 -b_strategy 1 -bframebias 0 -directpred 3 -g 250 -i_qfactor 1.3 -b_qfactor 1.4 -flags2 +bpyramid+wpred+mixed_refs+8x8dct -er 2 -s 480x320 d:/01.mp4参考网址:http://wiki.videolan.org/Win32CompileMSYS[url=http://www.cnblogs.com/sunlin886/archive/2007/03/18/678863.html[/url]]http://www.cnblogs.com/sunlin886/archive/2007/03/18/678863.html[/url]http://hi.baidu.com/yeyingxian/blog/item/a03576d966b2892910df9b28.html本文出自 Jeremiah的流媒体乐园 博客,出处http://jeremiah.blog.51cto.com/539865/126804转载时有改动。

     

    发表于 2010-8-29 11:38 PM | 只看该作者

     

     

    搭建编译 FFmpegMinGW+MSYS 环境,只需敲两三下键盘就能搞定。http://www.ffmpegwindows.org/batchs

    附件: 您需要登录才可以下载或查看附件。没有帐号?注册

    FFVCL - FFmpeg for Delphi VCL Components / C++Builder / FFOCX - ActiveX OCX Controls / VB6 / VC6 / ...

     

     

    16. libfaaclibfaad库加入我在这里进入 faad2-2.7 这个目录执行到make时出错.   Administrator@282EEA0CCBC1410 ~/faad2-2.7$ makemake  all-recursivemake[1]: Entering directory `/home/Administrator/faad2-2.7'Making all in libfaadmake[2]: Entering directory `/home/Administrator/faad2-2.7/libfaad'if /bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I..    -iquote ../include -g -O2 -MT bits.lo -MD -MP -MF ".deps/bits.Tpo" /          -c -o bits.lo `test -f 'bits.c' || echo './'`bits.c; /        then mv ".deps/bits.Tpo" ".deps/bits.Plo"; /        else rm -f ".deps/bits.Tpo"; exit 1; /        figcc -DHAVE_CONFIG_H -I. -I. -I.. -iquote ../include -g -O2 -MT bits.lo -MD -MP -MF .deps/bits.Tpo -c bits.c  -DDLL_EXPORT -DPIC -o .libs/bits.occ1.exe: error: unrecognized command line option "-iquote"cc1.exe: ../include: No such file or directorygcc.exe: ../include: linker input file unused because linking not donemake[2]: *** [bits.lo] Error 1make[2]: Leaving directory `/home/Administrator/faad2-2.7/libfaad'make[1]: *** [all-recursive] Error 1make[1]: Leaving directory `/home/Administrator/faad2-2.7'make: *** [all] Error 2

    TOP

     

    解决了!不过还是有问题    --enable-libfaad /在编译ffmpeg,这个参数还是加不上去.楼主提到的 amr-nb参数等加不上./configure --help后发现这两个,但是加上后也报错.   --enable-libopencore-amrnb /   --enable-libopencore-amrwb /

    TOP

     

     

    libmp3lame库加入问题,最近编译最新的ffmpeg,发现要libmp3lame3.98.4,我不清楚如何卸载这些库?删掉就可以?

     

    在windows平台下编译出libavcodec库 前边做了msys的环境搭建,在编译ffmpeg时,还需要做以下的工作。 1. 整合系统,把 call "c:/Program Files/Microsoft Visual Studio 9.0/VC/bin/vcvars32.bat"加到d:/msys/msys.bat的最前边。 2. 运行msys.bat后 切换到下载的ffmpeg目录中,因为msys走的是类UNIX路径,所以要按UNIX的方式切换路径等。 如: cd /d/ffmpeg 3.用configure配置Makefile ./configure --enable-shared --disable-static --enable-memalign-hack 这样是生成动态的编解码库,由于1 中加入了vcvars32.bat环境,故用这样的模式才会生成具体的dll及lib等,否则vc下调用接口又会折腾了. 4.make 编译ffmpeg整个项目 5. 在ffmpeg/libavcodec下就会有相应的dll,lib,而ffmpeg//libavformat下也会有相应的dll,lib.  TAG windows ffmpeg libavcodec 发表于: 2009-05-18,修改于: 2009-05-29 21:05,已浏览577次,有评论0条 推荐 投诉

    四、最新 完整 FFMPEG 编译详解

    2010_3_1最新 完整 FFMPEG 编译详解

    [i=s] 本帖最后由 golocy 2010-3-1 05:23 PM 编辑 [/i]2010_3_1最新 FFMPEG 编译详解在网上看了很多编译详解,都很零散。经过自己的编译,解决一些BUG,在此分享自己的一些经验... 话不多说了!直接上贴。第一步:准备编译平台。需要 一个 MinGW 一个 MSYS 安装包 以及 MSYS_DTK.   当前最新是版本:   MinGW5.1.6.exe    [url=http://sourceforge.net/projects/mingw/files/]下载[/url]   msysDTK-1.0.1.exe [url=http://downloads.sourceforge.net/mingw/msysDTK-1.0.1.exe]下载[/url]   Msys1.0.11.exe    [url=http://downloads.sourceforge.net/mingw/MSYS-1.0.11.exe]下载[/url]按照以上顺序安装      建议:(可选)      MinGw5.1.6 安装到 F:/MinGw (为了路径简短起见)     Msys1.0.11 安装到 F:/MinGw/Msys(为了方便起见)有些机器不会在/MinGw/Msys/etc中产生正确的fstab文件,因此确保/MinGw/Msys/etc中具有一个fstab文件 内容为:F:/MinGw /minwg  前者为你的MinGw安装目录 后面对应MinGw目录)第二步:准备编译工具  需要一些编译工具,以便能够编译需要的库。1.二进制工具(xx.exe文件)  pr.exe (在coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2 包的bin目录中)[url=http://sourceforge.net/projects/mingw/files /MSYS Base System/_obsolete/coreutils-5.97-MSYS-1.0.11-2/coreutils- 5.97-MSYS-1.0.11-snapshot.tar.bz2/download]下载[/url]  ffmpeg configure执行需要用到)  复制到 MinGW/bin注意:是MinGW目录中的bin  SDL 工具 [url=http://www.libsdl.org/docs.php]下载[/url] (ffmpeg 需要用到)  在包中的四个目录:bin lib include share 一起复制到 MinGw 目录下  (bin 中包含 SDL.dll sdl-config)  sdl-config中修改 第一行为 prefix=/mingw  [url=http://www.ffmpeg.com.cn/index.php/Ffplay使用事例]参考[/url]  unzip.exe 工具 [url=unzip-5.51-1.exe][url=http://sourceforge.net/projects/gnuwin32 /files/unzip/]下载[/url][/url] (安装 libamrnb libamrwb 需要用到)  解压unzip-xxx-bin.zip 后在bin 中复制 unzip.exe MinGw/Msys/bin (注意:是 Msys目录中的bin  wget.exe 工具 [url=http://ftp.gnu.org/gnu/wget/]下载[/url] (安装 libamrnb libamrwb 需要用到)  解压后 bin 中拷贝 wget.exe MinGw/Msys/bin (注意:是 Msys目录中的bin  git.exe 工具 下载(获取x264库需要用到)  安装:

    [url=http://msysgit.googlecode.com/files/Git-1.6.5.1-preview20091022.exe]Git-1.6.5.1-preview20091022.exe[/url]2.源码安装包(需要编译安装的工具包)  autoconf [url=http://ftp.gnu.org/gnu/autoconf/]下载[/url]  automake [url=http://ftp.gnu.org/gnu/automake/]下载[/url]  libtool  [url=http://ftp.gnu.org/gnu/libtool/]下载[/url]  yasm     [url=http://www.tortall.net/projects/yasm/releases/yasm-0.8.0.tar.gz]下载[/url]  下载最新版 然后解压到 Msys目录中的home/Administrator   (说明:以后需要执行 'configure' 'make' 'make install' 命令来安装的xx.tag.gz 都解压到Administrator 以便控制台中方面路劲的输入包的安装:举例安装 autoconf   Msys命令行中:    cd autoconf 回车 (从 ~ 目录 进入 autoconf 目录)    configure 回车 (执行配置文件)    make 回车       (开始编译)    make install 回车 (安装)安装 automake包: 动作同上,只是要进入 automake 目录.(cd automake)第三步:准备一个线程库(不准备编译x264的可以跳过)  pthread  [url=ftp://sources.redhat.com/pub/pthreads-win32/pthreads- w32-2-8-0-release.tar.gz]下载[/url] [url=http://ffmpeg.arrozcru.org/wiki/index.php?title=Pthreads]参考[/url]  解压到MinGw/Msys/home/Administratorpthread  Msys命令行中:      cd pthread 回车     make GC 回车  然后在pthread中找到 pthreadGC.dll 拷贝到 MinGw/bin MinGw/lib   ...............找到 pthread.h sched.h  拷贝到 MinGw/include   (注意有个Bug 打开sched.h line:152 line154 的两个函数的参数类型pid_t 改成 int 这个Bug是自己遇到的,修改并不会影响任何功能,但并没有官方验证)目前这里就配置好所有的编译环境了!   以下是支持要编译的编解码库://===== Mp3lame [url=http://sourceforge.net/projects/lame/files/lame/]下载[/url]解压到 ~ 目录 MinGw/Msys/home/Administrator)改名目录为 lameMsys安装:   cd lame 回车   configure --enalbe-shared 回车   make 回车   make install 回车//===== faac faad2 [url=http://www.audiocoding.com/downloads.html]下载[/url] (两个包)faac 安装:

    faac-1.28 需要一个补丁[url=http://bbs.chinavideo.org/attachment.php?aid=368&k=bdbac83ed608d3697e25e985527c3b9c&t=1267424723&fid=11&sid=ab1ep/jU/kNhVRIt9st/5vPwWJxoQCf7uJGIj3A397qIkfc]faac-1.28.diff[/url] 解压到 ~ 目录 MinGw/Msys/home/Administrator)改名目录为 faac把补丁放到 faac 目录中Msys安装:   cd faac 回车   patch -p1 < faac-1.28.diff 回车   bootstrap 回车   configure --with-mp4v2 --enalbe-shared 回车 (不需要MP4 则第一个参数用--without-mp4v2 代替)   make 回车   make install 回车faad 安装:

    faad2-2.7 需要一个补丁[url=http://bbs.chinavideo.org/attachment.php?aid=369&k=4624ab33cb734713942aafb25213926c&t=1267427156&fid=11&sid=3fa8T1Vt6ibnc+wFOLP4vp0CkKhIQj1NZ+Hpq3RhVaiUQPw]faad2-2.7.diff[/url] 解压到 ~ 目录 MinGw/Msys/home/Administrator)改名目录为 faad2把补丁放到 faad2 目录中Msys安装:   cd faad2 回车   patch -p1 < faad2-2.7.diff 回车(也可以手动修改,注释掉 faad2/frontend/main.c     line: 34 #define off_t __int64    bootstrap 回车   configure --with-mp4vip --enalbe-shared 回车 (第一个参数可选)   configure顺利完成之后     libfaad/Makefile中修改:        AM_CFLAGS = -iquote $(top_srcdir)/include        改成:AM_CFLAGS = -I $(top_srcdir)/include     (这个是一个Bug修正 以免出现:       cc1.exe: error: unrecognized command line option "-iquote"   make 回车   make install 回车//===== amrnb amrwb [url=http://www.penguin.cz/~utx/amr#download]下载[/url]amrnb安装:解压到 ~ 目录 MinGw/Msys/home/Administrator)改名目录为 amrnbMsys安装:   cd amrnb 回车   configure --enalbe-shared 回车   make 回车   make install 回车amrwb安装:解压到 ~ 目录 MinGw/Msys/home/Administrator)改名目录为 amrwbMsys安装:   cd amrwb 回车   configure --enalbe-shared 回车   make 回车   make install 回车//===== xvidcore [url=http://www.xvid.org/Downloads.43.0.html]下载[/url]解压到 ~ 目录 MinGw/Msys/home/Administrator)改名目录为 xvidMsys安装:   cd xvid/build/generic 回车   configure --enalbe-shared 回车   make 回车   make install 回车//===== H.264  下载x264库:   Windows 的控制台中输入 C/...>  cd F/mingw/msys/home/Administrator 回车(切换路径到Administrator目录)F/mingw/msys/home/Administrator > git clone git://git.videolan.org/vlc.git 这时x264包就会下载到mingw/msys/home/Administrator目录中Msys安装:   cd x264 回车   configure --enalbe-shared 回车   make 回车   make install 回车(有个Bug,安装后 mingw/msys/local/include/x264.h line209 修改 int i_bframe_pyramid; int b_bframe_pyramid; 保存)//**************到这里 有一些常用的编解码库了  下面来编译FFMPEGFFMPEG [url=http://www.ffmpeg.org/releases/ffmpeg-0.5.tar.bz2]下载[/url]解压到 ~ 目录 MinGw/Msys/home/Administrator)改名目录为 ffmpeg(注意了,编译x264 需要修改一下 ffmpegconfigure   line 1996 :中的 x264_encoder_open加上一个x264版本号,可以从F:/MinGw/msys/local/bin中的libx264-xx.dll 得知,这里编译得到的是libx264-88.dll所以   line 1996 :中的 x264_encoder_open 改为x264_encoder_open_88,以解决编译x264,编译ffmpeg 提示 libx264 not found.ffmpeg目录中 新建一个文本文件 改名为 cml (无扩展名)编辑 cml configure /[size=3]--enable-ffplay /--enable-static /--enable-memalign-hack /[/size][size=3]--enable-gpl / [/size][size=3]--enable-libmp3lame /--enable-libfaac /--enable-libfaad /--enable-libx264 /[/size][size=3]--enable-nonfree /  [/size][size=3]--enable-libamr-nb /--enable-libamr-wb / [/size][size=3]--extra-ldflags=-L/usr/local/lib /--extra-cflags=-I/usr/local/include [/size]保存.Msys中输入:cml 回车make 回车make install 回车大功告成! 不过xvid不能在ffmpeg编译中使用--enable-shared参数不然会报错,你可以试试,如果可以,那就是我的机器问题! - 愉快

    xshzh 发表于2010-7-16 09:32 AM

    查看完整版本: 2010_3_1最新 完整 FFMPEG 编译详解

     

     

    //

     

    1、    用MinGw and Msys 编译出 libx264.dll.a和 libx264-88.dll,2、    然后重命名 libx264.dll.a 为 libx264.lib.3、    在vs2005用 x264编码器程序编译,bebug版成功release crash.how create libx264.lib for vc2005?4、    .a可以进一步编译成.dll库。.lib不可以再编了,所以不能直接改。5、    你需要把它编译成libx264.dll库6、    或者将libx264.a放入mingw中和其他的库一起编成.dll7、   8、    编译FFMPEG,FFMPEG在http://www.ffmpeg.org/releases/ffmpeg-0.5.tar.bz2下载,然后解压到 ~ 目录 (MinGw/Msys/home/Administrator)改名目录为 ffmpeg(注意了,编译x264库 需要修改一下 ffmpeg的configure把 line 1996 :中的 x264_encoder_open加上一个x264版本号,可以从F:/MinGw/msys/local/bin中的libx264-xx.dll 得知,这里编译得到的是libx264-88.dll所以把line 1996:中的 x264_encoder_open 改为 x264_encoder_open_88,以解决编译x264后,编译ffmpeg 提示 libx264 not found.)

    最新回复(0)