qt学习之旅--MinGW编译FFmpeg(32bit)

0、前言

本来想说FFmpeg使用现成的动态库,结果发现FFmpeg已经没有32位的了,然而我的QT使用的还是MinGW32位的,没办法,只能自己编译生成32位动态库。
参考博客:ffmpeg 2.6.3在Windows系统MinGW的编译 - 腾讯云开发者社区-腾讯云
                  Windows 10下基于MinGW编译FFMpeg with x264_cyjeen的博客-CSDN博客

1、准备环境

1.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版本。

1.2、安装yasm(汇编编译器)

下载页面为: 点击下载
我的下载文件为yasm-1.3.0-win32.exe,然后改名为yasm.exe 放入到D:\MinGW\bin中即可。
说明:Yasm是一个完全重写的NASM汇编。它支持x86和AMD64指令集。接受NASM和GNU汇编器(gas)语法,产出二进制。

1.3、安装nasm(汇编编译器)

下载页面为:点击下载
其默认安装路径为C:\Users\<用户>\AppData\Local\bin\NASM,然后把该目录加入到windows的PATH环境变量中
说明:NASM是一个汇编器的名称,全称是Netwide Assembler,支持x86与x64架构的CPU(注意不支持ARM架构)。
我们知道,在x86和x64架构上有多个操作系统,比较流行的操作系统包括:Linux 、Mac OSX、Windows。软件要在某个操作系统上面运行,就需要进行相应的适配。NSAM编译器也是一套软件,它可以支持上面列举的三大流行操作系统,可移植性很高。

1.4、下载coreutils工具包

地址:http://gnuwin32.sourceforge.net/packages/coreutils.htm 要下载2个压缩包 BinariesDependencies的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)

1.5、安装pkg-config

下载页面为:点击下载
解压后复制bin文件夹中的pkg-config.exe文件到D:\MinGW\bin\文件夹下
说明:用来返回已安装库的基本信息。它能根据软件安装时软件的.pc配置文件路径找到相应的头文件路径和库文件路径

1.6、下载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 目录下。如果忘记,请回头看看。

1.7、安装glib

下载页面为:点击下载
解压后复制bin文件夹中的libglib-2.0-0.dll文件到D:\MinGW\bin\文件夹下

2、编译安装ffmpeg

执行D:\MinGW\msys\1.0\msys.bat打开模拟终端(如果已打开请关闭重新打开)

下载ffmpeg,当前以下载4.3版本为例,点击下载
下载完后解压到D:\MinGW\msys\1.0\home\<用户>\目录下

填坑:用编辑器打开该文件D:\MinGW\msys\1.0\home\<用户>\ffmpeg-4.3\libavformat\os_support.h,在文件头部添加这一行,不然编译的时候会出错:#include "winerror.h"

在C:\MinGW\msys\1.0\home\<用户>\ffmpeg-4.3\下创建一个脚本文件configure.sh,其内容如下:

./configure \
    --prefix="/usr/local/ffmpeg" \
    --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

在模拟终端中

cd ffmpeg
./configure.sh
make
make install

最后在D:\MinGW\msys\1.0\local\ffmpeg目录有编译安装好的最终文件

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值