1.  下载x265最新源码;
     下载ffmpeg源码(我用的是2.7);
     下载cmake最新版本并安装;
     下载SDL(我用的SDL-1.2.15);
     下载mingw-get-setup.exe,在“Select Components”步骤中选择:
      √  C Compiler (默认且一定选择)
      √  C++ Compiler
      √  MSYS Basic System(选择此项将会安装msys,msys则不需要另外安装)
      √  MinGW Developer ToolKit
  并apply change安装。
 
2. 配置 msys.bat 批处理文件
    为了方便VS2005调用ffmpeg的动态库,可以通过配置让ffmpeg编译时产生windows下调用dll对应的lib,当     然,如果你没有这个需要,那么就可以省略以下处理,直接进入步骤3。 进入:C:\MinGW\msys\1.0\,使      用UltraEdit打开msys.bat文件,在文件的最最前面加入如下一行:
   call "D:\开发软件安装文件夹\VS2005\VC\bin\vcvars32.bat"
 
3. 使用Notepad++修改C:\MinGW\msys\1.0\etc目下的fstab文件,修改其内容为:C:/MinGW,即为MinGW的安装路径。(如果是这样已配好,就不需要改)
 
4. 添加环境变量
在系统环境变量PATH前面添加 C:\MinGW\msys\1.0\bin和C:\MinGW\bin
 
5. 配置 yasm
    为了减少配置环境变量的麻烦,本处直接把yasm-1.1.0-win64.exe 文件名修改成:yasm.exe,并放到目录:C:\MinGW\msys\1.0\bin下,把
复制到C:\MinGW\msys\1.0\bin下,防止报错。
 
6.安装cmake,并且配置环境变量的path指向安装路径。运行msys。
 
7.进入到x265/build/msys目录,执行 make-Makefiles.sh
 
8.弹出界面,然后依次点 “configure” “generate”按钮,如果步骤7、8提示ES_AW AYMODE_REQUIRED相关的错误,则进入到x265.cpp中加入定义“#define ES_AWAYMODE_REQUIRED 0x00000040”
 
9.在C:\Program Files (x86)\x265 生成 bin、include、lib,将include、lib复制到C:\MinGW\msys\1.0下,主要是为了方便编译ffmpeg链接的目录,任何额外库编译完成都要复制到该目录下,方便统一调用。
 
10. 编译SDL(可选项)
    SDL-1.2.15.tar.tar 解压, 进入到解压目录,
    再执行以下命令:
    ./configure
    make
    make install
    编译结果在:C:\MinGW\msys\1.0\local 目录下 
 
    使用UltraEdit打开C:\MinGW\msys\1.0\local\bin下的 sdl-config文件
    把 prefix=/usr/local 该成: prefix=C:/MinGW
    其中:C:/MinGW 为 mingw的安装路径,请根据你的安装进行修改。为了编译时msys能识别sdl并开启 SDL support yes 进行编译,请把C:\MinGW\msys\1.0\local编译结果bin、include和lib中有关sdl的拷贝一份到C:/MinGW对应目录中。
 
11.开始编译ffmpeg,进入下载的ffmpeg目录中,配置:(64位电脑需要时加上--cpu=i686)
./configure --enable-shared --disable-static --enable-ffplay --enable-memalign-hack --enable-gpl --enable-libx265 --cpu=i686 --extra-cflags=-IC:/MinGW/msys/1.0/include --extra-ldflags=-LC:/MinGW/msys/1.0/lib --prefix=C:/MinGW/msys/1.0/complied_result
 
然后make、make install之后在C:/MinGW/msys/1.0/complied_result下则可以看到编译结果。
运行ffmpeg会提示无x265.exe,则把x265.exe复制到当前bin目录下。
 
注:在开始编译之前,可以把原来编译的目标文件清除掉:make distclean
    ffmpeg命令行执行录制的时候,提示错误“”The encoder 'aac' is experimental but experimental codecs are not enabled, add '-strict -2' if you want to use it”,网上看直接在命令中add '-strict -2' 就可以了,但是我这里加了没有效果。
   解决方法:
          在configurate时--enable-libfaac,这时候可能会提示你nonfree,那就再开启nonfree好了, --enable-nonfree,重新编译,问题解决。
 
    a、需要注释掉faad2-2.7\frontend\main.c中第34行的#define off_t __int64语句。
    b、faac-1.28需要打补丁,调用下面命令将补丁faac-1.28.diff(本文开头网址提供资源中包含此文件)打上
patch -p1 < faac-1.28.diff
     c、在编译faad和faac前需要在相应目录下调用./bootstrap命令。

