VS2013编译FFmpeg
由于毕设需要开始学习ffmpeg,因为要修改源码所以这里只能是源码编译。如果要直接使用ffmpeg网上有现成的SDK。源码编译,当然搭环境的是第一步。在Windows平台上比较麻烦,需要的东西比较多。
- Mingw
- yasm
- SDL
- ffmpeg
具体步骤
1.安装mingw,下载地址:http://www.mingw.org/;下载完成后安装,安装完成后点运行,标记上以下几项:mingw-devloper-toolkit、mingw32-base、mingw32-gcc-g++、msys-base.然后在Installation菜单下点击Apply Changes;
2.下载FFMPEG源码,下载地址:http://ffmpeg.com;
3.下载yasm,下载地址: http://yasm.tortall.net/ ;下载后改名为yasm.exe,复制到MinGW安装目录的/msys/1.0/bin(默认装C盘则路径为C:/MinGW/msys/1.0/bin)目录下;
4.配置C:/MinGW/msys/1.0/msys.bat,在此文件的最前面(@echo off之后)添加一行如下内容:
call “E:\Program Files(x86)\Microsoft Visual Studio 12.0\VC\bin\vcvars32.bat” (依实际安装路径修改路径);
5.重命名 C:/MinGW/msys/1.0/bin/link.exe(依实际安装选择路径),这一步是防止这个link.exe与vc的link.exe发生冲突,编译完成后可修改回来;修改环境变量中的Path,将C:/MinGW/msys/1.0/bin和C:/MinGW/bin加到path中。在cmd中输入gcc -v出现相关信息则Mingw安装成功。
6.安装SDL
下载SDL的源码包,解压到ffmpeg同目录下
进入SDL目录,依次执行
./configure -–prefix=/usr/local/SDL
make
make install
通过以下命令导入SDL环境变量。
export PATH=”$PATH:/usr/local/SDL/bin”
export C_INCLUDE_PATH=”$C_INCLUDE_PATH:/usr/local/SDL/include/SDL”
export LD_LIBRARY_PATH=”$LD_LIBRARY_PATH:/usr/local/SDL/lib”
7.安装x264
下载X264源代码包,解压到ffmpeg同目录下
进入到x264目录,依次执行
./configure –enable-shared –-disable-asm -–prefix=/usr/local/x264
make
make install
通过以下命令导入x264环境变量。
export PATH=”$PATH:/usr/local/x264/bin”
export C_INCLUDE_PATH=”$C_INCLUDE_PATH:/usr/local/x264/include”
export LD_LIBRARY_PATH=”$LD_LIBRARY_PATH:/usr/local/x264/lib”
8.配置编译,双击msys.bat,转到FFMPEG源代码根目录下,可运行 ./configure –help查看编译配置选项,我使用的选项为:
./configure –-enable-shared -–disable-static –-enable-memalign-hack –enable-libx264 –enable-gpl –-prefix=/usr/local/ffmpeg
等待配置完成返回;
9.输入 make all 编译;
10.输入make install安装。
安装完成后,可到目录,查看安装结果。
完成,此时生成的头文件及库已经在ffmpeg源代码下的local/ffmpeg目录下,使用这个库,即可在VS下单步进入FFMPEG函数内部。
可能遇到的问题
在./cofigure时可能出现
line ***:tr:command not found
line ***:uname:command not found
line ***:cat:command not found
解决办法:安装coreutils,在安装目录的bin目录下将缺少的命令的exe和libintl3.dll,libiconv2.dll 文件拷贝到C:MinGW/msys/1.0/bin目录下
warning:pkg-config not found, library detection may fail
解决办法:下载pkg-config-0.23-2.zip及glib_2.18.4-1_win32.zip
http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config_0.23-3_win32.zip
http://ftp.gnome.org/pub/gnome/binaries/win32/glib/2.18/glib_2.18.4-1_win32.zip
把pkg-config.exe 和 glib_2.18.4-1_win32.zip中的libglib-2.0-0.dll放在mingw的bin目录下,或者放在$path目录下.
FFmpeg 的详细介绍:请点这里
FFmpeg 的下载地址:请点这里