当前位置: 首页 > 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.lqws.cn/news/463681.html

相关文章:

  • win环境使用openssl创建p12证书
  • 微前端MFE:(React 与 Angular)框架之间的通信方式
  • word-spacing 属性
  • Kubernetes控制平面组件:Kubelet详解(八):容器存储接口 CSI
  • C++链表的虚拟头节点
  • 课程目录:腾讯混元3D × Unity3D全流程开发
  • Python pytesseract【OCR引擎库】 简介
  • 【JVM|内存结构】第一天
  • 【论文笔记】【强化微调】TinyLLaVA-Video-R1:小参数模型也能视频推理
  • Spring-MyBatis基本操作
  • linux weston flutter remote desktop
  • 2025年- H83-Lc191--139.单词拆分(动态规划)--Java版
  • JF - 600MT称重变送器与Modbus TCP转Profibus DP网关通讯案例
  • MCPServer编程与CLINE配置调用MCP
  • 项目练习:Jaspersoft Studio制作PDF报表时,detail和column footer之间存在很大的空白区
  • SkyWalking探针技术监控Spring Boot微服务——部署与应用详解
  • Laravel 项目中图片上传后无法访问的问题
  • 进程间通信——管道
  • 【Qt开发】网络运用
  • “氢键本征型材料 + 柔性电容应变片”方案分析
  • NW849NX721美光固态闪存NX745NX751
  • C++中的指针与引用
  • ProtoBuf:proto3 语法详解
  • 三甲医院AI医疗样本数据集分类与收集全流程节点分析(下)
  • 【appium】2.初始连接脚本配置
  • React扩展知识点
  • 使用Node.js开发服务端接口
  • 【赵渝强老师】使用mysqldump备份MySQL
  • 燕山大学多核程序设计实验(25最新版)
  • 数据分析核心指标体系:从求和、计数到比较的全维度计算方法