zoukankan      html  css  js  c++  java
  • 用mingw32编译ffmpeg2.7

    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:MinGWmsys1.0,使      用UltraEdit打开msys.bat文件,在文件的最最前面加入如下一行:
       call "D:开发软件安装文件夹VS2005VCinvcvars32.bat"
     
    3. 使用Notepad++修改C:MinGWmsys1.0etc目下的fstab文件,修改其内容为:C:/MinGW,即为MinGW的安装路径。(如果是这样已配好,就不需要改)
     
    4. 添加环境变量
    在系统环境变量PATH前面添加 C:MinGWmsys1.0in和C:MinGWin
     
    5. 配置 yasm
        为了减少配置环境变量的麻烦,本处直接把yasm-1.1.0-win64.exe 文件名修改成:yasm.exe,并放到目录:C:MinGWmsys1.0in下,把
    复制到C:MinGWmsys1.0in下,防止报错。
     
    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:MinGWmsys1.0下,主要是为了方便编译ffmpeg链接的目录,任何额外库编译完成都要复制到该目录下,方便统一调用。
     
    10. 编译SDL(可选项)
        SDL-1.2.15.tar.tar 解压, 进入到解压目录,
        再执行以下命令:
        ./configure
        make
        make install
        编译结果在:C:MinGWmsys1.0local 目录下 
     
        使用UltraEdit打开C:MinGWmsys1.0localin下的 sdl-config文件
        把 prefix=/usr/local 该成: prefix=C:/MinGW
        其中:C:/MinGW 为 mingw的安装路径,请根据你的安装进行修改。为了编译时msys能识别sdl并开启 SDL support yes 进行编译,请把C:MinGWmsys1.0local编译结果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.7frontendmain.c中第34行的#define off_t __int64语句。
        b、faac-1.28需要打补丁,调用下面命令将补丁faac-1.28.diff(本文开头网址提供资源中包含此文件)打上
    patch -p1 < faac-1.28.diff
         c、在编译faad和faac前需要在相应目录下调用./bootstrap命令。
  • 相关阅读:
    Android监听系统短信数据库变化-提取短信内容
    Android 短信拦截及用途分析
    ListView:The content of the adapter has changed but ListView did not receive a notification终极解决方法
    Activity onDestroy() 回调缓慢问题分析及完美解决方案
    获取View的截图-将View转换为Bitmap对象
    Android正则表达式使用及性能隐患分析
    Android Activity返回键控制的两种方式
    Android TextView 添加下划线的几种方式
    android gridview几个重要属性(android:listSelector自带内部padding分析)
    ADB server didn't ACK
  • 原文地址:https://www.cnblogs.com/bigfi/p/7071525.html
Copyright © 2011-2022 走看看