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. asp.net mvc @RenderBody()的问题

    在使用.net mvc 母版页布局时如果是进行上中下三块布局的话,那么就会像下面的图那样: 在上面的div 和下面的div之间会出现4cm的间隔, 解决如下: 给包裹@RenderBody()的div ...

  2. ASP.NET缓存全解析4:应用程序数据缓存 转自网络原文作者李天平

    System.Web.Caching 命名空间提供用于缓存服务器上常用数据的类.此命名空间包括 Cache 类,该类是一个字典,您可以在其中存储任意数据对象,如哈希表和数据集.它还为这些对象提供了失效 ...

  3. Part 71 Code snippets in visual studio

  4. DWZ(JUI) 教程 左侧栏默认是关闭状态的问题

    DWZ(JUI) 教程 左侧栏默认是关闭状态的问题,初始化是全屏状态,只需简单处理就可以了 $(function(){ DWZ.init("dwz.frag.xml", { log ...

  5. 桌面虚拟化之XenDesktop7

    安装篇 1. 安装所需要的组件 2. 安装核心组件 配置篇 完整的部署 1. 打开Citrix Studio软件 2. 选择完整部署 3. 创建站点 4. 选择数据库(可以使用自己的或者默认使用自带的 ...

  6. HTTP状态码参考

    1. HTTP状态码意义 客户机与服务器建立连接后,发送一个请求给服务器(如:Get /index.html http/1.1),在服务器接到请求后,给予客户机相应的响应信息,包括该信息的协议版本号. ...

  7. Coarse-Grained lock 粗粒度锁

    用一个锁Lock一组相关的对象 有时,需要按组来修改多个对象. 这样,在需要锁住其中一个的时候,必须连带地将其他的对象都上锁. 为每一个对象都加上一个锁是很繁琐的. 粗粒度锁是覆盖多个对象的单个锁. ...

  8. JAVA(int...i)问题

    第一次看到这种写法,弄不明白到底会是神马结果,运行后才发现是这么的神奇. 无论你调用的方法中带几位参数,“hello”一直可以被输出.

  9. Python深拷贝和浅拷贝

    1- Python引用计数[1] 1.1 引用计数机制 引用计数是计算机编程语言中的一种内存管理技术,是指将资源(可以是对象.内存或磁盘空间等等)的被引用次数保存起来,当被引用次数变为零时就将其释放的 ...

  10. TCP协议承载的DNS报文,DNS报文首部前多出两个字节的DNS报文长度字段,是何意义?

    一.TCP报文头部简介 ●源.目标端口号字段:占16比特.TCP协议通过使用"端口"来标识源端和目标端的应用进程.端口号可以使用0到65535之间的任何数字.在收到服务请求时,操作 ...