Qt 配置 FFmpeg

  1. 进入 GitHub,下载带 shared 后缀的那个包即可
    1. 我将下载好的文件夹改名为 FFmpeg
    2. 并将 FFmpeg 文件夹放在 Program Files 目录下
  2. 下载好后将 bin 添加到系统环境中
C:\Program Files\FFmpeg\bin
  1. 若用 QMake 构建项目 在配置文件 pro 中 添加到文件末尾就行
FFMPEG_HOME=C:\Program Files\FFmpegINCLUDEPATH += $$FFMPEG_HOME/includeLIBS += $$FFMPEG_HOME/lib/avcodec.lib  \-L$$FFMPEG_HOME/lib/avdevice.lib  \-L$$FFMPEG_HOME/lib/avfilter.lib  \-L$$FFMPEG_HOME/lib/avformat.lib  \-L$$FFMPEG_HOME/lib/lib/avutil.lib  \-L$$FFMPEG_HOME/lib/swresample.lib  \-L$$FFMPEG_HOME/lib/swscale.lib  \
  • 若用CMake构建项目 在配置文件CMakeList.txt 中 添加到文件末尾就行

    • 注意事项 FFmpegQt 这个项目的名称改成自己的项目名就行
    # 设置FFmpeg的安装路径
    set(FFMPEG_HOME "C:/Program Files/FFmpeg")# 添加FFmpeg的头文件路径
    include_directories(${FFMPEG_HOME}/include)# 获取FFmpeg相关的链接库
    file(GLOB FFMPEG_LIBRARIES "${FFMPEG_HOME}/lib/*.lib")# 添加FFmpeg相关的链接库
    target_link_libraries(FFmpegQt PRIVATE ${FFMPEG_LIBRARIES})
    
  • 来一段测试代码 将代码放入 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() << "ffmpeg版本信息:" << av_version_info();return a.exec();
    }

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

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

相关文章

stm32f103c8t6学习笔记(学习B站up江科大自化协)-PWR电源控制

PWR简介 PVD可用在电池供电或安全要求比较高的设备&#xff0c;如果供电电压在逐渐下降&#xff0c;在电压过低的情况下可能会导致内外电路出现不确定的错误。为了避免不必要的错误&#xff0c;可以在电源电压过低的情况下&#xff0c;提前发出警告并关闭较为危险的设备 关闭的…

Java发送请求-http+https的

第一步&#xff1a;建议ssl连接对象&#xff0c;信任所有证书 第二步&#xff1a;代码同时支持httphttps 引入源码类 是一个注册器 引入这个类&#xff0c;和它的方法create 注册器&#xff0c;所以对http和https都进行注册&#xff0c;参数为id和item&#xff0c;其中http的…

【C++题解】1039. 求三个数的最大数

问题&#xff1a;1039. 求三个数的最大数 类型&#xff1a;多分支结构 题目描述&#xff1a; 已知有三个不等的数&#xff0c;将其中的最大数找出来。 输入&#xff1a; 输入只有一行&#xff0c;包括3个整数。之间用一个空格分开。 输出&#xff1a; 输出只有一行&#…

uni-app scroll-view隐藏滚动条的小细节 兼容主流浏览器

开端 想写个横向滚动的列表适配浏览器&#xff0c;主要就是隐藏一下滚动条在手机上美观一点。 但是使用uni-app官方文档建议的::-webkit-scrollbar在目标标签时发现没生效。 .scroll-view_H::-webkit-scrollbar{display: none; }解决 F12看了一下&#xff0c;原来编译到浏览…

Day27:阻塞队列、Kafka入门、发送系统通知、显示系统

阻塞队列BlockingQueue BlockingQueue 解决线程通信的问题。阻塞方法:put、take。 生产者消费者模式 生产者:产生数据的线程。消费者:使用数据的线程。 &#xff08;Thread1生产者&#xff0c;Thread2消费者&#xff09; 实现类 ArrayBlockingQueueLinkedBlockingQueuePr…

firebase:一款功能强大的Firebase数据库安全漏洞与错误配置检测工具

关于firebase firebase是一款针对Firebase数据库的安全工具&#xff0c;该工具基于Python 3开发&#xff0c;可以帮助广大研究人员针对目标Firebase数据库执行安全漏洞扫描、漏洞测试和错误配置检测等任务。 该工具专为红队研究人员设计&#xff0c;请在获得授权许可后再进行安…

制作一个RISC-V的操作系统十六-系统调用

文章目录 用户态和内核态mstatus设置模式切换核心流程封装代码背景解释代码示例解析解释目的 用户态和内核态 mstatus设置 此时UIE设置为1和MPIE为1&#xff0c;MPP设置为0 代表当前权限允许UIE中断发生&#xff0c;并且在第一个mret后将权限恢复为用户态&#xff0c;同时MIE也…

保存钉钉群直播回放下载:直播回放下载步骤详解

