QT5.14.2 VS2022环境下FFmpeg与QT的完美邂逅

简介: QT5.14.2 VS2022环境下FFmpeg与QT的完美邂逅

在当今数字化时代,音视频处理已成为开发者必须掌握的关键技能之一。无论是iOS的AVFoundation、Android的MediaPlayer,还是Windows的DirectShow,每个平台都有其独特的音视频处理库。然而,跨平台开发的挑战始终如影随形。今天,我将带你走进一个强大的跨平台音视频开发世界——FFmpeg与QT的结合。


一、开发库的选择:为什么是FFmpeg与QT?


(1)、FFmpeg 介绍

FFmpeg,一个强大而灵活的音视频处理库,几乎支持所有的音视频格式。掌握FFmpeg,意味着你已经迈出了成为音视频领域专家的第一步。而QT,作为一个跨平台的C++图形用户界面应用程序框架,它的灵活性和强大的功能库使其成为开发者的最爱。将FFmpeg与QT结合,你将能够打造出既美观又功能强大的音视频应用。


(2)、FFmpeg 版本说明

FFmpeg有三种主要的版本类型:静态库版本、动态库版本和源码。


A、静态库版本(Static)

这个版本只包含三个可执行程序:ffmpeg.exe、ffplay.exe和ffprobe.exe,没有独立的动态链接库文件。每个可执行程序的体积都比较大,因为所有需要的库都被静态编译到了可执行文件中。这个版本最适合作为工具使用,不依赖额外的动态库,可以直接运行单个可执行程序。



B、动态库版本(Shared)

这个版本除了包含ffmpeg.exe、ffplay.exe和ffprobe.exe三个可执行程序外,还包含一些动态链接库文件,比如avcodec-54.dll等,里面也包含了开发使用的库文件(.lib)和头文件(.h)。我们在开发时需要链接这个版本中的库文件,并使用头文件。但在最终发布程序时,还需要从动态库版本中获取需要的动态链接库。这些可执行程序的体积相对较小,因为它们在运行时需要调用动态链接库中的功能。使用这个版本的程序必须依赖提供的动态链接库文件。这也是我们在Qt中开发并使用FFmpeg的必选版本。



C、FFmpeg源码

FFmpeg源码下载地址



因此,在使用FFmpeg开发时,合理使用不同版本有利于我们高效的开发和部署应用程序。


二、环境搭建:FFmpeg与QT的第一步


在开始编码之前,我们需要搭建一个支持FFmpeg的QT开发环境。

这里选择使用预编译的动态链接库,对于初学者,以避免源码编译过程中可能遇到的问题。


1、FFmpeg的安装


(1)、访问FFmpeg官网

根据需要选择平台,这里以windows环境为例进行演示。


(2)、根据需要选择shared版本以获取动态链接库。



(3)、将下载的库文件解压到指定目录



2、FFmpeg的配置


(1)、配置 FFmpeg 的头文件路径




(2)、配置库文件路径




(3)、配置依赖库

将ffmpeg lib 目录下的以下文件,配置到vs 。


avcodec.lib
avdevice.lib
avfilter.lib
avformat.lib
avutil.lib
postproc.lib
swresample.lib
swscale.lib


(4)、配置dll文件

将ffmpeg bin 目录下的dll拷贝到运行目录 。


三、测试验证

#include <QDebug>
extern "C" {
#include <libavcodec/avcodec.h>
}
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    const char*version = av_version_info();
    qDebug()  <<"QT-VERSION:" << version;
    QTProject w;
    w.show();
    return a.exec();
}


编译运行效果如下:


通过本文的介绍,你已经了解了如何搭建FFmpeg与QT的跨平台开发环境,并在QT项目中成功调用FFmpeg的函数。这只是冰山一角,FFmpeg与QT的结合将为你打开一个全新的世界。在接下来的博文中,我将深入探讨如何使用FFmpeg进行音视频的编解码、转码、以及更多高级功能。敬请期待,让我们一起开启这段激动人心的音视频开发之旅!

