windows下搭建ffmpeg环境

在windows下编译ffmpeg可以采用cygwin或msys+mingw两种方案,我个人比较喜欢msys+mingw方式,因为这样可以在windows下搭建一个类Unix操作系统,并且配置比cygwin要简单,因此本就是描述怎样建立msys+mingw的环境。

 

在windows下搭建ffmpeg编译环境在网上的文章很多,最为详细的可能是这篇文章:http://ffmpeg.arrozcru.org/wiki/index.php?title=Main_Page。但是在由于版本问题,完全按照上面的描述是通不过的。

 

到http://sourceforge.net/projects/mingw/files/下载最新版MinGW安装程序,我的是MinGW-5.1.6.exe

到http://sourceforge.net/projects/mingw/files/MSYS%20Base%20System/msys-1.0.11/MSYS-1.0.11.exe/download下载MSYS-1.0.11,注意当前MSYS已经是1.0.14版,但是从1.0.11版之后,就再也没有安装程序了

到http://prdownloads.sourceforge.net/mingw/coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2?download下载coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2

运行MinGW-5.1.6.exe,注意选择安装g++和make,并将安装目录指定到c:\msys\mingw,该程序将自动下载并安装mingw系统,注意此时的gcc版本为3.4.5

运行MSYS-1.0.11.exe安装msys到c:\msys目录

解压并将coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2复制到c:\msys目录下,并选择合并目录,遇到冲突文件时选择保留两份

此时基本系统应该已经建成,编写一个test.c的hello world程序应该可以编译通过并正常运行

安装工具软件:

wget.exe:拷贝到c:\msys\bin目录下

到ftp://ftp.info-zip.org/pub/infozip/win32/下载unzip程序unz600xn.exe,在临时目录下运行该程序,将unzip.exe拷贝到c:\msys\bin目录下

到http://www.tortall.net/projects/yasm/wiki/Download下载yasm-0.8.0-win32.exe,拷贝到c:\msys\mingw\bin目录下并重命名为yasm.exe

安装msysgit到c:\software目录

下载x264程序:/c/software/Git/bin/git clone git://git.videolan.org/x264.git

编译x264程序:./configure --prefix=/home/yantao/cic/static,然后运行make和make install

下载AMR支持:http://sourceforge.net/projects/opencore-amr/files/opencore-amr/0.1.2/opencore-amr-0.1.2.tar.gz/download

编译:./configue --prefix=/home/yantao/cic/static --enable-static,然后make和make install

下载SDL:http://www.libsdl.org/download-1.2.php

编译:./configure --prefix=/home/yantao/cic/static --enable-static --disable-shared

此时证明当前gcc 3.4.5环境配置基本正确,但是ffmpeg必须在gcc 4以上编译才能解决dll文件可以在VC中链接及异常退出等BUG,因此需要将gcc升级到最新系统,到sourceforge

升级msys bash:从http://sourceforge.net/projects/mingw/files/下载最新版bash,这里是bash-3.1.17-2-msys-1.0.11-bin.tar.tar,利用解压工具解开,将内容拷贝到c:\msys\bin目录下

升级msys coreutil:从http://sourceforge.net/projects/mingw/files/下载最新版coreutils-bin和coreutils-ext,这里是coreutils-5.97-2-msys-1.0.11-bin.tar.tar,利用解压工具解开,将内容拷贝到c:\msys\bin目录下

升级mingw binutils

升级mingw runtime dev

升级mingw runtime dll

升级mingw win32 api

升级gcc:下载所有gcc相关的下载项,尤其是dll项目,然后解压并拷贝到c:\msys\mingw目录下

从http://sourceforge.net/projects/mingw/files/的mingw proposed目录下下载libgmp-5.0.1-1-mingw32-dll-10.tar.tar并安装

从http://sourceforge.net/projects/mingw/files/的mingw proposed目录下下载libmpc-0.8.1-1-mingw32-dll-2.tar并安装

从http://sourceforge.net/projects/mingw/files/的mingw proposed目录下下载libmpfr-2.4.1-1-mingw32-dll-1.tar并安装

下载pthreads支持libpthread-2.8.0-3-mingw32-dll-2.tar.tar

为验证升级的正确性,首先确定能够正确编译test.c,然后重新编译x264、opencore-amr、SDL

将编译好的外部库拷贝到c:\msys\mingw\include及c:\msys\mingw\lib目录下,并注意修改每个pkconfig文件中的目录,将build4_5_0/bin目录下的sdl-config拷贝到mingw/bin目录下,并修改路径为/mingw

从ftp://sources.redhat.com/pub/pthreads-win32/prebuilt-dll-2-8-0-release/lib/下载pthreads补丁:包括include目录下的*.h及lib目录下的pthreadGC2.dll,将*.h文件拷贝到c:\msys\mingw\include目录下,将pthreadGC2.dll拷贝到c:\msys\mingw\bin及c:\msys\mingw\lib,同时拷贝到c:\msys\mingw\lib并改名为pthread.dll

编译ffmpeg:首先建ffmpeg目录,然后通过TortoiseSVN从svn://svn.mplayerhq.hu/ffmpeg/trunk下载最新代码,运行./configure --prefix=/home/yantao/cic/static --enable-static --disable-shared --enable-gpl --enable-libx264 --enable-pthreads --enable-nonfree --enable-opencore-amrnb --enable-opencore-amrwb --enable-version3 --enable-memalign-hack

修改libavformat/rtsp.c的1699行,将ETIME更改为ETIMEDOUT,修改mingw/include/errno.h文件,添加#define ETIMEDOUT       60定义

在mingw/include/sched.h的152行前添加typedef long pid_t;

运行make及make install

用带有AMR-NB的3gp文件测试ffplay.exe

测试视频捕捉

原文链接:http://hi.baidu.com/_jiangming/blog/item/92463a046d54dff009fa93f3.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值