当前位置: 首页 > news >正文

5.2 Qt Creator 使用FFmpeg库

一、目录结构

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

二、xx.pro文件

QT -= gui
CONFIG += c++11 # console
CONFIG -= app_bundleDEFINES += QT_DEPRECATED_WARNINGS
SOURCES += main.cwin32 {# 使用 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\includeLIBS += $$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\includeLIBS += $$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测试文件

#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。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

http://www.xdnf.cn/news/1063963.html

相关文章:

  • C++ 的设计模式
  • 一文详解归并分治算法
  • 逆向入门(16)程序逆向篇-Cabeca
  • Python列表常用操作方法
  • 百度萝卜快跑携4颗禾赛激光雷达进军迪拜,千辆L4无人车开启全球化战略
  • 我开源了一套springboot3快速开发模板
  • 课程目录:腾讯混元3D × Unity3D全流程开发
  • C++基础练习 sort函数,用于排序函数
  • 第17章 转换 todo
  • 机器学习15-XGBoost
  • docker执行yum报错Could not resolve host: mirrorlist.centos.org
  • 60-Oracle 10046事件-实操
  • 闲庭信步使用SV进行图像处理系列教程介绍
  • 操作系统内核态和用户态--1-基础认识
  • 深入浅出:Go语言中的Cookie、Session和Token认证机制
  • Wire--编译时依赖注入工具
  • Qt + C++ 入门2(界面的知识点)
  • C# 数组(foreach语句)
  • Happy-LLM-Task04 :2.2 Encoder-Decoder
  • JVM(8)——详解分代收集算法
  • Python元组常用操作方法
  • LangGraph--基础学习(工具调用)
  • 最具有实际意义价值的比赛项目
  • 消融实验视角下基于混合神经网络模型的银行股价预测研究
  • WINUI/WPF——Button不同状态下图标切换
  • LLM-201: OpenHands与LLM交互链路分析
  • 【JS-4.3-鼠标常用事件】深入理解DOM鼠标事件:全面指南与最佳实践
  • Rabbitmq的五种消息类型介绍,以及集成springboot的使用
  • React JSX语法
  • OCCT基础类库介绍:Modeling Algorithm - Features