FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件)。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多codec都是从头开发的。
网站上提供FFmpeg库都是vs2008及vs2008版本以上才能使用的,而EDS使用的编译工具是vs2005,因此需要自行编译支持vs2005版本的FFmpeg库。
MinGW,即Minimalist GNU For Windows,它包含了GNU工具集的运行环境、GCC编译器工具集以及其它的GNU程序开发工具(如make、gawk、grep等等)。借用MinGW,可以在Windows操作系统上,使用强大的、丰富多彩的开源工具进行软件开发,例如vim、gcc、python等等。编译环境要求:Msys: 1.0.11、MinGW:5.5.4、 make: 3.81和gcc: 4.7.2。
1. Minimal SYStem (MSYS)安装
下载MSYS-1.0.11.exe并安装:安装到c:/msys/1.0,临近最后会出现个dos窗口,最后一句为:Do you wish to continue with the post install? [yn ],输入n,结束安装。“c:/msys/1.0/postinstall”目录下执行pi.bat,在出现的提示中输入n回车。
2. 升级下MSYS
下载msysCORE-1.0.11-bin.tar.gz:解压这个文件,将bin/mount.exe, msys-1.0.dll, ps.exe三个文件copy到c:/msys/1.0/bin下面覆盖下。
3.升级下MSYS的BASH
下载bash-3.1-MSYS-1.0.11-snapshot.tar.bz2:解压这个文件,将bin/bash.exe, sh.exe两个文件copy到c:/msys/1.0/bin。
4. MinGW安装
下载mingw-5.5.4.exe并安装:将MinGW47.rar解压,然后将c:/msys/1.0/mingw路径下的文件夹拷贝到c:/msys/1.0/mingw
5. 配置fstab
copy C:/msys/etc/fstab.sample成 fstab,确保以下对应:
#Win32_Path Mount_Point
c:/msys/1.0/mingw /mingw
6.添加pr.exe
下载coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2:解压,拷贝bin的pr.exe到c:/msys/1.0/bin下。
以上 整体上的编译环境就搭建好了。
7.将Cc99 转成 cc89
解压c99-to-c89-1.0.zip,将可执行文件拷贝到c:/msys/1.0/bin路径下
注:FFMPEG使用的是C99。而VC支持的是C89(不支持C99)。因此VC一般情况下是无法编译FFMPEG的源代码的。
8.修改“msys.bat”
用文本编辑器打开c:/msys/1.0/msys.bat,由于打算用MSVC++编译程序,所以需要有.lib文件才能链接到FFmpeg的库,这些.lib文件可以使用微软的工具链中lib命令产生。为此,机器上必须已经安装了微软的Visual Studio或是Visual C++。把下面一行加到msys.bat的最前面,把路径替换成机器上vcvars32.bat实际存在的路径,比如我的在“D:\program files\Microsoft Visual Studio 8\VC\bin”,于是就添加:call "D:\program files\Microsoft Visual Studio 8\VC\bin\vcvars32.bat"
原始环境就搭建好了。可以启动桌面上行的MSYS了。
1. 下载 x264(支持x264,可选项)
为了让编译出来的ffmpeg支持对x264格式的编解码,您需要先下载x264。到:http://www.videolan.org/developers/x264.html下载,文件名类似为:last_x264.tar.bz2的包。
2. 编译 x264(可选项)
last_x264.tar.bz2 接压到:D:\ffmpeg\ 目录下,双击“c:/msys/1.0/msys.bat”,启动“MinGW32”,切换到x264目录:D:\ffmpeg\x264-20111124-2245
$ cd /d
$ cd ffmpeg
$ cd x264-20111124-2245
再执行以下命令:
$./configure --enable-shared --disable-asm
$ make
$ make install
编译结果在:C:\MinGW\msys\1.0\local目录下
3.下载FFmpeg源码并编译
本文编译的源码版本为2.4.3 ,可以到其官网下下载源码。
编译时如果出现没有找到YASM 请将yasm.rar 的可执行文件拷贝到windows System32文件加下。
ffmpeg-2.4.3.zip 解压到:D:\ffmpeg\ 目录下,双击“c:/msys/1.0/msys.bat”,启动“MinGW32”,切换到ffmpeg目录:D:\ffmpeg\ ffmpeg-2.4.3,切换方法如下:
$ cd /d
$ cd ffmpeg
$ cd ffmpeg-2.4.3
如果你的“MinGW32”没有关闭,可以直接切换路径到:D:\ffmpeg\ ffmpeg-2.4.3。
再执行以下命令:
$ ./configure --enable-shared --disable-static --enable-ffplay
--enable-nonfree --enable-memalign-hack
--enable-gpl--enable-libx264
--extra-cflags=-Id:/ffmpeg/f ffmpeg-2.4.3/include
--extra-ldflags=-Ld:/ffmpeg/ ffmpeg-2.4.3/lib
请耐心等待一段时间,以上命令不能直接换行哦并且根据ffmpeg的版本不同有所变化,具体看./configure --help,你知道的。。。
$ make
需要等待很长一段时间,等待编译结束。
为了汇总编译结果,请继续执行以下命令:
$ make install
等待完成,在c:/msys/1.0/msys.bat中将会生成 bin、include、lib等文件夹,其中包含了ffmpeg.exe、ffplay.exe、ffprobe.exe、dll、lib和头文件等。