windows下编译ffmpeg
今天由于工作需求需重新编译ffmpeg,百度,goole了一大堆,看眼花缭乱的,但几乎都是三种方案,大部分都是直接转发,一字不漏,错误的缺文件的还是照转,可是问题都大把的,于是乎,我整理如下资料,供初学者能少走弯路!
英文好的可以参考官网:
ffmpeg官网重新编译方案:https://trac.ffmpeg.org/wiki/CompilationGuide/MinGW
一.环境:
1.系统:
win7 64位
2.编译工具:
mingw:mingw-get-inst-20101030.exe
yasm:yasm-1.3.0-win64.exe
pkg-config_0.23-3_win32
SDL-devel-1.2.14-mingw32.tar.gz(编译好的) 编译生成ffplay才需要
3.安装:
(1)mingw:如下图勾选
2.yasm:
yasm-1.3.0-win64.exe改名yasm.exe放到C:MinGWmsys1.0in文件夹下(根据自己mingw的安装路径)
3.pkg-config
pkg-config_0.23-3_win32文件夹下的bin下的libglib-2.0-0.dll和pkg-config.exe拷贝到C:MinGWmsys1.0in文件夹下(根据自己mingw的安装路径)
4.sdl-config
发现只有ffprobe.exe ffmpeg.exe
没有ffplay.exe, ffserver.exe
从sdl的官网下载已经编译好的dll:SDL-devel-1.2.14-mingw32.tar.gz
然后解压, 将其中的bin, lib, include 3个文件夹拷贝到mingw的目录下, 当询问是否覆盖, 选择是.
到bin目录找到sdl-config.用ultraedit打开. 将PREFIX=后面的值改为c:/mingw,接下来, 编译, 成功获得ffplay.exe.
二.ffmpeg编译有哪些方法:
1.cygwin 推荐:linux使用
2.MinGW+MSys 推荐:windows使用
三.如何使用编译后的ffmpeg:
1.配置:
打开C:MinGWmsys1.0msys.bat文件,在文件头部加上
这句话的作用就是: 设置 2008 x86 的开发环境。我们主要是使用它的 lib.exe 生成 *.lib 文件。
运行msys.bat, 程序会根据你当前的用户名,在目录(C:MinGWmsys1.0home)下建一个工作目录。
目录的名称和你的用户名一样。如果当前你的系统用户名是 administer, 那么你的工作目录就是(C:MinGWmsys1.0homeadminister)
2.编译:
解压缩 ffmpeg代码 到 MinGW 的工作目录。例如(C:MinGWmsys1.0homeadminister)
运行 C:MinGWmsys1.0msys.bat,即可进入 MinGW 的工作目录了。
在命令行下输入如下命令:
静态编译:./configure --enable-shared --enable-static --enable-memalign-hack --prefix=c:/msys/1.0 --extra-cflags="-fno-common"
静态编译:./configure --enable-shared --disable-static --enable-memalign-hack --prefix=c:/msys/1.0 --extra-cflags="-fno-common"
此参数可省:--prefix=c:/msys/1.0 --extra-cflags="-fno-common"
成功后,编译生成的文件保存在 (C:MinGWmsys1.0localin),头文件保存在 (C:MinGWmsys1.0localinclude)。
注:
静态编译的会生成local文件夹;
动态编译的则不会,生成的和源码在一起,通过搜索查找需要的;
第三方库文件的安装
参考:http://blog.chinaunix.net/uid-29184939-id-4881778.html