相关文章
|
2月前
|
Unix 网络虚拟化 C++
VS2022+Qt5.14.2成功编译MITK2022.10
使用VS2022和Qt5.14.2成功编译MITK2022.10的过程,包括编译结果的截图、遇到的编译问题的解决方法、两个重要的注意事项(patch文件格式的修改和ITK-gitclone-lastrun文件的存在),以及参考链接。文中详细描述了如何解决编译过程中遇到的错误C2220和警告C4819,以及如何修改文件编码和尾行格式。
115 1
VS2022+Qt5.14.2成功编译MITK2022.10
|
4月前
|
Linux Apache C++
FFmpeg开发笔记(三十五)Windows环境给FFmpeg集成libsrt
该文介绍了如何在Windows环境下为FFmpeg集成SRT协议支持库libsrt。首先,需要安装Perl和Nasm,然后编译OpenSSL。接着,下载libsrt源码并使用CMake配置,生成VS工程并编译生成srt.dll和srt.lib。最后,将编译出的库文件和头文件按照特定目录结构放置,并更新环境变量,重新配置启用libsrt的FFmpeg并进行编译安装。该过程有助于优化直播推流的性能,减少卡顿问题。
109 2
FFmpeg开发笔记(三十五)Windows环境给FFmpeg集成libsrt
|
4月前
|
Linux
FFmpeg开发笔记(三十四)Linux环境给FFmpeg集成libsrt和librist
《FFmpeg开发实战》书中介绍了直播的RTSP和RTMP协议,以及新协议SRT和RIST。SRT是安全可靠传输协议,RIST是可靠的互联网流传输协议,两者于2017年发布。腾讯视频云采用SRT改善推流卡顿。以下是Linux环境下为FFmpeg集成libsrt和librist的步骤:下载安装源码,配置、编译和安装。要启用这些库,需重新配置FFmpeg,添加相关选项,然后编译和安装。成功后,通过`ffmpeg -version`检查版本信息以确认启用SRT和RIST支持。详细过程可参考书中相应章节。
84 1
FFmpeg开发笔记(三十四)Linux环境给FFmpeg集成libsrt和librist
|
3月前
|
C++
【qt】VS中如何配置Qt环境
【qt】VS中如何配置Qt环境
174 0
|
5月前
|
编解码 Linux
FFmpeg开发笔记(二十八)Linux环境给FFmpeg集成libxvid
XviD是开源的MPEG-4视频编解码器,曾与DivX一起用于早期MP4视频编码,但现在已被H.264取代。要集成XviD到Linux上的FFmpeg,首先下载源码,解压后配置并编译安装libxvid。接着,在FFmpeg源码目录中,重新配置FFmpeg以启用libxvid,然后编译并安装。成功后,通过`ffmpeg -version`检查是否启用libxvid。详细步骤包括下载、解压libxvid,使用`configure`和`make`命令安装,以及更新FFmpeg配置并安装。
82 2
FFmpeg开发笔记(二十八)Linux环境给FFmpeg集成libxvid
|
5月前
|
编解码 Linux
FFmpeg开发笔记(二十五)Linux环境给FFmpeg集成libwebp
《FFmpeg开发实战》书中指导如何在Linux环境下为FFmpeg集成libwebp以支持WebP图片编解码。首先,从GitHub下载libwebp源码,解压后通过`libtoolize`,`autogen.sh`,`configure`,`make -j4`和`make install`步骤安装。接着,在FFmpeg源码目录中重新配置并添加`--enable-libwebp`选项,然后进行`make clean`,`make -j4`和`make install`以编译安装FFmpeg。最后,验证FFmpeg版本信息确认libwebp已启用。
98 1
FFmpeg开发笔记(二十五)Linux环境给FFmpeg集成libwebp
|
5月前
|
Linux 编解码 Python
FFmpeg开发笔记(二十四)Linux环境给FFmpeg集成AV1的编解码器
AV1是一种高效免费的视频编码标准,由AOM联盟制定,相比H.265压缩率提升约27%。各大流媒体平台倾向使用AV1。本文介绍了如何在Linux环境下为FFmpeg集成AV1编解码库libaom、libdav1d和libsvtav1。涉及下载源码、配置、编译和安装步骤,包括设置环境变量以启用这三个库。
244 3
FFmpeg开发笔记(二十四)Linux环境给FFmpeg集成AV1的编解码器
|
5月前
|
编解码 Windows
FFmpeg开发笔记(二十九)Windows环境给FFmpeg集成libxvid
XviD是开源MPEG-4视频编码器,与DivX相似但后者非开源。早期MP4常使用XviD或DivX编码,现已被H.264取代。在Windows上集成FFmpeg的XviD编解码库libxvid,需访问<https://labs.xvid.com/source/>下载源码,解压后在MSYS环境中配置、编译和安装。之后重新配置FFmpeg,启用libxvid并编译安装。详细步骤包括configure命令、make和make install。成功后,通过`ffmpeg -version`检查是否启用libxvid。更多音视频开发技术可参考《FFmpeg开发实战:从零基础到短视频上线》。
102 0
FFmpeg开发笔记(二十九)Windows环境给FFmpeg集成libxvid
|
6月前
|
编解码 5G Linux
FFmpeg开发笔记(二十一)Windows环境给FFmpeg集成AVS3解码器
AVS3是中国首个8K及5G视频编码标准,相比AVS2和HEVC性能提升约30%。解码器libuavs3d支持8K/60P视频实时解码,兼容多种平台。《FFmpeg开发实战》书中介绍了在Windows环境下如何集成libuavs3d到FFmpeg。集成步骤包括下载源码、使用Visual Studio 2022编译、调整配置、安装库文件和头文件,以及重新配置和编译FFmpeg以启用libuavs3d。
95 0
FFmpeg开发笔记(二十一)Windows环境给FFmpeg集成AVS3解码器
|
5月前
|
安全 BI 数据库
数据库大作业——基于qt开发的图书管理系统 (一)环境的配置与项目需求的分析
数据库大作业——基于qt开发的图书管理系统 (一)环境的配置与项目需求的分析

热门文章

最新文章

下一篇
无影云桌面