Windows 下 Qt 项目配置 FFmpeg 简明指南

一、作用

在qt项目中配置ffmpeg库

二、步骤

1、直接使用已经编译好的ffmpeg库文件,分为win32版本和win64版本;

2、win32版本下载地址:https://github.com/sudo-nautilus/FFmpeg-Builds-Win32/releases/tag/latest

3、win64版本下载地址:

https://ffmpeg.org/download.html

三、测试

1、创建qt项目,名称为untitled1,确保该项目能正常运行;

2、创建空文件夹:在.pro的同级目录下创建lib空文件夹,在lib文件夹中创建ffmpeg的空文件夹,在ffmpeg文件夹中创建win32和win64文件夹;

3、将下载的ffmpeg文件夹中的lib文件和include文件夹分别放置到对应的空文件夹中,文件目录如下

复制代码
untitled1
|
|--.pro
|--lib/
|  |
|  |--ffmpeg/
|     |
|     |--win32/
|     |  |--include/
|     |  |--lib/
|     |
|     |--win64/
|        |--include/
|        |--lib/

4、在.pro文件中配置

如果选用win32编译,则

复制代码
INCLUDEPATH += $$PWD/lib/ffmpeg/win32/include
LIBS += -L$$PWD/lib/ffmpeg/win32/lib -lavcodec -lavdevice -lavfilter -lavformat -lavutil -lpostproc -lswresample -lswscale

如果选用win64编译,则

复制代码
INCLUDEPATH += $$PWD/lib/ffmpeg/win64/include
LIBS += -L$$PWD/lib/ffmpeg/win64/lib -lavcodec -lavdevice -lavfilter -lavformat -lavutil -lpostproc -lswresample -lswscale

5、选择debug模式构建项目,并在debug文件中加入ffmepg文件夹中bin文件夹中的dll文件

三、测试

修改main.cpp文件如下

复制代码
#include "mainwindow.h"

#include <QApplication>

// 为了使用qDebug函数
#include <QDebug>

// FFmpeg是C语言库
// 有了extern "C",才能在C++中导入C语言函s数

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

int main(int argc, char *argv[]) {
    // 打印版本信息
    qDebug() << avcodec_version();

    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}

正确配置ffmpeg后,在"应用程序输出"部分会输出一串数字。

相关推荐
励志不掉头发的内向程序员34 分钟前
【LibreCAD 2D架构】鼠标点下的坐标为什么会被“吸”走?LibreCAD 对象捕捉系统解析
开发语言·c++·qt·学习·系统架构
charlie11451419110 小时前
现代Qt开发之图像处理进阶:像素操作与格式转换
开发语言·图像处理·qt
Jackson_GJH13 小时前
Qt 右键自定义菜单的实现
开发语言·c++·qt
老赵的博客20 小时前
c++ 之观察者模式
c++·qt
可乐鸡翅yeah_1 天前
多浏览器 HLS 兼容性差异排查,Chrome、Firefox、Safari 表现不一致定位
chrome·ffmpeg·音视频·firefox·safari·m3u8
Quz1 天前
QML TabBar 自定义样式与动态标签
qt
似水এ᭄往昔1 天前
【Qt】--常用控件(输入类控件)
开发语言·qt
qq_401700411 天前
Qt无边框窗体移动详解
qt
励志不掉头发的内向程序员1 天前
【LibreCAD 2D架构】RS_Line创建之后发生了什么?从图形容器到屏幕渲染
开发语言·c++·qt·学习·系统架构
mengzhi啊1 天前
QPluginLoader 动态 DLL 插件版,支持插件之间通信,广播。请求和应答
c++·qt