Qt6 FFmpeg入门1 - 环境配置

news2024/11/15 22:36:39

目录

      • 环境配置
        • ffmpeg 下载
        • qt 配套环境配置
        • 代码测试

环境配置

文章更新时间:2023/06/24

ffmpeg 下载

由于大部分的关于配置 ffmpeg+qt 环境的文章都停留在 2021 年,且许多方法均已过时,现在介绍一个最新的方法,并分析槽点供大家参考

前往 FFmpeg 官网下载对应库包:官网地址
按照下图,选择 window 版本的,推荐下载源选择图中指示的第二个

在这里插入图片描述

进入 github,下载带 shared 后缀的那个包即可

在这里插入图片描述


qt 配套环境配置

把下载好的压缩包解压到任意一个文件夹内,我们发现这里有 4 个文件夹

在项目根目录下新建一个文件夹 ffmpeglib
然后我们需要把 include 和 lib 这两个文件夹全部复制到该 ffmpeglib 目录下
最终看起来是这样的:(上方路径中,qt_ffmpeg 是我的项目根目录!)

在这里插入图片描述


这还没完,回到 qtcreator,打开咱们的项目,直接点击运行
此时会自动构建

回到 ffmpeg 根目录下,打开 bin 目录,复制所有的 dll 文件,然后粘贴到构建文件夹的 debug 文件夹下

在这里插入图片描述


代码测试

在项目的 pro 文件内添加以下内容,导入项目根目录下的 ffmpeg 库

INCLUDEPATH +=$$PWD/ffmpeglib/include

LIBS += $$PWD/ffmpeglib/lib/avcodec.lib \
        $$PWD/ffmpeglib/lib/avfilter.lib \
        $$PWD/ffmpeglib/lib/avformat.lib \
        $$PWD/ffmpeglib/lib/avutil.lib \
        $$PWD/ffmpeglib/lib/postproc.lib \
        $$PWD/ffmpeglib/lib/swresample.lib \
        $$PWD/ffmpeglib/lib/swscale.lib

在 main.cpp 里面调用对应库,并使用一个简单的代码进行验证

#include "Widget.h"

#include <QApplication>
#include <QDebug>

// 需要使用C来对C++进行支持
// 注意注意注意,这里的C是大写的!不是小写的!小写会报错!
extern "C"
{
//avcodec:编解码(最重要的库)
#include <libavcodec/avcodec.h>
    //avformat:封装格式处理
#include <libavformat/avformat.h>
    //swscale:视频像素数据格式转换
#include <libswscale/swscale.h>
    //avdevice:各种设备的输入输出
#include <libavdevice/avdevice.h>
    //avutil:工具库(大部分库都需要这个库的支持)
#include <libavutil/avutil.h>
}


int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();

    // 测试avcodec版本
    qDebug() << avcodec_version();

    return a.exec();
}

如果运行完全没有问题,你将会在应用程序输出里面看见一串数字


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/690215.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ElementUI在对话框中新增数据,使用rules校验规则进行校验,再点击完修改之后,在进行新增校验会报错

1.新增与修改使用同一个对话框&#xff0c;当修改完成一条数据后&#xff0c;重新打开新增的对话框&#xff0c;通过ElementUI的rules检验会报错 解决方案&#xff1a;在对应的rules校验中每个字段添加trigger: blur 即可解决上述问题,注意&#xff1a;下面的xxx代表需要校验的…

设计模式-05.01-行为型-观察者模板

观察者模式【常用】 我们常把 23 种经典的设计模式分为三类&#xff1a;创建型、结构型、行为型。前面我们已经学习了创建型和结构型&#xff0c;从今天起&#xff0c;我们开始学习行为型设计模式。我们知道&#xff0c;创建型设计模式主要解决“对象的创建”问题&#xff0c;…

工具篇7--RocketMq消息模型介绍

文章目录 前言&#xff1a;一、RocketMq是什么&#xff1f;二、RocketMq 模型介绍&#xff1a;1.RocketMq 模型图&#xff1a;2.RocketMq 生产者&#xff1a;2.1 生产者消费发送流程&#xff1a;2.2 生产者消息发送&#xff1a;2.2.1 同步发送普通消息&#xff1a;2.2.1 异步发…

AI大模型及算力要求

AI大模型对算力的要求非常高&#xff0c;需要高性能的硬件设备和分布式训练技术来支持。随着AI技术的不断发展&#xff0c;未来可能会出现更大、更复杂的模型&#xff0c;对算力的要求也将更高。今天和大家分享几个大模型及算力要求&#xff0c;希望对大家有所帮助。北京木奇移…

DETR系列:RT-DETR实战部署

上篇文章介绍RT-detr的论文内容&#xff08;RT-DETR 论文解析&#xff09;&#xff0c;本篇文章介绍算法复现、tensorRT加速、python调用部署、训练等方法。 RT-DETR实战部署 1.复现模型详情2.环境准备3.训练4.部署5.测试 1.复现模型详情 本次复现主要测试下表中RT-DETR-R50和…

Kafka集群模式核心概念

文章目录 1.Kafka集群模式下Broker|主题|分区|副本的概念1.1.Broker|主题|分区|副本的概念1.2.创建一个Topic指定3个副本数1.3.多副本的Topic详细信息描述 2.集群模式下以消费者组消费Topic中各分区消息的概念2.1.分消费者组消费各分区的概念2.2.集群模式下消息的发送和消费 3.…

Go 语言中 Context 的作用和使用方法详解

KDP&#xff08;数据服务平台&#xff09;是一款由 KaiwuDB 独立自主研发的数据服务产品&#xff0c;以 KaiwuDB 为核心&#xff0c;面向 AIoT 场景打造的一站式数据服务平台&#xff0c;满足工业物联网、数字能源、车联网、智慧产业等行业核心业务场景下数据采集、处理、计算、…

