电脑上安装太多的开源库,环境变量里面一些常用的头文件都有几种,以前使用的编译ffmpeg的方法现在常常提示错误。从config.log中看,这些错误往往都是一些头文件引用错误导致。
由于项目中继续编译自己的ffmpeg,本次从零开始,搭建msys+mingw的编译环境。
参考网友资源,特此表示感谢。 http://blog.csdn.net/chen_chun_guang/article/details/7023638
首先说明本次实验环境:windows xp安装虚拟机vmware 8.0,在虚拟机里安装了一个windows xp,除了UltraEdit用于查看文档,不安装多余的软件。
1. 下载需要的资源,做好准备工作。
1) MinGW-MSYS Bundle   http://sourceforge.net/projects/mingwbundle/ mingw-msys-0.6-x86.zip 2012-08-21
2) SDL   http://www.libsdl.org/   1.2.15
3) yasm   http://yasm.tortall.net/   1.2.0
4) FFmpeg   http://www.ffmpeg.org/   1.2.1
5) pthreadgc2.dll   http://www.dll-files.com 2.9.0.0 百度google一堆

2. 安装MinGW-MSYS Bundle.
下载来的mingw-msys-0.6-x86.zip,大约100MB多点。解压后直接双击。默认路径安装。
会在C盘占用三个文件夹。C:/MinGW、 C:/msys和 C:\Program Files\MinGW-MSYS ,桌面生成一个快捷方式MinGW-MSYS可以直接启动命令行。以下所有操作都是从这里进入命令行。
这和我以前使用mingw-get-inst-20120426.exe在线安装的方法默认路径不一样,而且也不需要联网下载。

3. 编译安装SDL
没有SDL支持,就没法使用ffplay.exe播放。
本次试验使用建立工作目录C:\msys\1.0\ffmpeg\SDL-1.2.15,将SDL源码解压到SDL-1.2.15。
进入SDL目录,编译命令很简单。

$ ./configure --prefix=/usr/local/SDL
$ make
$ make install

完成SDL的安装。
通过下面命令导入SDL环境变量.

$ export PATH="$PATH:/usr/local/SDL/bin:/usr/local/SDL/include/SDL:/usr/local/lib"
是否成功,可以使用命令查看
$ echo $PATH

4. 编译安装yasm
将下载的yasm-1.2.0.tar.gz,解压到C:\msys\1.0\ffmpeg\yasm-1.2.0
进入yasm目录,分别执行命令:

$ ./configure --prefix=/usr/local/yasm
$ make
$ make install

并通过下面命令导入yasm环境变量。

$ export PATH="$PATH:/usr/local/yasm/bin"

5. 编译ffmpeg
将下载的ffmpeg-1.2.1.tar.bz2,解压到C:\msys\1.0\ffmpeg\ffmpeg-1.2.1
进入ffmpeg-1.2.1目录,分别执行命令:

$ ./configure --enable-shared --disable-static --enable-memalign-hack
$ make
$ make install

本次忘记指定安装路径了,就生成在默认路径下/usr/local,编译选项没有disable一些选项,编译时间有点长。
下面多出来四个文件夹bin lib include share,对应ffmpeg的编译结果。
6. 使用ffmpeg.exe如果提示缺少pthreadgc2.dll,就把下载来的pthreadgc2.dll放到这个bin文件夹。

下面来看看编译结果。

