本文应网友要求而写,目标:在Windows 7操作系统中搭建MinGW环境,编译ffmpeg。

一、准备环境

1、MinGW

1)、到http://www.mingw.org/(实际下载地址为https://sourceforge.net/projects/mingw/files/)下载最新版本的安装包:mingw-get-setup.exe
2)、双击mingw-get-setup.exe,选择“Install”,默认安装到C盘,可以选择安装在D盘。本文的安装目录为D:\MinGW\
3)、点击“Continue”,将会下载必要的组件(配置文件等)。完成后,再点击“Continue”,进入到“MinGW Installation Manager”界面,这里就是程序的安装(如gcc编译器)。
3.1)、Basic Setup中选择“mingw32-base”、“mingw32-gcc-g++”、“msys-base”(右键选择“mark for installation”)
3.2)、All Packages中选择:mingw32-autoconf(bin那一项,下同)、mingw32-automake、mingw32-autotools、mingw32-pkginfo。
3.3)、选择Installation->Apply Changes,选择“Apply”,将下载选择的安装包(连网下载,所需时间根据实际选择包而定)。并安装一个“Linux环境”。结束后,直接关闭对话框即可。
4)、将目录D:\MinGW\bin以及目录D:\MinGW\msys\1.0\bin加入到系统环境变量(计算机->属性->高级系统设置->高级->环境变量->PATH->编辑,在“变量值”最后添加目录,确定)。说明:这样做是为了在MinGW命令行中使用gcc等很多程序。做此设置后,可以将下面提及到的依赖工具及库放到D:\MinGW\bin,也可以放到D:\MinGW\msys\1.0\bin,放到哪个目录都是一样的效果。
5)、进入D:\MinGW\msys\1.0,双击msys.bat即可进行,mingw命令行,输入gcc -v即可查看gcc版本。注:gcc版本为4.9.3

2、安装yasm

1)、到http://yasm.tortall.net/Download.html下载Win64 .exe (实际文件名为yasm-1.3.0-win64.exe)
2)、将其改名为yasm.exe,放到D:\MinGW\msys\1.0 \bin目录下。

3、下载coreutils工具包

地址:http://gnuwin32.sourceforge.net/packages/coreutils.htm
要下载2个压缩包 Binaries和 Dependencies的zip包,解压,将Binaries的bin目录的pr.exe放到 D:\MinGW\bin,将Dependencies目录bin的libintl3.dll、libiconv2.dll也放到刚才的目录。然后到该目录下,将上述的2个dll复制并分别改名为iconv.dll、intl.dll。——因为pkg-config.exe需要使用到。
(没有pr.exe,会提示:./configure: line 407: pr: command not found )

4、安装pkg-config.exe

1)、下载pkg-config
  地址http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config_0.26-1_win32.zip (注:没有win64对应的包)
2)、将压缩包的bin目录的pkg-config.exe复制到D:\MinGW\bin 目录下。

5、下载pkg-config.exe依赖库

1)、下载地址:http://ftp.acc.umu.se/pub/gnome/binaries/win32/glib/2.26/glib_2.26.1-1_win32.zip
2)、将压缩包bin目录所有的.dll,放到D:\MinGW\bin 目录下。
3)、依赖库iconv.dll、intl.dll在上面的步骤中已经放到D:\MinGW\bin 目录下。如果忘记,请回头看看。

6、进入MinGW的“Linux”环境

进入D:\MinGW\msys\1.0,双击msys.bat运行即可。

二、编译FFMPEG

1、下载FFMPEG

地址http://ffmpeg.org/download.html,本文使用的是ffmpeg-2.6.3.tar.bz2。

2、解压

将其放到D:\MinGW\msys\1.0\home\latelee目录下(按Linux习惯,最后一个是用户名目录)。

$ tar jxvf ffmpeg-2.6.3.tar.bz2

3、配置

进入ffmpeg目录,并配置ffmpeg:

$ cd ffmpeg-2.6.3
$ ./configure --prefix=/home/latelee/ffmpeg-2.6.3-bin \
--enable-shared --disable-static \
--enable-w32threads --disable-debug --disable-everything \
--enable-memalign-hack --enable-gpl --disable-network \
--enable-encoder=bmp,mjpeg,jpeg2000,mpeg4 \
--enable-decoder=h264,hevc,mpeg4,mjpeg,bmp  \
--enable-demuxer=h264,hevc,avi,matroska,image2,image_bmp_pipe \
--enable-muxer=h264,hevc,avi,matroska,mp4,mjpeg,image2 \
--enable-parser=h264,hevc,mjpeg,bmp \
--enable-protocol=file \
--enable-filter=scale \
--disable-indevs \
--disable-hwaccels \
--extra-libs=-lmsvcrt
注:根据实际需要选择功能。上面是编译动态库,具备h264/h265解码能力,没有硬件加速功能,

4、编译

执行make命令进行编译:

$ make

5、安装

将库及头文件安装到前面指定的路径:

$ make install
头文件在D:\MinGW\msys\1.0\home\latelee\ffmpeg-2.6.3-bin的include目录下
动态库在D:\MinGW\msys\1.0\home\latelee\ffmpeg-2.6.3-bin的bin目录下。

在MinGW中运行ffmpeg.exe结果如下图:

