windows 编译ffmpeg 搞过很多次,每次总是磕磕碰碰,从头到尾不能一直顺利,浪费一些时间。终究起原因,都是当时记得,过段时间就忘了。好记性不如烂笔头,大好周末晚上,闲暇无事,记录最近一次编译的整个过程,以备不时之需。

一. 安装MinGW
从google上可以搜索到MinGW安装包mingw-get-setup.exe,下载到本地磁盘,安装路径选择默认路径C:\MinGW,安装在其他的位置貌似会有问题。点击确认按钮后MinGW会下载一些安装包信息,安装包信息下载完成后等待你按continue键进入包安装界面,如下图所示:
 
图1
图1是安装完成后的界面,未安装前所有方框标记都是空的,右键选择“mark for installation”即可。图一所示的安装包并不都得安装,全装也没什么大碍,多花点时间安装而已。选择好安装包后点击菜单项Installation,选择子项Applie changes进行安装。经验告诉我打开FQ软件,安装会快很多。
      二. 添加环境变量
添加一用户环境变量,:变量名为PATH,变量值为C:\MinGW\bin。重启电脑在命令终端输入gcc --version,如果返回正确说明环境配置已经配置成功,如何结果为正确一眼既能分辩。
     三. 卸载杀毒软件
为什么将删除软件单独拿出来说,原因是被它坑了很长时间。当我重启电脑运行C:\MinGW\msys\1.0目录下的脚本文件msys.bat启动MinGW终端时,发生如下错误:
图2
起初以为是安装过程中运行了某些软件导致部分文件没有成功安装。关掉所有可疑的软件,重新安装一次再次重启电脑,无果。百度一下,有遇到同样困惑的,但没见有回答的。后来在google搜索了很久,有个朋友说他也遇到了这个问题,他的解决方法是卸掉杀毒软件。当时我机器上装的杀毒软件是百度杀毒和百度卫士,而且它们都处于监控状态。结束这两进程后,再次试了下运行MinGW终端,还是出现相同的错误。那时我怀疑那位朋友说的不对,死马也要医一回,我还是将它们卸载掉,结果是everything is ok。看来杀毒软件退出后并没有彻底停止监控?盼高手能解答一下。
     四. 修改启动MinGW终端脚本
 文本方式打开msys.bat,在第一行加上
 call "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\vcvars32.bat"
其实我我觉的加不加都不所谓。
    五. 将yasm-1.2.0-win32.exe 重命名为yasm.exe 放到 C:\MinGW\bin目录下,这个东西好像跟汇编有点关系。
   六. 编译ffmpeg
首先是configure,在命令行敲configure --help 可以看到很多帮助信息,教你怎么配置。
比如说你要生成动态库 配置命令为: ./cofigure  --enable-shared --prefix= /usr/local/ffmeg --prefix指定最终安装路径;比如你要编译包含x264编码的动态库: ./configure --enable--shared ./configure --enable-shared --enable-gpl --enable-libx264  --enable-version3   --enable-encoder=libx264 --extra-cflags="-I/home/wgg/include/x264" --extra-ldflags="-L/home/wgg/lib" --prefix=/home/wgg/out-2.4.3
 --extra-cflags指定x264头文件路径,--extra-ldflags指定库文件libx264.lib路径。这里是以lib的方式添加x264库,估计用linux下编译的.a,.s库也可以,具体没试过。configure过程中如出现什么错误,可以查看configure.log,在那里可以找到错误的原因,需要注意的是configure需要较长的时间不同机器时间长短不一,耐性等待就好,出错会返回错误信息。make基本不会有什么问题,仅仅只需要在命令行敲下make 按回车一切都很顺利,最后make install。编译安装的结果在prefix指定的路径。That's all!
   如有问题欢迎讨论 350197870。
 

