在Windows下利用MinGW编译FFmpeg
目录[隐藏] |
[编辑]环境与软件
win7 32位
链接:http://pan.baidu.com/s/1c0noq5q 密码:xwhy
[编辑]第一步:安装MinGW
安装mingw-get-inst-20120426.exe(安装时选中c++编译器和Mingw Developer Toolkit,其它默认)


[编辑]第二步:配置编译环境
将yasm-1.2.0-win32.exe更名为yasm.exe后直接放在 /usr/local/bin(windows路径为C:\MinGW\msys\1.0\local\bin)
将下面3个压缩包里bin目录中的文件解压后放在/usr/local/bin下
glib_2.28.8-1_win32.zip:GLib (Run-time)
gettext-runtime_0.18.1.1-2_win32.zip:gettext-runtime (Run-time)
pkg-config_0.26-1_win32.zip:pkg-config (tool)
配置好后,效果如下:

[编辑]第三步:配置SDL
为了编译出ffplay,还需要配置SDL
下载编译好的SDL库文件SDL-devel-1.2.15-mingw32.rar并解压,
接下来无论是下载的还是自己编译的,都需要修改bin目录下的 sdl-config文件:
把 prefix=/usr/local/cross-tools/i686-w64-mingw32该成: prefix=c:/MinGW
并去掉2处-mwindows,原因见后面的附录。
解压后,将bin,include和lib目录下的文件分别拷贝到/usr/local对应目录下(注:直接拷贝include目录下的SDL文件夹),
为了编译时ffmpeg能识别SDL并开启 SDL support,需要将bin,include和lib目录下的文件再拷贝一份到C:\MinGW\的对应目录中。
[编辑]第四步:编译
下一步开始编译,不编译shared版本
注:软件安装时统一加上--prefix=/usr/local
[编辑]编译faac
./configure --prefix="/usr/local"--enable-static--disable-shared --with-mp4v2=no makemakeinstall

[编辑]编译fdk-aac
configure FFmpeg时需要加上--enable-libfdk_aac
./configure --prefix="/usr/local"--disable-sharedmakemakeinstall
[编辑]编译x264
./configure --prefix=/usr/local--enable-static--enable-sharedmakemakeinstall
[编辑]编译ffmpeg
如果未配置SDL,需要添加--disable-ffplay
PKG_CONFIG_PATH="/usr/local/lib/pkgconfig"LDFLAGS="-L/usr/local/lib"CFLAGS="-I/usr/local/include" ./configure --enable-gpl \ --enable-libfaac --enable-libfdk_aac --enable-libx264--enable-nonfree--enable-shared--prefix=/usr/local
去掉--disable-optimizations --disable-asm选项,并加上-enable-shared --prefix=/usr/local选项
makemakeinstall
执行结束后会在/usr/local/bin目录下生成:.dll和 .lib文件(如avformat-54.dll与avformat.lib)

在MinGW Shell输入ffmpeg结果如下图所示:

但如果在cmd中运行,会提示缺少pthread动态库:

请将pthreads-w32-2-9-1-release.zip解压后,将Pre-built.2/dll/x86下的pthreadGC2.dll放到ffmpeg所在目录即可。再次运行,结果如下所示:

[编辑]附录
如果编译出来的ffmpeg运行后马上返回命令提示符,没有任何输出,输入ffmpeg -v
也什么信息都没有,连编译配置信息都没有。
原因:是因为SDL库导致的,修改sdl-config文件,去掉2处-mwindows 然后重新编译。
其它原因:需要你拷贝C:\MinGW\bin目录下的libiconv-2.dll到ffmpeg.exe所在目录。
在Windows下利用MinGW编译FFmpeg的更多相关文章
- 再次尝试windows下msys+MinGW编译ffmpeg
电脑上安装太多的开源库,环境变量里面一些常用的头文件都有几种,以前使用的编译ffmpeg的方法现在常常提示错误.从config.log中看,这些错误往往都是一些头文件引用错误导致.由于项目中继续编译自 ...
- windows下用vs2010编译ffmpeg
转载自;http://q1q2q3q4q5q6ln.blog.163.com/blog/static/500794332014666536283/ (注意:请务必先阅读:七,后记补充:) ffmpeg ...
- 手把手教你在Windows下使用MinGW编译libav(参考libx264的编入)
转自:http://www.th7.cn/Program/cp/201407/242762.shtml 手把手教你在Windows下使用MinGW编译libav libav是在Linux下使用纯c语言 ...
- 在Windows下利用Eclipse调试FFmpeg
目录 [隐藏] 1 环境与软件 2 第一步:安装MinGW 3 第二步:配置编译环境 4 第三步:配置SDL 5 第四步:编译 5.1 编译faac 5.2 编译fdk-aac 5.3 编译x264 ...
- Windows下使用MINGW编译ffplay
之前考虑到需要快速配置编译ffplay,使用了比较暴力的方法,具体可以参考编译ffplay.exe简化版. 这里介绍下相对规范的做法. 前提:已经安装了Windows下GCC开发环境--MINGW+m ...
- Windows 系统 vs2012 MinGW 编译ffmpeg 静态库
Windows系统下 vs2012编译ffmpeg 动态库 前面已经有文章讲述,本文将讲述如果编译生成ffmpeg静态库以方便 在vs2012下调用. 准备工作:安装MinGW环境,修改ffmpeg配 ...
- windows下使用mingw编译出ffplay(简化版)
之前编译FFmpeg直接使用dll.lib,默认的mingw也不会编译出ffplay.exe. 近期由于工作需要,需要验证下修改之后的FFmpeg版本是否正常,需要使用ffplay.exe. 比较暴力 ...
- Windows下用Mingw编译Boost.Regex库
下载Boost库,解压. 定位到regex库文件夹下. GCC所对应的MAKEFILE为gcc.mak 进入命令提示符下,输入make -f gcc.mak 这是如果直接按回车执行的话,会出现错误: ...
- windows下使用mingw编译python扩展模块
环境: 1.python2.7.2 2.mingw20120426 说明: PYTHON_HOME:不做特殊说明的话,默认代表python的安装路径. MINGW_HOME:不做特殊说明的话,默认代表 ...
随机推荐
- jsp include page指令标记
include指令标记 <jsp:include page=""> 父页面和包含进来的页面单独编译,单独翻译成servlet后,在前台拼成一个HTML页面. 动态编译& ...
- [Effective JavaScript 笔记] 第6条:了解分号插入的局限
分号可以省略 js可以在语句结束不强制加分号.(建议还是添加,不添加分号往往会出现不易发现的BUG) function Point(x,y){ this.x=x||0; this.y=y||0; } ...
- [POJ1338]Ugly Numbers
[POJ1338]Ugly Numbers 试题描述 Ugly numbers are numbers whose only prime factors are 2, 3 or 5. The sequ ...
- ZeroMQ(java)之Router与Dealer运行原理
在开始这部分的内容之前,先来看看ZeroMQ中HWM概念---High-Water Marks 当系统的数据量很大,而且发送频率很高的情况下,内存就很重要了,如果处理不好会出现很多问题,例如如下场景: ...
- Linux 千万不要执行的10个命令
1. rm -rf 命令 rm -rf命令是删除文件夹及其内容最快的方式之一.仅仅一丁点的敲错或无知都可能导致不可恢复的系统崩坏.下列是一些rm 命令的选项. rm 命令在Linux下通常用来删除文件 ...
- 如何用ssh挂载远程目录
如何用ssh挂载远程目录 标签: sshserver服务器linux网络 2011-06-24 10:05 2979人阅读 评论(0) 收藏 举报 版权声明:本文为博主原创文章,未经博主允许不得转载. ...
- Mac 下 Chrome 浏览器 快捷键
⌘-Option-I 打开“开发人员工具”. ⌘-Option-J 打开“JavaScript 控制台”. ⌘-Option-U 打开当前网页的源代码. 转自: http://www.harbin-s ...
- 【Linux】/dev/null 2>&1 详解
今天一个朋友突然在自己的维护的Linux中, /var/spool/cron/root 中看到了以下的内容: 30 19 * * * /usr/bin/**dcon.sh > /dev/nul ...
- 《C#高级编程》学习笔记------C#中的事件和委托
本文转载自张子阳 目录 委托的作用 将方法绑定到委托 事件的来由 Observer设计模式 .Net Framework中的委托与事件 引言 委托 和 事件在 .Net Framework中的应用 ...
- C++代码重用——包含
#ifndef PAIRS_H #define PAIRS_H #include <iostream> #include <valarray> template <cla ...