window下编译ffmpeg 比较简单
网上关于编译ffmpeg的帖子很多,我也尝试了很多次,但是很多都过不了,一部分原因是版本问题,还有就是有的路劲没说的太明白导致的,经过一天的摸索,最终编译好了,下面把编译方式写下来,希望对看到帖子的人有帮助,特别感谢:http://www.cnblogs.com/zzugyl/p/3186170.html。
特别注意:路径千万别弄错了,否则ffplay.exe可能编译不出来
1、准备工作:
在干活之前,先把下面五个软件下载下来。
1)MinGW-MSYS Bundle http://sourceforge.net/projects/mingwbundle/
2) SDL http://www.libsdl.org/download-1.2.php
3)yasm http://yasm.tortall.net/Download.html
4)FFmpeg http://www.ffmpeg.org/download.html
5)pthreadgc2.dll http://www.dll-files.com/dllindex/dll-files.shtml?pthreadgc2
2、安装MinGW-MSYS Bundle软件
网上99%的方法都是先安装mingw,再通过网络下载的方法来安装mingw和msys软件。安装好之后,还需要通过烦琐的配置,来搭建编译环境。sourceforge开源平台给大家带来了福音,MinGW-MSYS Bundle软件同时包含了MinGW和MSYS,不需要连接网络进行安装,并且包含了最新的核心组件和库文件。

按照软件默认的安装向导,一路Next,把软件安装好。我是把软件装在了C盘。
3、安装SDL
到上文列出的SDL官方网站地址,下载SDL源码包。咱下载SDL最新的源码包SDL-1.2.15.tar.gz。
到ffmpeg网站,下在ffmpeg源码包,咱下的是最新的版本ffmpeg-1.2.1.tar.gz
把ffmpeg解压缩到C:\msys\1.0\ffmpeg-1.2.1\ffmpeg-1.2.1\ 目录,再把SDL解压缩到C:\msys\1.0\ffmpeg-1.2.1\ffmpeg-1.2.1\SDL-1.2.15目录。
进入SDL目录,分别执行
./configure --prefix=/usr
make
make install
完成SDL的安装。
SDL编译完成之后,生成的bin文件、include文件、lib文件存放在C:\msys\1.0\local\SDL目录下。
通过下面命令导入SDL环境变量.
export PATH="$PATH:/usr/local/SDL/bin:/usr/local/SDL/include/SDL:/usr/local/lib"
否则,在执行ffmpeg configure时,SDL support项显示为no.(注:mingw默认根目录对应与windows下的C:\msys\1.0\目录,可以通过echo $PATH查看当前的系统路径)
4、安装yasm
到yasm官方网站,下载最新的1.2.0版本的yasm源码包Source .tar.gz。
解压到C:\msys\1.0\ffmpeg-1.2.1\yasm-1.2.0目录。
进入yasm目录,分别执行:
./configure --prefix=/usr/local/yasm
make
make install
并通过下面命令导入yasm环境变量。
export PATH="$PATH:/usr/local/yasm/bin"
5、安装ffmpeg
进入ffmpeg代码目录C:\msys\1.0\ffmpeg-1.2.1\ffmpeg-1.2.1\, 分别执行下面命令:
./configure --enable-shared --disable-static --enable-memalign-hack
make
make install
编译完成后,在C:\MinGW\msys\1.0的bin、include和lib文件夹下可以看到编译结果。
make install 之后,ffplay.exe 、ffmpeg.exe等可执行程序安装到C:\MinGW\msys\1.0\bin路径下。
执行ffplay后效果:

