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

相关文章
|
11月前
|
Ubuntu Linux PHP
利用PHP压缩音频:Linux环境下的ffmpeg简易安装指南
希望这个指南能为你的编程之旅提供帮助。只需记住,每一行代码都像音乐的音符,组合在一起,创造出美妙的旋律。祝你编程愉快!
370 6
|
Unix 网络虚拟化 C++
VS2022+Qt5.14.2成功编译MITK2022.10
使用VS2022和Qt5.14.2成功编译MITK2022.10的过程,包括编译结果的截图、遇到的编译问题的解决方法、两个重要的注意事项(patch文件格式的修改和ITK-gitclone-lastrun文件的存在),以及参考链接。文中详细描述了如何解决编译过程中遇到的错误C2220和警告C4819,以及如何修改文件编码和尾行格式。
1095 1
VS2022+Qt5.14.2成功编译MITK2022.10
|
Linux Apache C++
FFmpeg开发笔记(三十五)Windows环境给FFmpeg集成libsrt
该文介绍了如何在Windows环境下为FFmpeg集成SRT协议支持库libsrt。首先,需要安装Perl和Nasm,然后编译OpenSSL。接着,下载libsrt源码并使用CMake配置,生成VS工程并编译生成srt.dll和srt.lib。最后,将编译出的库文件和头文件按照特定目录结构放置,并更新环境变量,重新配置启用libsrt的FFmpeg并进行编译安装。该过程有助于优化直播推流的性能,减少卡顿问题。
599 2
FFmpeg开发笔记(三十五)Windows环境给FFmpeg集成libsrt
|
Linux
FFmpeg开发笔记(三十四)Linux环境给FFmpeg集成libsrt和librist
《FFmpeg开发实战》书中介绍了直播的RTSP和RTMP协议,以及新协议SRT和RIST。SRT是安全可靠传输协议,RIST是可靠的互联网流传输协议,两者于2017年发布。腾讯视频云采用SRT改善推流卡顿。以下是Linux环境下为FFmpeg集成libsrt和librist的步骤:下载安装源码,配置、编译和安装。要启用这些库,需重新配置FFmpeg,添加相关选项,然后编译和安装。成功后,通过`ffmpeg -version`检查版本信息以确认启用SRT和RIST支持。详细过程可参考书中相应章节。
593 1
FFmpeg开发笔记(三十四)Linux环境给FFmpeg集成libsrt和librist
|
编解码 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配置并安装。
464 2
FFmpeg开发笔记(二十八)Linux环境给FFmpeg集成libxvid
|
Linux 编解码 Python
FFmpeg开发笔记(二十四)Linux环境给FFmpeg集成AV1的编解码器
AV1是一种高效免费的视频编码标准,由AOM联盟制定,相比H.265压缩率提升约27%。各大流媒体平台倾向使用AV1。本文介绍了如何在Linux环境下为FFmpeg集成AV1编解码库libaom、libdav1d和libsvtav1。涉及下载源码、配置、编译和安装步骤,包括设置环境变量以启用这三个库。
1446 3
FFmpeg开发笔记(二十四)Linux环境给FFmpeg集成AV1的编解码器
|
编解码 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已启用。
540 1
FFmpeg开发笔记(二十五)Linux环境给FFmpeg集成libwebp
|
算法 Linux Windows
FFmpeg开发笔记(十七)Windows环境给FFmpeg集成字幕库libass
在Windows环境下为FFmpeg集成字幕渲染库libass涉及多个步骤,包括安装freetype、libxml2、gperf、fontconfig、fribidi、harfbuzz和libass。每个库的安装都需要下载源码、配置、编译和安装,并更新PKG_CONFIG_PATH环境变量。最后,重新配置并编译FFmpeg以启用libass及相关依赖。完成上述步骤后,通过`ffmpeg -version`确认libass已成功集成。
856 1
FFmpeg开发笔记(十七)Windows环境给FFmpeg集成字幕库libass
|
编解码 Linux
FFmpeg开发笔记(十二)Linux环境给FFmpeg集成libopus和libvpx
在《FFmpeg开发实战》一书中,介绍了如何在Linux环境下为FFmpeg集成libopus和libvpx,以支持WebM格式的Opus和VP8/VP9编码。首先,下载并安装libopus。接着,下载并安装libvpx。最后,在FFmpeg源码目录下,重新配置FFmpeg,启用libopus和libvpx,编译并安装。通过`ffmpeg -version`检查版本信息,确认libopus和libvpx已启用。
726 1
FFmpeg开发笔记(十二)Linux环境给FFmpeg集成libopus和libvpx
|
编解码 Linux Windows
FFmpeg开发笔记(十一)Windows环境给FFmpeg集成vorbis和amr
在Windows环境下,为FFmpeg集成音频编解码库,包括libogg、libvorbis和opencore-amr,涉及下载源码、配置、编译和安装步骤。首先,安装libogg,通过配置、make和make install命令完成,并更新PKG_CONFIG_PATH。接着,安装libvorbis,同样配置、编译和安装,并修改pkgconfig文件。之后,安装opencore-amr。最后,重新配置并编译FFmpeg,启用ogg和amr支持,通过ffmpeg -version检查是否成功。整个过程需确保环境变量设置正确,并根据路径添加相应库。
579 1
FFmpeg开发笔记(十一)Windows环境给FFmpeg集成vorbis和amr

推荐镜像

更多
  • qt