【Qt】 FFmpeg+Qt windows 32位或者64位环境搭建

简介

目前Ffmpeg官网(64位连接)下载的均为64位编译的,这要求我们采用的Qt creator也采用64位编译器。但是仍存在部分用户采用32位编译器,所以这部分用户需下载32 Ffmpeg(32位连接)。

根据使用的编译器位数下载ffmpeg版本,之后配置操作一致。

Note:32位与64位下载连接不同,请分别点击。

下载ffmpeg

Ffmpeg下载链接。建议下载稳定版本。

通过版本号命名的为稳定版,日期命名的为最新版。

这里会出现三个版本:

essentials:必要的组件,东西可能不全。

full:全面的,里面的库文件比较全。

shared:有动态链接库。

通过版本号命名的为稳定版,日期命名的为最新版。仅是使用的话下载essentials即可,Qt等调库需要选择shared(绿色箭头)。

下载完成后需要配置环境变量请参考:【流媒体】 通过ffmpeg硬解码拉流RTSP并播放。开头便是不在赘述。

配置头文件与库文件

在建立的Qt的.pro文件中添加文件路径。

复制代码
#-------------------------------------------------
#
# Project created by QtCreator 2024-07-14T21:21:58
#
#-------------------------------------------------

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = ffmpegtest
TEMPLATE = app

# The following define makes your compiler emit warnings if you use
# any feature of Qt which has been marked as deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS

# You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0


SOURCES += \
        main.cpp \
        widget.cpp

HEADERS += \
        widget.h

FORMS += \
        widget.ui



FFMPEG_HOME=D:\LIB\ffmpeg-n6.0-latest-win32-lgpl-shared-6.0
    #设置 ffmpeg 的头文件
INCLUDEPATH += $$FFMPEG_HOME/include

   #设置导入库的目录一边程序可以找到导入库
    # -L :指定导入库的目录
    # -l :指定要导入的 库名称
LIBS +=  -L$$FFMPEG_HOME/lib \
             -lavcodec \
             -lavdevice \
             -lavfilter \
            -lavformat \
            -lavutil \
            -lswresample \
            -lswscale

将ffmpeg的 bin目录下的动态库文件(可以全选)复制到Qt工程的Debug文件下面。

全选复制到

配置代码测试环境

新建Qt工程,添加图示头文件及代码:

复制代码
#include "widget.h"
#include <QApplication>
#include <QDebug>

extern "C" {
#include <libavcodec/avcodec.h>
#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>
#include <libswscale/swscale.h>
#include <libavdevice/avdevice.h>
}


int main(int argc, char *argv[])
{
    qDebug() << "ffmpeg版本信息:"<< av_version_info();
    QApplication a(argc, argv);
    Widget w;
    w.show();

    return a.exec();
}

32的ffmpeg采用32位编译,64位使用64位编译器。

运行结果

输出版本信息即配置环境成功。

相关推荐
江畔柳前堤6 小时前
HBM:大语言模型时代的「算力血液」——从内存墙到带宽革命的深度拆解
服务器·人工智能·windows·目标检测·语言模型·自然语言处理·软件工程
我是小灰灰吖8 小时前
QT在线安装器使用指南:从下载到配置完整教程
linux·qt·ubuntu
C++ 老炮儿的技术栈11 小时前
从 Qt Designer 属性编辑器的层级可以看到继承链
c语言·数据库·c++·qt·sqlite·visual studio
天天进步201511 小时前
UI-TARS 源码解析 #22:二次开发实战:用 UI-TARS 做一个简单的 Windows 自动操作 Agent
windows·ui
啊哈一半醒11 小时前
Windows 虚拟机搭建 CentOS 全过程(2026 最新版 + 踩坑解决)
linux·windows·centos
new_zhou11 小时前
C++ 项目 AI 协作指南(Windows / MSVC 环境)
c++·人工智能·windows
我是小灰灰吖13 小时前
Ubuntu 22.04 + Qt 6.9.3 应用程序打包与部署完整指南
qt·ubuntu
cpp_learner13 小时前
FFmpeg 解复用全流程解析
ffmpeg
爬楼的猪14 小时前
跟着AI Agent学powershell
windows·ai编程
笨鸟先飞,勤能补拙14 小时前
网络安全等级保护 2.0:从定级备案、建设整改到持续合规的系统指南
网络·人工智能·windows·安全·web安全·网络安全·github