5.2 Qt Creator 使用FFmpeg库

一、目录结构

bash 复制代码
├─3rdparty          # 第三方依赖库
│  └─ffmpeg-4.4.3   # ffmpeg库
│      ├─mingw      # 用MinGW64编译的库
│      │  ├─bin
│      │  ├─include
│      │  └─lib
│      └─msvc       # 用MSVC编译的库
│          ├─bin
│          ├─include
│          └─lib
├─demo3.pro         # 项目配置文件
└─main.c            # 源码目录

二、xx.pro文件

bash 复制代码
QT -= gui
CONFIG += c++11 # console
CONFIG -= app_bundle

DEFINES += QT_DEPRECATED_WARNINGS
SOURCES += main.c

win32 {
    # 使用 QT_ARCH 检测架构
    contains(QT_ARCH, x86_64) {
        message("Configuring for 64-bit")

        # 公共配置:定义安装目标路径(根据构建模式自动区分)
        CONFIG(release, debug|release) {
            ffmpeg_dlls.path = $$OUT_PWD/release  # Release模式目标路径
        } else {
            ffmpeg_dlls.path = $$OUT_PWD/debug    # Debug模式目标路径
        }
        INSTALLS += ffmpeg_dlls  # 注册安装目标

        # 编译器类型检测
        win32-msvc* {
            message("Using MSVC toolchain")
            INCLUDEPATH += $$PWD\3rdparty\ffmpeg-4.4.3\msvc\include
            LIBS += $$PWD\3rdparty\ffmpeg-4.4.3\msvc\lib\avdevice.lib   \
                    $$PWD\3rdparty\ffmpeg-4.4.3\msvc\lib\avfilter.lib   \
                    $$PWD\3rdparty\ffmpeg-4.4.3\msvc\lib\avformat.lib   \
                    $$PWD\3rdparty\ffmpeg-4.4.3\msvc\lib\avcodec.lib    \
                    $$PWD\3rdparty\ffmpeg-4.4.3\msvc\lib\swscale.lib    \
                    $$PWD\3rdparty\ffmpeg-4.4.3\msvc\lib\swresample.lib \
                    $$PWD\3rdparty\ffmpeg-4.4.3\msvc\lib\avutil.lib

            # 指定需要安装的DLL文件
            ffmpeg_dlls.files = $${FFMPEG_MSVC_DIR}\bin\*.dll
        }

        win32-g++ {
            message("Using MinGW toolchain")
            INCLUDEPATH += $$PWD\3rdparty\ffmpeg-4.4.3\mingw\include
            LIBS += $$PWD\3rdparty\ffmpeg-4.4.3\mingw\lib\libavdevice.dll.a   \
                    $$PWD\3rdparty\ffmpeg-4.4.3\mingw\lib\libavfilter.dll.a   \
                    $$PWD\3rdparty\ffmpeg-4.4.3\mingw\lib\libavformat.dll.a   \
                    $$PWD\3rdparty\ffmpeg-4.4.3\mingw\lib\libavcodec.dll.a    \
                    $$PWD\3rdparty\ffmpeg-4.4.3\mingw\lib\libswscale.dll.a    \
                    $$PWD\3rdparty\ffmpeg-4.4.3\mingw\lib\libswresample.dll.a \
                    $$PWD\3rdparty\ffmpeg-4.4.3\mingw\lib\libpostproc.dll.a   \
                    $$PWD\3rdparty\ffmpeg-4.4.3\mingw\lib\libavutil.dll.a

            # 指定需要安装的DLL文件
            ffmpeg_dlls.files =$$PWD\3rdparty\ffmpeg-4.4.3\mingw\bin\*.dll
        }
    }
    else {
        message("32-bit builds not configured")
    }
}

说明:

  • 指定安装位置和目标,当执行make install 时拷贝dll文件到输出目录。
  • 注意区分动态库导入库和静态库文件,可以通过库文件大小来判断。

三、main.c测试文件

c 复制代码
#include <stdio.h>
#include "libavcodec/avcodec.h"
#include "libavdevice/avdevice.h"
#include "libavfilter/avfilter.h"
#include "libavformat/avformat.h"
int main()
{
    printf("avcodec version is %u \n",avcodec_version());
    printf("avdevice version is %u \n",avdevice_version());
    printf("avfilter version is %u \n",avfilter_version());
    printf("avformat version is %u \n",avformat_version());
    return 0;
}

四、编译后自动拷贝dll文件

如何触发make install ?在项目设置哪里添加一个make install。


相关推荐
微信公众号:AI创造财富几秒前
文生视频(Text-to-Video)
开发语言·人工智能·python·深度学习·aigc·virtualenv
sunrui5219 分钟前
ESP 8266+ TTS 实现对讲机语音播报 时间 和信息
开发语言
Q_Q51100828521 分钟前
python的校园兼职系统
开发语言·spring boot·python·django·flask·node.js·php
小灰灰搞电子22 分钟前
QVariant详解与属性访问
qt·qvariant
OpenC++40 分钟前
【C++】原型模式
开发语言·c++·设计模式·原型模式
C语言小火车1 小时前
【C语言】贪吃蛇小游戏 丨源码+解析
c语言·开发语言·课程设计·c语言游戏·贪吃蛇源码
极地星光1 小时前
Qt/C++应用:防御性编程完全指南
开发语言·c++·qt
Love__Tay2 小时前
【Python小练习】3D散点图
开发语言·python·3d
iCxhust2 小时前
一款复古的Intel8088单板机制作
开发语言·单片机·嵌入式硬件
CoderIsArt3 小时前
C# WPF常用调试工具汇总
开发语言·c#·wpf