注:
1、关于路径分隔符说明:windows下为“\”,在MSYS中属于Linux环境,分隔符为“/”。
2、本文没有制作64位的编译环境,有兴趣可以到http://www.mingw-w64.org/上看看。
3、如果网络不稳定,可能有个别压缩包下载不完整,会安装出错。解决方法:先定位出错的工具,再删除、重新安装。
实例:在编译ffmpeg最后时出现错误:Can't locate warnings.pm in @INC (@INC contains:。经查发现用MinGW安装perl不完整,perl目录没有warnings.pm文件。重新安装解决。

4、由于各人系统环境不同,本文不能适用于所有的系统,如有问题,欢迎文后留言,一起交流,共同学习。

李迟 2016.5.25 周三  晚

ffmpeg 2.6.3在Windows系统MinGW的编译相关推荐

  1. FFmpeg在Windows系统下的编译过程

    由于FFMpeg是基于Linux开发的开源项目,源代码和Windows下最常见的Visual Studio提供的C/C++编译器不兼容,因此它不能使用MSVC++编译.要想使用FFMpeg,最先要解决 ...

  2. Windows系统C++配置编译OpenCV

    Windows系统C++配置编译OpenCV 前言 首先是下载OPENCV, 下载并安装CMAKE 下载并安装mingw和gcc 可选.安装QT 使用CMAKE生成GCC和QT配置文件 需要一个好用的 ...

  3. Windows平台MinGW GCC编译并使用C++ Boost

    Windows平台MinGW GCC编译并使用C++ Boost 文章目录 Windows平台MinGW GCC编译并使用C++ Boost 前提 编译Boost为动态链接库 使用编译的Boost动态 ...

  4. ffmpeg 0.8.7在windows环境mingw环境的编译

     最近又接触了FFMPEG,想起当年初到公司时的情景,领导安排我更新当前所用的FFMPEG,那时公司还没有多少人接触嵌入式Linux.现在虽然公司还是不重视嵌入式基础,但"交叉编译&qu ...

  5. windows系统下_ffmpeg编译_2011年

    ffmpeg开源库在linux系统下弄的,是一个很全的音频和视频的编解码库要在windows下编译出用于开发的lib库确实比linux下要麻烦,百度了很久,参照别人的见解终于成功编译出自己需要的可以用 ...

  6. Qt5.8 在windows下mingw静态编译

    官方对编译一些条件介绍:https://doc.qt.io/qt-5/windows-requirements.html 在默认情况下,用QtCreator编译程序时,使用的是动态编译.编译好的程序在 ...

  7. Tips--windows系统下gcc编译C文件为so共享库

    windows系统下gcc编译C文件为so共享库 1. windows系统安装gcc编译工具 2. 利用gcc编译多个c文件 3. 利用python工具验证生成的so共享库 1. windows系统安 ...

  8. SDL 1.2.14在windows平台下的编译及例子

    背景: 初次接触SDL,大约是当初做毕业设计时.如今再次接触,只换了平台而已,但事是人非,年华似水.曾经的理想,如今只有不停写代码.写代码,似乎除了这事情,别的不知做什么了. 从本文开始,将发布一些在 ...

  9. Windows系统使用minGW+msys 编译ffmpeg 0.5的全过程详述

    一.环境配置 1.下载并安装 MinGW-5.1.4.exe (http://jaist.dl.sourceforge.net/sourcef - -5.1.4.exe),安装时选中 g++, min ...

最新文章

  1. 火狐 IE 解析xmlDOM 的不同写法
  2. DataList自定义分页
  3. 【转】使用dos2unix批量转换文件
  4. 使用vue来做局部刷新
  5. ASP中文件上传组件ASPUpload介绍和使用方法
  6. 一文带你吃透Vue生命周期(结合案例通俗易懂)
  7. libsvm回归参数寻优cgp_【lightgbm/xgboost/nn代码整理二】xgboost做二分类,多分类以及回归任务...
  8. 【SpringCloud】Spring cloud Alibaba Sentinel @SentinelResource
  9. 反射获取类_新人也能看懂?如何使用 Java 反射?反射的用法及案例
  10. 使用Github发布自己的网站
  11. JavaCV入门教程目录(JavaCV从入门到实战,JavaCV指南手册,免费JavaCV教程)
  12. Win10下载的文件如何解除锁定?Win10系统解除锁定下载的文件方法
  13. 【案例24】NC6.3-6.3X前台无法录spr日志
  14. 概率论与数理统计之随机试验与随机时间样本空间与事件的集合表示
  15. Xdebug中文文档-基础特性
  16. 东南大学计算机学院程茜雅,满满的黑科技,这份录取通知书火了!
  17. 同步群晖内的两个本地文件夹
  18. 3.文件系统组成和基本操作
  19. 高校bbs或者科研论坛
  20. 惠普dl20g9服务器系统分区,惠普商用笔记本预装WIN10系统如何分区

热门文章

  1. BCrypt加密怎么存入数据库_Spring Boot 中密码加密的两种姿势
  2. 手机辐射到底有多厉害!65分钟将生鸡蛋煮熟
  3. 三星Galaxy S22首发!4nm旗舰芯Exynos 2200跑分出炉
  4. 刷屏!黄晓明杨颖官宣离婚,两人已无商业关联
  5. 腾讯又“撒钱”了!奖励2.28万员工800万股,人均16.6万港元 网友:福利界天花板...
  6. 在周二正式发售前 新款MacBook Pro已开始向客户发货
  7. 花5000元买2天训练营,年轻人正在「高价买觉睡」
  8. 6099元!华为Mate 40 Pro 4G版开放现货
  9. 双十一最具性价比机型,Redmi K30S至尊纪念版上手体验
  10. 卖不动了,5G资费套餐再降价,网友:再等等再等等