用mingw32编译ffmpeg2.7的更多相关文章

  1. windows10 qt5 mingw32编译cryptopp563

    windows10 qt5 mingw32编译cryptopp563 参考链接: http://www.qtcentre.org/threads/28809-Compiling-amp-using-C ...

  2. Qt打开外部程序和文件夹需要注意的细节(Qt调用VC写的动态库,VC需要用C的方式输出函数,否则MinGW32编译过程会报错)

    下午写程序中遇到几个小细节,需要在这里记录一下. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 QProcess *process = new QProcess(this ...

  3. 【FFMEPG】windows下编译ffmpeg2.5——使用VS2013,ARMLINUX,ANDORID编译ffmpeg

    原文:http://blog.csdn.net/finewind/article/details/42784557 一.准备: 1. 本机环境: win7 64bit: 2. 安装MinGW到C:\M ...

  4. Windows(x64)编译FFMPEG-2.0.1

    一.引言 公司需要做网络视频传输的相关项目,初步选定用这么几个东西FFMPEG,ORTP,Live555这么几个东东.研究了也有一个月了,把一些心得写出来,这篇文章主要介绍FFMPEG在windows ...

  5. [ffmpeg 扩展第三方库编译系列] 关于libopenjpeg mingw32编译问题

    在mingw32如果想编译libopenjpeg 会比较麻烦 会出现undefined reference to `_imp__opj_destroy_cstr_info@4' 等错误 因此编译时候需 ...

  6. ubuntu11.04 编译ffmpeg2.7 并生成 ffplay进行流媒体測试

    源代码安装方式: 1. 先下载ffmpeg 安装包 到官网上 http://ffmpeg.org/download.html#releases 下载.选择Download gzip tarball. ...

  7. 手把手教你用NDK9编译ffmpeg2.4.2

    编译环境: 32位 ubuntu12.10 android-ndk-r9c-linux-x86.tar.bz2 ffmpeg-2.4.2.tar.bz2 网上的教程都是以低版本号ffmpeg编译居多. ...

  8. [ffmpeg 扩展第三方库编译系列] 关于需要用到cmake 创建 mingw32编译环境问题

    我在这里给出我编译的例子 cmake -G"MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=& ...

  9. [ffmpeg 扩展第三方库编译系列] 关于libvpx mingw32编译问题

    在编译libvpx的时候遇到挺多的问题, 1.[STRIP] libvpx.a < libvpx_g.a strip: Bad file number   这个错误也是比较难搞的,一开始以为只是 ...

随机推荐

  1. oracle全库查找是否有某个值

    在scott用户下面,搜索含有'要找的值'的数据的表和字段穷举法: declare v_Sql ); v_count number; begin for xx in (select t.OWNER, ...

  2. my97整合fineui例子,开始和结束时间

      <f: Toolbar runat ="server">                             <Items>             ...

  3. OpenLayers加载百度离线瓦片地图(完美无偏移)

    本文使用OpenLayers最新版本V5.3.0演示:如何使用OpenLayer完美无偏移加载百度离线瓦片地图.OpenLayers 5.3.0下载地址为:https://github.com/ope ...

  4. js中Function引用类型中一些常见且有用的方法和属性

    Function类型 函数由于是Function类型的一个实例,所以函数名就是一个指向函数对象的指针,不会与某个函数死死的连接在一起,这也导致了js中没有真正的重载,但好处是,函数对象可以作为另一个函 ...

  5. centos实现三个节点高可用

    centos实现三个节点高可用 使用的资源为keepalived和nginx 高可用主机IP地址 192.168.136.131 192.168.136.133 192.168.136.134 ngi ...

  6. day47——css介绍、语法结构、选择器、css权重

    day47 今日内容 css介绍 CSS(Cascading Style Sheet,层叠样式表)定义如何显示HTML元素,给HTML设置样式,让它更加美观. 语法结构 div{ color:gree ...

  7. Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度

    原文:Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 嫌项目编译太慢?不一定是 Visual Studio 的问题,有可能 ...

  8. .Net MVC生成二维码并前端展示

    简介: 二维码又称二维条码,常见的二维码为QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更 ...

  9. 常用正则表达式和一些demo

    一.校验数字的表达式 数字:^[0-9]*$ n位的数字:^\d{n}$ 至少n位的数字:^\d{n,}$ m-n位的数字:^\d{m,n}$ 零和非零开头的数字:^(0|[1-9][0-9]*)$ ...

  10. JVM性能优化--JVM参数配置,使用JMeter简单测试配合说明参数调优

    一.JVM参数配置 1.常见参数配置 -XX:+PrintGC 每次触发GC的时候打印相关日志 -XX:+UseSerialGC 串行回收 -XX:+PrintGCDetails 更详细的GC日志 - ...