MinGW + x264 + ffmpeg
今天,有个朋友问我怎么在windows下编译ffmpeg的库。其实网上有很多例程,但是我自己没亲自试过,本着实践出真知的想法,用了大概三个小时编译了一下。MinGW及x264的编译方法参考前文,这里就总结一下编译ffmpeg时遇到的问题。
-
下载ffmpeg
http://www.ffmpeg.org/download.html
解压后放在 MinGW安装位置/msys/1.0/projects/下(俺贪方便,具体位置随意了)
-
下载pkg-config for MinGW/msys
pkg-config: http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config_0.23-3_win32.zip
pkg-config依赖的库: http://ftp.gnome.org/pub/gnome/binaries/win32/glib/2.18/glib_2.18.4-1_win32.zip
安装方法:把pkg-config.exe 和 libglib-2.0-0.DLL复制到环境变量包括的任意一个文件夹内,我是复制到MinGW安装路径\msys\1.0\bin
-
修改msys
路径:MinGW安装路径\msys\1.0
用记事本打开 msys.bat, 在第一行添加
call "D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\vcvars32.bat" ,其实就是添加vs的路径进去,按各自的位置改改就行了。作用就是会生成你在win下用的众多lib文件。
-
编译ffmpeg
- 打开msys.bat
- 进入ffmpeg所在位置
-
./configure --help(先看看你想要配置啥的)
我的是:
./configure --enable-shared --enable-gpl --enable-debug --enable-libx264 --enable-memalign-hack --enable-network --enable-muxers
--disable-yasm --enable-w32threads --extra-cflags=-I /(填写x264.h及x264_config.h所在文件夹) --extra-ldflags=-L/(libx264所在文件夹) --enable-protocols
--cpu=i686 --enable-protocols
-
一些说明:
- 我没有yasm,所以我直接disable了
- --extra-cflags=-I 后面跟路径, --extra-ldflags=-L后面也是跟路径
- --cpu=i686 得写上,要不会提示:Threading is enabled, but there is no implementation of atomic operations available
- 对了,最好把安装路径写上 -- prefix = 你想安装到哪里
- make
- make install
完事了。
非常感谢这几位网友,他们的博文给了我很大的启发:
- http://blog.sina.com.cn/s/blog_54b5ea250100r15b.html (主要参考)
- http://blog.chinaunix.net/uid-20718335-id-2980793.html
- https://ffmpeg.org/trac/ffmpeg/ticket/2363 (解决多线程问题)