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进行音视频的编解码、转码、以及更多高级功能。敬请期待,让我们一起开启这段激动人心的音视频开发之旅!

相关文章
|
1月前
|
编解码 监控 计算机视觉
QT5.14.2 视频分帧:QT与FFmpeg的高效结合
QT5.14.2 视频分帧:QT与FFmpeg的高效结合
|
1月前
|
IDE 编译器 开发工具
C/C++ IDE环境 (Qt Creator visual studio等) Cmake工程不显示头文件的解决方案
C/C++ IDE环境 (Qt Creator visual studio等) Cmake工程不显示头文件的解决方案
28 0
|
1月前
|
编解码 算法 vr&ar
深度剖析FFmpeg视频解码后的帧处理到Qt显示 从AVFrame到QImage的转换(二)
深度剖析FFmpeg视频解码后的帧处理到Qt显示 从AVFrame到QImage的转换
30 1
|
1月前
|
存储 编解码 算法
深度剖析FFmpeg视频解码后的帧处理到Qt显示 从AVFrame到QImage的转换(一)
深度剖析FFmpeg视频解码后的帧处理到Qt显示 从AVFrame到QImage的转换
63 1
|
25天前
|
编译器
正点原子IMX6ULL-安装交叉编译器、编译tslib触摸屏库、编译arm环境qt源代码
正点原子IMX6ULL-安装交叉编译器、编译tslib触摸屏库、编译arm环境qt源代码
|
1月前
|
存储 算法 编译器
【ffmpeg 到Qt的图片格式转换】精彩的像素:深入解析 AVFrame 到 QImage 的转换
【ffmpeg 到Qt的图片格式转换】精彩的像素:深入解析 AVFrame 到 QImage 的转换
49 0
|
3月前
|
Linux 编译器 数据安全/隐私保护
Windows10 使用MSYS2和VS2019编译FFmpeg源代码-测试通过
FFmpeg作为一个流媒体的整体解决方案,在很多项目中都使用了它,如果我们也需要使用FFmpeg进行开发,很多时候我们需要将源码编译成动态库或者静态库,然后将库放入到我们的项目中,这样我们就能在我们的项目中使用FFmpeg提供的接口进行开发。关于FFmpeg的介绍这里就不过多说明。
76 0
|
7月前
|
C++ Windows
FFmpeg入门及编译 3
FFmpeg入门及编译
54 0
|
7月前
|
编解码 API 开发工具
FFmpeg入门及编译 1
FFmpeg入门及编译
97 0
|
24天前
|
开发工具
使用FFmpeg4.3.1的SDK官方开发包编译ffmpeg.c(二)
使用FFmpeg4.3.1的SDK官方开发包编译ffmpeg.c(二)
12 0

热门文章

最新文章

推荐镜像

更多