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目录,依次执行:

  1. ./configure -–prefix=/usr/local/SDL
  2.  
  3. make
  4.  
  5. make install

五、编译x264

解压下载的x264源码包,例如放到D:\ffmpeg1.2\x264目录,msys进入x264目录,依次执行:

  1. ./configure --enable-shared –-disable-asm -–prefix=/usr/local/x264
  2.  
  3. make
  4.  
  5. make install

六、重新部署环境

1、下载

地址是: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

解压下载的faac源码包,例如放到D:\ffmpeg1.2\faac目录,msys进入faac目录,依次执行:

  1. ./bootstrap
  1.  
  1.  
  1. ./configure --enable-shared –-disable-static -–prefix=/usr/local/faac
  2.  
  3. make
  4.  
  5. make install

八、部署MinGW-w64

从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。

九、编译ffmpeg

解压下载的ffmpeg0.9.0源码包,例如放到D:\ffmpeg1.2\ffmpeg0.9.0目录,msys进入ffmpeg目录,依次执行:

  1. ./configure --enable-shared --disable-static --enable-memalign-hack --enable-libx264 --enable-gpl  --enable-nonfree --enable-libfaac --prefix=/usr/local/ffmpeg9.0
  1. make
  2.  
  3. make install

专题:Windows编译x264、SDL、faac、ffmpeg过程的更多相关文章

  1. 在windows下编译x264

    最近因为各种原因,对流媒体的学习,突然中断在了编码这块.今天难得静下心来,从新拿起了代码. 对encode这边,因为之前虽然也接触了,也找了两个例子,但目前还没真正开始,所以先从编译x264这个库开始 ...

  2. 在Windows下利用Eclipse调试FFmpeg

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

  3. WebRTC VideoEngine超详细教程(三)——集成X264编码和ffmpeg解码

    转自:http://blog.csdn.net/nonmarking/article/details/47958395 本系列目前共三篇文章,后续还会更新 WebRTC VideoEngine超详细教 ...

  4. 从零开始编译属于你的FFmpeg

    一.前提: 编译FFmpeg可以是初学者,尤其是对C语言项目,Linux编译不熟悉的的初学者的一道门槛. 我曾经找过很多博客,文章,有些能编译成功,有些则不能.编译通过,能够运行也是云里雾里的.其实最 ...

  5. 用mingw-w64 编译 x64 位的ffmpeg

    http://blog.sina.com.cn/s/blog_6125d067010168dt.html 工作中用到了ffmpeg x64. 发现编译出来x64的ffmpeg,很不容易.特记录下来.原 ...

  6. Windows编译Nginx源码

    Windows下的Nginx战役,人不作就不会死!就像是拿着麦当劳的优惠券去买肯德基一样,别扭啊 Nginx是一款轻量级的Web 服务器.反向代理服务器.邮件服务器等等集一大串荣誉于一身的大牌人物!他 ...

  7. OGRE 2.1 Windows 编译

    版权所有,转载请注明链接 OGRE 2.1 Windows 编译 环境: Windows 7 64Bit Visual Studio 2012 OGRE 2.1 CMake 2.8.12.1 OGRE ...

  8. ffmpeg源码编译安装(Compile ffmpeg with source) Part 2 : 扩展安装

    在Ubuntu,Debian,Mint上编译ffmpeg 本文主要为在Ubuntu,Debian和Mint上编译安装ffmpeg和库文件以及一些扩展的编解码器.当然这与从源中安装无关. 请首先看一下通 ...

  9. 【转载】OGRE 2.1 Windows 编译

    OGRE 2.1 Windows 编译 环境: Windows 7 64Bit Visual Studio 2012 OGRE 2.1 CMake 2.8.12.1 OGRE: OGRE官方推出了最新 ...

随机推荐

  1. Unsupervised Learning: Use Cases

    Unsupervised Learning: Use Cases Contents Visualization K-Means Clustering Transfer Learning K-Neare ...

  2. java 正则匹配空格字符串 正则表达式截取字符串

    java 正则匹配空格字符串 正则表达式截取字符串 需求:从一堆sql中取出某些特定字符串: 比如配置的sql语句为:"company_code = @cc and project_id = ...

  3. 01-08-01【Nhibernate (版本3.3.1.4000) 出入江湖】NHibernate中的三种状态

    以下属于不明来源资料: 引入 在程序运行过程中使用对象的方式对数据库进行操作,这必然会产生一系列的持久化类的实例对象.这些对象可能是刚刚创建并准备存储的,也可能是从数据库中查询的,为了区分这些对象,根 ...

  4. make -f dc_debug.mak 提示错误"/usr/bin/ld:can not find -l***"解决办法

    在公司不同服务器上"make -f ***"程序的时候,有的服务器可以编译通过,有的却提示"/usr/bin/ld:can not find -l***"的错误 ...

  5. linux源代码阅读笔记 linux文件系统(二)

    上一篇文章说到linux文件系统中分为超级块,inode块,block块.inode块给出文件的权限,修改时间,大小等信息. 但是实际上,文件的数据是存储在block块中的.而inode块中给出了存储 ...

  6. Linked List vs Array

    Both Arrays and Linked List can be used to store linear data of similar types, but they both have so ...

  7. poj 3620 Avoid The Lakes(广搜,简单)

    题目 找最大的一片湖的面积,4便有1边相连算相连,4角不算. runtime error 有一种可能是 数组开的太小,越界了 #define _CRT_SECURE_NO_WARNINGS #incl ...

  8. hdu 1195 Open the Lock(广搜,简单)

    题目 猜密码,问最少操作多少次猜对,思路很简单的广搜,各种可能一个个列出来就可以了,可惜我写的很搓. 不过还是很开心,今天第一个一次过了的代码 #define _CRT_SECURE_NO_WARNI ...

  9. 使用 C# 对文件进行压缩和解压

    C#中对文件压缩和可以使用两个类: GZipStream 类 此实例分为几个模块,分别为: 压缩函数: /// <summary> /// 压缩文件 /// </summary> ...

  10. Android中使用HTTP和HttpClient进行通信

    /** * 使用HTTP的Get方式进行数据请求 */ protected void httpGet() { /** * 进行异步请求 */ new AsyncTask<String, Void ...