赞
踩
【一】软件运行环境:
操作系统:win10
QT版本:qt-opensource-windows-x86-5.9.1.exe(MinGW32 5.3.0版本)
编译工具:msys2-x86_64-20221028.exe、yasm-1.3.0-win32.exe
源代码:ffmpeg-4.3.tar.gz
【二】FFMPEG与x264的关系
x264是编码器,将原始数据(例如YUV420P)编码成h.264标准的原始视频流
FFmpeg为多媒体库,里面有音频、视频的解析、解码、编码以及其他功能的大量API可以给你使用。FFmpeg可以调用x264编码,也可以通过其他编码器编码。FFmpeg源码包含多种解码器,但不包含264编码的源代码
网上许多博客说明在编译FFMPEG的时候还需要编译x264,这是编译全版本FFMPEG链接库。
笔者目前仅需要在QT程序中使用FFMPEG完成H264解码功能,不需要H264编码功能,因此在编译FFMPEG时候选择跳过编译x264。(笔者在使用网上下载多个版本的编译库时,执行到H264解析函数时软件崩溃,因此耐心选择使用源码和本地编译器重新编译)
本博客用于记录并分享FFMPEG编译方法,帮助读者使用QT调用FFMPEG。
【三】下载安装msys2(汇编编译器)
下载文件名称:msys2-x86_64-20221028.exe(83.4MB)
官网地址:https://www.msys2.org/
安装msys2,一直点击下一步,开始安装,安装过程比较慢,请耐心等待
【四】复制QT的MinGW编译器至yasm2安装文件夹中
yasm2程序安装后,路径C://msys64文件夹如下所示,此时mingw32文件夹里面有若干个空文件夹,此时需要将QT中MinGW编译器复制到mingw32文件夹,路径如下:
源文件路径:C:\Qt\Qt5.9.1\Tools\mingw530_32
目标文件路径:C:\msys64\mingw32
将源文件路径中文件全部复制到目标文件路径
QT安装路径中的MinGW编译器
【五】验证yasm2是否可以找到qt的 MinGW编译器
点击C:\msys64\mingw32.exe
命令行中输入gcc -v,返回出正确的qt中mingw的编译器版本;
命令行中输入which mingw32-make,返回mingw32-make路径,说明环境可以找到mingw32-make。
【六】下载yasm(汇编编译器),复制至yasm2的中编译器路径中
下载文件名称:yasm-1.3.0-win32.exe(492KB)
下载链接:http://www.tortall.net/projects/yasm/releases/yasm-1.3.0-win32.exe
复制文件路径:C:\msys64\mingw32\bin
并将文件名称更改为yasm.exe
【七】下载FFMPEG源代码,并解压至yasm2安装文件夹中
下载文件名称:ffmpeg-4.3.tar.gz(11.7MB)
下载链接:http://www.ffmpeg.org/releases/ffmpeg-4.3.tar.gz
将下载的ffmpeg源码复制并解压缩至msys64的/home/your name/文件夹中
在ffmpeg源码文件夹中新建configure.sh,内容如下:
- ./configure \
- --prefix="/usr/local/ffmpeg" \
- --enable-shared --disable-static \
- --enable-w32threads --disable-debug --disable-everything \
- --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
【八】运行 C:\msys64\mingw32.exe程序,使用cd命令打开ffmpeg源代码文件夹,在文件夹路径运行编译指令
- cd /home/your name XXX/ffmpeg-4.3/
- ./configure.sh
- mingw32-make
- mingw32-make install
运行./configure.sh时会提示找不到pkg-config,不予理睬,继续执行mingw32-make
在ffmpeg文件夹使用mingw32-make成功执行 ,如下图所示。
在ffmpeg文件夹使用mingw32-make install成功执行 ,如下图所示。
【九】在C:\msys64\usr\local\ffmpeg\bin文件夹中获取编译后的DLL文件和LIB 文件,在C:\msys64\usr\local\ffmpeg\include获取编译后的头文件。
复制编译出的lib、dll和include文件至QT的解压缩工程中,替换后,基于QT的解压缩软件完美运行。
相关LIB库资源链接:https://download.csdn.net/download/dashuo0501/87241808?spm=1001.2014.3001.5503
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。