今天&#xff0c;我们就来拨开云雾&#xff0c;揭开保存钉钉群直播回放的神秘面纱。教会你们如何下载钉钉群直播回放 首先用到的工具我全部打包好了&#xff0c;有需要的自己下载一下 钉钉群直播回放工具下载&#xff1a;https://pan.baidu.com/s/1WVMNGoKcTwR_NDpvFP2O2A?p…

ASP.NET Core日志管理(Serilog)

.net 6 web api项目添加日志(Serilog)管理,将日志输出到控制台、文件、数据库 Nuget安装:Serilog.AspNetCore 1、用于日志输出到控制台Serilog.Formatting.Compact 2、用于日志输出到SQLServer数据库Serilog.Sinks.MSSqlServer 3、用于日志输出到文件Serilog.Sinks.RollingF…

pycharm中文件误删或者误操作,怎么恢复

恢复pycharm中文件误删或者误操作 恢复方法&#xff1a;1.xxxx.py文件误删2.xxxx.py文件内操作 在日常学习或练手时总会有一些迷之操作&#xff0c;一些文件被误删或者一些文件越改越糟&#xff0c;想要恢复操作之前的文件。 恢复方法&#xff1a; 1.选则误删文件的上级目录&…

mysql 数据转excel文件

mysql 数据转excel文件 缘由 为售后拉取数据&#xff0c;用navicat太墨迹了&#xff0c;用python写一个main方法跑一下&#xff1b; 1.抽取共同方法&#xff0c;封装成传入mysql&#xff0c;直接下载成excel&#xff1b; 2.写入所有sql语句&#xff0c;传入参数&#xff1b; 代…

Unity ParticleSystem 入门

概述 在项目的制作过程成&#xff0c;一定少不了粒子系统的使用吧&#xff0c;如果你想在项目粒子效果&#xff0c;那这部分的内容一定不要错过喔&#xff01;我添加了理解和注释更好理解一点&#xff01; 这次的内容比较多&#xff0c;右侧有目录&#xff0c;可以帮助快速导…

渗透之sql盲注

sql盲注&#xff1a;sql盲注意思是我们并不能在web页面中看到具体的信息&#xff0c;我们只能通过输入的语句的真假来判断。从而拿到我们想要的信息。 我们通常使用ascii值来进行盲注。 目录 手动注入&#xff1a; 脚本注入&#xff1a; 使用sqlmap工具注入&#xff1a; 手…

【面试经典 150 | 分治】排序链表

文章目录 写在前面Tag题目来源解题思路方法一&#xff1a;链表转数组方法二&#xff1a;自顶向下归并排序方法三&#xff1a;自底向上的归并排序 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法&#xff0c;两到三天更新一篇文章&#xff0c;欢迎催更…… 专栏内…

利用STM32实现语音识别功能

引言 随着物联网和智能设备的普及&#xff0c;语音识别技术正逐渐成为用户交互的主流方式之一。 STM32微控制器具备处理高效率语音识别算法的能力&#xff0c;使其成为实现低成本、低功耗语音交互系统的理想选择。 本教程将介绍如何在STM32平台上开发和部署一个基础的语音识…

Java进阶-Java Stream API详解与使用

本文全面介绍了 Java Stream API 的概念、功能以及如何在 Java 中有效地使用它进行集合和数据流的处理。通过详细解释和示例&#xff0c;文章展示了 Java Stream API 在简化代码、提高效率以及支持函数式编程方面的优势。文中还比较了 Java Stream API 与其他集合处理库的异同&…

【记录】Springboot项目集成docker实现一键部署

公司管理平台完成后&#xff0c;为了方便其他不懂开发的同事部署和测试&#xff0c;集成docker进行一键部署&#xff0c;也为后面自动化部署做准备。本文做个简单记录。 1、安装docker yum install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/cont…

Ubuntu GUI使用Root用户登录指南

Ubuntu GUI使用Root用户登录指南 一、前言 默认情况下&#xff0c;Ubuntu 禁用了 root 账户&#xff0c;我们必须使用 sudo 命令来执行任何需要 root 权限的任务&#xff0c;比如像这样删除一个系统配置文件&#xff08;操作危险&#xff0c;请勿尝试&#xff09;&#xff1a;…

是机遇?是未来?拥抱 AI Agent ,拥抱 AI 2.0时代~

✍️ 作者&#xff1a;哈哥撩编程&#xff08;视频号同名&#xff09; 博客专家全国博客之星第四名超级个体COC上海社区主理人特约讲师谷歌亚马逊演讲嘉宾科技博主极星会首批签约作者 &#x1f3c6; 推荐专栏&#xff1a; &#x1f3c5; 程序员&#xff1a;职场关键角色通识宝…

Devops部署maven项目

这里讲下应用k8s集群devops持续集成部署maven项目的流程。 failed to verify certificate: x509: certificate signed by unknown authority 今天在执行kubectl get nodes的时候报的证书验证问题&#xff0c;看了一圈首次搭建k8s的都是高频出现的问题。 couldn’t get curren…