由于毕设需要开始学习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=” </span>PATH:/usr/local/SDL/bin”<br>exportCINCLUDEPATH=”<span> < / s p a n > P A T H : / u s r / l o c a l / S D L / b i n ” < b r > e x p o r t C I N C L U D E P A T H = ” < s p a n > <script type="math/tex" id="MathJax-Element-9">PATH:/usr/local/SDL/bin”
export C_INCLUDE_PATH=”</script>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=” </span>PATH:/usr/local/x264/bin”<br>exportCINCLUDEPATH=”<span> < / s p a n > P A T H : / u s r / l o c a l / x 264 / b i n ” < b r > e x p o r t C I N C L U D E P A T H = ” < s p a n > <script type="math/tex" id="MathJax-Element-10">PATH:/usr/local/x264/bin”
export C_INCLUDE_PATH=”</script>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目录下.
Linux下编译FFmpeg之下载源文件并编译 http://www.linuxidc.com/Linux/2012-02/54565.htm
Linux 编译升级 FFmpeg 步骤 http://www.linuxidc.com/Linux/2013-08/88190.htm
CentOS 5.6 上安装 FFMPEG http://www.linuxidc.com/Linux/2011-09/42793.htm
在Ubuntu下安装FFmpeg http://www.linuxidc.com/Linux/2012-12/75408.htm
Ubuntu 12.04下编译ffmpeg http://www.linuxidc.com/Linux/2013-02/78857.htm
Ubuntu 14.04下PPA安装FFmpeg 2.2.2 http://www.linuxidc.com/Linux/2014-05/101322.htm
FFmpeg 的详细介绍:请点这里
FFmpeg 的下载地址:请点这里
本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-08/134102.htm
Windows上编译ffmpeg完整过程,包括编译x264、SDL、faac。在Windows上编译ffmpeg需要用MinGW+msys,本专题用于记录编译过程中遇到的各种问题及解决方法,转载请注明出处:
一、下载准备
准备编译过程所需的工具和源码。
(1). MinGW http://sourceforge.net/projects/mingw/files/ MSYS http://downloads.sourceforge.net/mingw/MSYS-1.0.11.exe
(2). Yasm http://yasm.tortall.net/Download.html
(3). SDL http://www.libsdl.org/download-1.2.php
(4). X264 http://www.videolan.org/developers/x264.html
(5). FFmpeg http://www.ffmpeg.org/download.html
二、MinGW+MSYS安装
最新版本MinGW安装工具mingw-get-setup.exe内部已经集成了msys工具:
配置MSYS支持GCC编译:
开始安装:
安装MSYS-1.0.11.exe(我们在后面的安装过程中发现,上述安装的msys gcc版本比较低,编译SDL的时候会出错),在安装过程中会让配置已安装的MinGW路径,如:C:/MinGW:
三、yasm支持
从步骤一中将下载来的yasm可执行文件,改名为yasm.exe,放在Windows\System32中。
四、编译SDL
解压下载的SDL源码包,例如放到D:\ffmpeg1.2\SDL-1.12.15目录,msys进入SDL目录,依次执行:
./configure -–prefix=/usr/local/SDL make make install
五、编译x264
解压下载的x264源码包,例如放到D:\ffmpeg1.2\x264目录,msys进入x264目录,依次执行:
./configure --enable-shared –-disable-asm -–prefix=/usr/local/x264 make make install
六、重新部署环境
七、编译faac1、下载
地址是:http://sourceforge.net/projects/mingwbundle/files/,在这个页面上点击Download下载那个zip文件。下载完成后,直接安装,我使用的是默认路径。(这个文件比较大,是MinGW+MSYS的合并安装包,下载并安装后,把C:\msys\1.0\bin文件夹复制出来,备份保存);
默认路径为:C:\minGW和C:\msys\1.0
2、配置环境变量
注意用“;”与前面的隔开
右击“我的电脑”-》属性-》高级-》环境变量
按如图操作,在PATH的编辑框最后加上C:\MinGW\bin
三、下载MSYS
地址:http://download.csdn.net/detail/harvic880925/4602268
下载后,还是默认安装,安装前不用卸载前面第一步中安装的版本,也就是把第一步的版本给覆盖掉;
在安装结束的时候会提出DOS提示窗口:
最后一句为:
Do you wish to continue with the post install? [yn ]
输入n,结束安装。四、将在第一步中提取出来的bin文件夹内容,复制到C:\msys\1.0\bin文件夹下覆盖现在的文件;
解压下载的faac源码包,例如放到D:\ffmpeg1.2\faac目录,msys进入faac目录,依次执行:
./bootstrap./configure --enable-shared –-disable-static -–prefix=/usr/local/faac make make install
八、部署MinGW-w64
九、编译ffmpeg从http://jaist.dl.sourceforge.net/project/mingw-w64/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/installer/mingw-w64-install.exe 下载MinGW-w64,安装在C:/mingw-w64/,然后修改c:\msys\etc\fstab文件中路径,将MinGW路径配置成:C:/mingw-w64/mingw32。
解压下载的ffmpeg0.9.0源码包,例如放到D:\ffmpeg1.2\ffmpeg0.9.0目录,msys进入ffmpeg目录,依次执行:
./configure --enable-shared --disable-static --enable-memalign-hack --enable-libx264 --enable-gpl --enable-nonfree --enable-libfaac --prefix=/usr/local/ffmpeg9.0make make install
</div>