window下编译ffmpeg 比较简单的更多相关文章
- window下编译ffmpeg
网上关于编译ffmpeg的帖子很多,我也尝试了很多次,但是很多都过不了,一部分原因是版本问题,还有就是有的路劲没说的太明白导致的,经过一天的摸索,最终编译好了,下面把编译方式写下来,希望对看到帖子的人 ...
- Linux下编译ffmpeg并用GDB调试
1.在Ubuntu界面上调处命令行界面,最方便的方式是使用快捷键Ctrl+Alt+T. 2.安装SDL SDL是一个开源的多媒体开发库,可以设置图像和视频的绘制等操作.如果不安装SDL,FFMPEG将 ...
- 在Windows下编译FFmpeg详细说明
MinGW:一个可自由使用和自由发布的Windows特定头文件和使用GNC工具集导入库的集合,允许你生成本地的Windows程序而不需要第三方C运行时 MinGW,即 Minimalist GNU F ...
- Android 环境下编译FFmpeg
Android 环境下编译FFmpeg 开发环境:Ubuntu 12.04.2 LTS , android-sdk-linux, android-ndk-r8e 一 .X264 编译 1. X2 ...
- 在Window下编译LibGeotiff(含Libtiff)
核心提示:1.GeoTiff简介 GeoTiff是包含地理信息的一种Tiff格式的文件. 1.GeoTiff简介 GeoTiff是包含地理信息的一种Tiff格式的文件.Libgeotiff就是一个操作 ...
- ffmpeg windows下编译ffmpeg
windows下编译ffmpeg 今天由于工作需求需重新编译ffmpeg,百度,goole了一大堆,看眼花缭乱的,但几乎都是三种方案,大部分都是直接转发,一字不漏,错误的缺文件的还是照转,可是问题都大 ...
- linux下编译ffmpeg 引入外部库x264
Found no assembler Minimum version is nasm-2.13 If you really want to compile without asm, configure ...
- VoIP应用在Ubuntu 14.04下编译FFmpeg libX264及PJSIP
PJSIP是一个开源的SIP协议栈.它支持多种SIP的扩展功能,可说算是最目前流行的SIP协议栈之一了. 它实现了SIP.SDP.RTP.STUN.TURN和ICE.PJSIP作为基于SIP的一个多 ...
- ubuntu 下 编译ffmpeg 3.1.1
1,下载ggmpeg源码:http://ffmpeg.org/download.html 2.下载ndk ,百度 3.配置环境 3.1 编译FFMPEG时,出现了 ffmpeg yasm not fo ...
随机推荐
- 20141016--for 兔子
Console.Write("请输入月数:"); int m =int.Parse(Console.ReadLine()); ;//成兔对数ct ;//小兔对数xt ;//幼兔对数 ...
- Illegal pattern character 'i' 解决问题
java.lang.IllegalArgumentException: Illegal pattern character 'i' at java.text.SimpleDateFormat.comp ...
- Java 对于继承的初级理解
概念:继承,是指一个类的定义可以基于另外一个已存在的类,即子类继承父类,从而实现父类的代码的重用.两个类的关系:父类一般具有各个子类共性的特征,而子类可以增加一些更具个性的方法.类的继承具有传递性,即 ...
- IIS安装Web Deploy之后没有显示右键菜单
Bug描述: 使用IIS自带的"Web平台安装程序"安装完Web Deploy组件之后,鼠标右键点击网站,弹出的菜单中并没有新增的"部署"选项. Bug解决: ...
- poj 1077 Eight(A*)
经典的八数码问题,用来练习各种搜索=_=.这题我用的A*做的,A*的主要思想就是在广搜的时候加了一个估价函数,用来评估此状态距离最终状态的大概距离.这样就可以省下很多状态不用搜索.对于每个状态设置一个 ...
- linux命令之vim使用-(转)vim的保存文件和退出命令
博客地址: http://blog.sina.com.cn/s/blog_5e357d2d0100zmth.html
- jquery ListBox 左右移动
<head runat="server"> <title>无标题页</title> <script type="text/jav ...
- ASP.NET文件上传的三种基本方法
ASP.NET依托.net framework类库,封装了大量的功能,使得上传文件非常简单,主要有以下三种基本方法. 方法一:用Web控件FileUpload,上传到网站根目录. <form i ...
- ASP.NET 学习笔记(一)ASP.NET 概览
ASP.NET 是一个使用 HTML.CSS.JavaScript 和服务器脚本创建网页和网站的开发框架. ASP.NET 支持三种不同的开发模式:Web Pages(Web 页面).MVC(Mode ...
- Oracle RAC LoadBalance
LoadBalance 就是把负载平均的分配到集群中的各个节点,从而提高整体的吞吐能力. Oracle 10g RAC 提供了两种不同的方法来分散负载: 通过Connection Balancing, ...