windows下编译ffmpeg的更多相关文章

  1. 在Windows下编译FFmpeg详细说明

    MinGW:一个可自由使用和自由发布的Windows特定头文件和使用GNC工具集导入库的集合,允许你生成本地的Windows程序而不需要第三方C运行时 MinGW,即 Minimalist GNU F ...

  2. ffmpeg windows下编译ffmpeg

    windows下编译ffmpeg 今天由于工作需求需重新编译ffmpeg,百度,goole了一大堆,看眼花缭乱的,但几乎都是三种方案,大部分都是直接转发,一字不漏,错误的缺文件的还是照转,可是问题都大 ...

  3. 在Windows下编译ffmpeg完全手册

    本文的内容几乎全部来自于FFmpeg on Windows,但是由于国内的网络封锁,很难访问这个域名下的内容,因此我一方面按照我自己的理解和实践做了翻译,另一方面也是为了能提供一个方便的参考方法. 注 ...

  4. [转]在Windows下编译ffmpeg完全手册

    本文的内容几乎全部来自于FFmpeg on Windows,但是由于国内的网络封锁,很难访问这个域名下的内容,因此我一方面按照我自己的理解和实践做了翻译,另一方面也是为了能提供一个方便的参考方法. 注 ...

  5. 在windows下编译ffmpeg

    编译ffmpeg,我在网上找了很多相关的方法,但最后都没编译成功. 所以下面就记录下自己的编译方法吧,留着以后编译的时候做参考. 1.首先,下载编译工具MinGW+Msys,搭建编译环境.工具下载地址 ...

  6. Windows下编译安装 FFmpeg

    在Linux/Mac下编译 ffmpeg是非常方便的.但要在 Windows下编译 ffmpeg还真要花点时间.以下就是在 Windowns下编译ffmpeg的步骤: 一.安装Cygwin 在wind ...

  7. 一步步实现windows版ijkplayer系列文章之四——windows下编译ijkplyer版ffmpeg

    一步步实现windows版ijkplayer系列文章之一--Windows10平台编译ffmpeg 4.0.2,生成ffplay 一步步实现windows版ijkplayer系列文章之二--Ijkpl ...

  8. windows 下编译64位ffmpeg

    window下如何编译ffmpeg 前文已有介绍,前面介绍的都是如何编译32位的库,本文主要介绍window 下如何编译64位ffmpeg库. 一.搭建编译环境 1.下载 windows下编译64位F ...

  9. [转] Windows下编译OpenSSL

    简述 OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的开发人 ...

随机推荐

  1. PHP与MySQL中编码的设置

    php代码 header("Content-type:text/html;Charset=utf8"); myql_query("set names utf8" ...

  2. 动态创建DataTable总结

    最简单的: DataTable dt = new DataTable(); dt.Columns.Add("id"); dt.Columns.Add("name" ...

  3. Android-短信验证

    一.mob.com移动开发者服务平台(ShareSDK)的认识 该平台主要是致力于解决移动开发者的实际需求,同时也致力于一些第三方平台的框架支持,那么这样我们可以更方便的将一些功能集成到我们的App中 ...

  4. 增强for循环用法___ArrayList数组实现使用下标最好,LinkedList使用增强型的(转载)

    总结: 1.For-Each循环的缺点:丢掉了索引信息. 当遍历集合或数组时,如果需要访问集合或数组的下标,那么最好使用旧式的方式来实现循环或遍历,而不要使用增强的for循环,因为它丢失了下标信息. ...

  5. 【学习笔记】【C语言】数组

    1. 什么是数组 数组,从字面上看,就是一组数据的意思,没错,数组就是用来存储一组数据的 2. 数组的特点 只能存放一种类型的数据,比如int类型的数组.float类型的数组 里面存放的数据称为“元素 ...

  6. js判断输入是否为空,获得输入的类型

    使用typeof算法 typeof的运算数未定义,返回的就是 "undefined". 下面定义x为运算数: 有一下5种情况: 运算数为数字 typeof(x) 返回的就是 &qu ...

  7. 20140912-关于.NET技术体系的思维导图

    逛园子时看到的. 关于.NET技术体系的思维导图

  8. JAVA:变量,数据类型,运算符,流程控制(简介)<1>

    一.安装和配置jdk 1.jdk是什么? (1).jdk全称是Java Development Kit, Java开发工具包; (2).jdk是sun公司开发的; (3).jdk主要包括:jre(Ja ...

  9. id,class,name区别

    id,class,name区别 id:标签唯一标识,好比我们身份证号码,具有唯一性.JS常用document,getGlementBy(id). class:标签的类别,可重复使用,CSS常用. na ...

  10. vim 安装与运行以及代码的运行

    vi功能是最弱的,也是*nix操蛋之后最基本的editor.后来vi被增强加入众多特性,这就是vim.再后来vim加入图形接口,gvim诞生了.功能最强的是gvim,它的很多特性vim并不支持,vi更 ...