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. 通信行业OSS支撑系统软件研发思考

    一般的,对所谓大型.通信行业.OSS支撑软件系统,我们可宏观定义以下几点: 以年计的研发周期 以几十人计的研发团队 以百计的业务菜单功能点 以千计的数据库表 以万计的业务术语指标 以亿计的数据表记录 ...

  2. [Android开发系列]IT博客应用V1.3

    首先,感谢使用这款软件并给我意见的朋友们,有你们的意见,才有了这个版本. 其次,检索功能和分类筛选功能(如果是你提的意见,记得在下面mark哦,毕竟读代码你能发现,其实发意见这个就是用自己的邮箱给自己 ...

  3. JS数据类型转换

    JS 数据类型转换 方法主要有三种 转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把 ...

  4. 【学习笔记】【C语言】选择结构-switch

    1.用法 switch(整型表达式) {     case 数值1:         语句1;         break;     case 数值2:         语句2;         br ...

  5. 数据库设计(字段)中的char、varchar、text和nchar、nvarchar、ntext的区别

    char.varchar.text和nchar.nvarchar.ntext的区别 1.CHAR.CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char(10),那么不论你存储的数 ...

  6. mysql之触发器before和after的区别(2)

    我们先做个测试: 接上篇日志建的商品表g和订单表o和触发器 假设:假设商品表有商品1,数量是10: 我们往订单表插入一条记录: insert into o(gid,much) values(1,20) ...

  7. 1. 走进java

    走进java 1.java简介 1.1 java分类: 1.2 开发包JDK 1.3.一处编译,到处运行的特点 2. 配置开发环境 3. java基本语法 3.1关键字和保留字 3.2 标识符命名规则 ...

  8. codevs 3186 队列练习2

    3186 队列练习 2  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解       题目描述 Description (此题与队列练习1相比改了2处:1加 ...

  9. Vivado HLS与System Generator:联系与区别

    在很多年以前的ISE套件里面,有个功能强大的AccelDSP,它可以可自动地进行浮点到定点转换,并把算法生成可综合的HDL,还可以创建用于验证的测试平台,但是在4年前左右的时候销声匿迹了,当时的说法是 ...

  10. Linux C 程序 线程(18)

    线程控制 1.线程与进程的关系 线程:计算机中独立运行的最小单位. 在用户角度:多个线程是同时执行的. 操作系统角度:各个线程交替执行 以上只针对单核CPU的情况 在多核CPU主机上,多个线程可以同时 ...