在Azure SQL DB/Azure托管实例里快速查询各数据库大小以及每个数据库下表的大小

目录 &#xff08;一&#xff09;前言 &#xff08;二&#xff09;正文 1. 环境&#xff1a; 2. 查看实例下每个数据库的空间大小 &#xff08;1&#xff09; SQL语法 &#xff08;2&#xff09;运行结果 3. 查看特定数据库下每张表的大小 &#xff08;1&#xff09;SQ…

一个sql中的一张表,最多只会走一个索引吗

目录 先给结论 做实验 1.根据时间范围查询 什么是key_len&#xff1f; 2.根据时间范围和 is_delete 查询 最左匹配原则 2.根据时间范围和 blog_type 查询 如果加上id会怎么样 并不是索引一定会走 1.IN子表数量过多 2.单次查询超过30% 先给结论 先说结论&#xff0c;…

设计模式第14讲——享元模式(Flyweight)

目录 一、什么是享元模式 二、角色组成 三、优缺点 四、应用场景 4.1 生活场景 4.2 java场景 五、代码实现 5.0 代码结构 5.1 Bike——抽象享元类&#xff08;FlyWeight&#xff09; 5.2 具体享元类&#xff08;ConcreteFlyWeight&#xff09; 5.3 BikeFactory——享元…

layui框架学习(28:穿梭框模块)

Layui模块中的穿梭框模块transfer主要支撑穿梭框组件的显示、交互等操作。所谓穿梭框是指左右各有一个复选框列表&#xff0c;可以将左侧选中的项目移动到右边&#xff0c;后者将右侧的选中项移回左边的控件&#xff0c;其样式类似下图所示&#xff08;参考文献5-6&#xff09;…

TI AM62x工业开发板规格书(单/双/四核ARM Cortex-A53 + 单核ARM Cortex-M4F,主频1.4GHz)

1 评估板简介 创龙科技TL62x-EVM是一款基于TI Sitara系列AM62x单/双/四核ARM Cortex-A53 单核ARM Cortex-M4F多核处理器设计的高性能低功耗工业评估板&#xff0c;由核心板和评估底板组成。处理器ARM Cortex-A53(64-bit)主处理单元主频高达1.4GHz&#xff0c;ARM Cortex-M4F实…

如何使用 Flink SQL 探索 GitHub 数据集|Flink-Learning 实战营

为进一步帮助开发者学习使用 Flink&#xff0c;Apache Flink 中文社区近期发起 Flink-Learning 实战营项目。本次实战营通过真实有趣的实战场景帮助开发者实操体验 Flink&#xff0c;课程包括实时数据接入、实时数据分析、实时数据应用的场景实。并结合小松鼠助教模式&#xff…

USR-C216 WIIF连接手机

复位后连接USR-C216无线 浏览器输入10.10.100.254 账号密码为admin 客户端模式服务器地址无效&#xff0c;默认就行 打开手机网络调试助手选择客户端模式&#xff0c;输入10.10.100.254&#xff0c;端口8899 可以透传了 关于AT指令&#xff0c;先发“”&#xff0c;然后3s内发…

【数据管理架构】什么是 OLTP?

OLTP&#xff08;在线事务处理&#xff09;支持在 ATM 和在线银行、收银机和电子商务以及我们每天与之交互的许多其他服务背后进行快速、准确的数据处理。 什么是 OLTP&#xff1f; OLTP 或在线事务处理允许大量人员&#xff08;通常通过 Internet&#xff09;实时执行大量数据…

基于Vue+Node.js的宠物领养网站的设计与开发-计算机毕设 附源码83352

基于VueNode.js的宠物领养网站的 摘 要 随着互联网大趋势的到来&#xff0c;社会的方方面面&#xff0c;各行各业都在考虑利用互联网作为媒介将自己的信息更及时有效地推广出去&#xff0c;而其中最好的方式就是建立网络管理系统&#xff0c;并对其进行信息管理。由于现在网络…

【国产FPGA应用】紫光Pango Design联合 Modelsim 仿真方法

Modelsim 是 FPGA 开发中重要的 EDA 设计仿真工具&#xff0c;主要用于验证数字电路设计是否正确。我们经常用Xilinx的ISE或者Vivado与Modelsim进行联合仿真&#xff0c;其实国产FPGA开发工具也可以与Modelsim进行联合仿真&#xff0c;对于设计比较复杂的应用还是非常方便的&am…

创邻科技与浪潮信息KOS完成澎湃技术认证

近日&#xff0c;浙江创邻科技有限公司&#xff08;简称&#xff1a;创邻科技&#xff09;自主研发的Galaxybase图数据库系统与浪潮信息服务器操作系统KOS V5完成澎湃技术认证。创邻科技作为国内首个成熟的商业图数据库供应商&#xff0c;在同类厂商中率先完成认证。测试结果显…

vue3通过render函数实现一个菜单下拉框

背景说明 鼠标移动到产品服务上时&#xff0c;出现标红的下拉框。 使用纯css的方案实现最简单&#xff0c;但是没什么技术含量&#xff0c;弃之&#xff1b;使用第三方组件库&#xff0c;样式定制麻烦弃之。因此&#xff0c;我们使用vue3直接在页面创建一个dom作为下拉框吧。…

【经验分享】Docker容器部署方法说明

前 言 本案例适用开发环境&#xff1a; Windows开发环境&#xff1a;Windows 7 64bit、Windows 10 64bit Linux开发环境&#xff1a;Ubuntu 18.04.4 64bit 虚拟机&#xff1a;VMware15.1.0 Docker是一个开源的应用容器引擎&#xff0c;让开发者可打包他们的应用以及依赖包…