再次尝试windows下msys+MinGW编译ffmpeg的更多相关文章

  1. 在Windows下利用MinGW编译FFmpeg

    目录 [隐藏]  1 环境与软件 2 第一步:安装MinGW 3 第二步:配置编译环境 4 第三步:配置SDL 5 第四步:编译 5.1 编译faac 5.2 编译fdk-aac 5.3 编译x264 ...

  2. windows下用vs2010编译ffmpeg

    转载自;http://q1q2q3q4q5q6ln.blog.163.com/blog/static/500794332014666536283/ (注意:请务必先阅读:七,后记补充:) ffmpeg ...

  3. 手把手教你在Windows下使用MinGW编译libav(参考libx264的编入)

    转自:http://www.th7.cn/Program/cp/201407/242762.shtml 手把手教你在Windows下使用MinGW编译libav libav是在Linux下使用纯c语言 ...

  4. Windows下使用MINGW编译ffplay

    之前考虑到需要快速配置编译ffplay,使用了比较暴力的方法,具体可以参考编译ffplay.exe简化版. 这里介绍下相对规范的做法. 前提:已经安装了Windows下GCC开发环境--MINGW+m ...

  5. Windows 系统 vs2012 MinGW 编译ffmpeg 静态库

    Windows系统下 vs2012编译ffmpeg 动态库 前面已经有文章讲述,本文将讲述如果编译生成ffmpeg静态库以方便 在vs2012下调用. 准备工作:安装MinGW环境,修改ffmpeg配 ...

  6. windows下使用mingw编译出ffplay(简化版)

    之前编译FFmpeg直接使用dll.lib,默认的mingw也不会编译出ffplay.exe. 近期由于工作需要,需要验证下修改之后的FFmpeg版本是否正常,需要使用ffplay.exe. 比较暴力 ...

  7. Windows下用Mingw编译Boost.Regex库

    下载Boost库,解压. 定位到regex库文件夹下. GCC所对应的MAKEFILE为gcc.mak 进入命令提示符下,输入make -f gcc.mak 这是如果直接按回车执行的话,会出现错误: ...

  8. windows下用mingw编译linux项目

    1.下载安装mingw32 2.将mingw下bin和msys\1.0下bin设置为系统path 3.启动msys.bat 4.cd到项目目录 5.输入./configure 6.输入make 7.输 ...

  9. windows下使用mingw编译python扩展模块

    环境: 1.python2.7.2 2.mingw20120426 说明: PYTHON_HOME:不做特殊说明的话,默认代表python的安装路径. MINGW_HOME:不做特殊说明的话,默认代表 ...

随机推荐

  1. c# 一维数组的声明方式

    1.直接指定数组元素 int [] arr = {2,4,1,8,4}; 2.只指定数组长度不指定元素值 指定一个长度为5的int型数组 int []  arr = new int[5]; 3.不指定 ...

  2. 【前端自动化】Gulp的使用(一):安装gulp

    作为一个.NET码农,在前端高速发展的时代,深深感觉自己那么点“前端”技术不够看,比如开发出来的js css等文件庞大,不便于管理,还记得以前的开发就是累加 html  css   jquery, 现 ...

  3. MySQL 杂项

    关于MySQL mysql连接时的--prompt 和 --delimiter 参数是用来设置什么的? 设置提示符和分隔符 mysql查看创建数据库时的字符集命令? SHOW CREATE DATAB ...

  4. HTML5 为 <input> 增加的属性 ; 为 <form> 增加的如需属性

    HTML5 为 <input> 增加了如下属性: autocomplete autofocus form formaction formenctype formmethod formnov ...

  5. matplotlib.pyplot import报错: ValueError: _getfullpathname: embedded null character in path

    Environment: Windows 10, Anaconda 3.6 matplotlib 2.0 import matplotlib.pyplot 报错: ValueError: _getfu ...

  6. 洛谷P2119 魔法阵

    P2119 魔法阵 题目描述 六十年一次的魔法战争就要开始了,大魔法师准备从附近的魔法场中汲取魔法能量. 大魔法师有m个魔法物品,编号分别为1,2,...,m.每个物品具有一个魔法值,我们用Xi表示编 ...

  7. k8s 部署应用程序

    k8s相关工具介绍: Kubeadm Kubeadm解决了处理TLS加密配置.部署核心Kubernetes组件和确保其他节点可以轻松地加入集群的问题.生成的集群通过RBAC等机制得到保护. 有关Kub ...

  8. python实现王者荣耀英图片收集

    一个python写的小爬虫项目,爬虫相关的很容易写,关键是怎么找到爬取图片的位置. 图片位置分析 hero_list_url = 'http://pvp.qq.com/web201605/js/her ...

  9. sql 更新 批量更新 更新得到主键

    import org.springframework.dao.InvalidDataAccessApiUsageException; import org.springframework.jdbc.c ...

  10. Python+Selenium----处理登录图片验证码

    1.说明 在做自动化测试的时候,经常会遇到登录,其中比较麻烦的就是验证码的处理,现在比较常用的图形验证码,每次刷新,得到的验证码不一致,所以,一般来说,获取验证码图片有两种方式: (1)拿到验证码的图 ...