QT+ffmpeg环境配置

news2024/11/15 9:17:59

1.新建一个qt项目

2.下载ffmpeg文件Releases · BtbN/FFmpeg-Builds · GitHub

3.解压后,打开qt项目地址,将ffmpeg文件复制进qt项目

4.打开新建的qt项目头文件新加入如下内容:(如有需求可按需求添加)

INCLUDEPATH +=$$PWD/include

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

5.测试

将mainwindows.cpp文件替换为如下内容:(注意:调用ffmpeg头文件必须用extern "C",因为ffmpeg为纯c)

#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <QDebug>
extern "C"
{
#include <libavformat/avformat.h>
#include <libavcodec/avcodec.h>
}
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    avformat_network_init();


    const char* filename = "input.mp4"; // Ensure this file exists or change to a valid path
    AVFormatContext* formatContext = nullptr;
    if (avformat_open_input(&formatContext, filename, nullptr, nullptr) != 0) {
        qWarning() << "Could not open the file.";
    } else {
        // Print some information about the file
        qDebug() << "Format:" << formatContext->iformat->name;
        qDebug() << "Duration:" << formatContext->duration / AV_TIME_BASE << "seconds";
        qDebug() << "Bit rate:" << formatContext->bit_rate;

        // Clean up
        avformat_close_input(&formatContext);
    }
}

MainWindow::~MainWindow()
{
    delete ui;
}

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

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

相关文章

【多线程-从零开始-捌】阻塞队列,消费者生产者模型

什么是阻塞队列 阻塞队里是在普通的队列&#xff08;先进先出队列&#xff09;基础上&#xff0c;做出了扩充 线程安全 标准库中原有的队列 Queue 和其子类&#xff0c;默认都是线程不安全的 具有阻塞特性 如果队列为空&#xff0c;进行出队列操作&#xff0c;此时就会出现阻…

114套新闻网站源码+采集规则+安装使用教程-网络公司建站资源

运行环境 PHP5.6MYSQL5.6 – 系统版本支持WindowsLinux 源码介绍 1.版权问题 本114套新闻源码均由EYOUCMS系统二次开发而成&#xff0c;因为系统不涉及会员功能&#xff0c;所以没有版权纠纷问题&#xff0c;客户可以一直免费使用。 2.自动采集发布 系统自身集成了网易,新…

odoo17 翻译一个小bug

odoo17 翻译一个小bug 用户界面的没译过来 标红处&#xff0c;但在zh_CN.po中明显已经翻译过来了&#xff0c;采取暴力点的&#xff0c;直接把base下的base.pot删除&#xff0c;再更新一下&#xff0c;可以正常显示了

【区块链+社会公益】腾讯志愿者公益平台 | FISCO BCOS应用案例

由腾讯技术公益团队主导的“公益志愿者平台”&#xff0c;旨在链接公益组织和志愿者。公益组织入驻平台后可以发布公 益活动、征集志愿者&#xff0c;志愿者可以在平台报名参加公益活动、获得公益组织和平台联合颁发的志愿服务证书。 腾讯技术公益采用了微众区块链技术对 “公…

【Linux】网络编程套接字Scoket:UDP网络编程

目录 一、了解UDP协议 二、了解端口和IP地址 三、套接字概述与Socket的概念 四、Socket的类型 五、 Socket的信息数据结构 六、网络字节序与主机字节序的互相转换 七、地址转换函数 八、UDP网络编程流程及相关函数 socket函数 bind函数 recvfrom函数 sendto函数 …

网站开发涉及到的技术内容介绍——后端PHP(2)

网站开发涉及到的技术内容介绍——后端PHP(1)https://blog.csdn.net/xiaochenXIHUA/article/details/141000752?spm=1001.2014.3001.5501 一、PHP的常用函数 1.1、PHP文件夹的常用函数 PHP的目录常用函数 序号目录常用函数说明1$_SERVER[DOCUMENT_ROOT]获取到PHP项目的根目…

C++ -- 负载均衡式在线OJ (一)

一、项目宏观结构 1.项目功能 本项目的功能为一个在线的OJ&#xff0c;实现类似leetcode的题目列表、在线提交、编译、运行等功能。 2.项目结构 该项目一共三个模块&#xff1a; comm : 公共模块compile_server : 编译与运行模块oj_server : 获取题目列表&#xff0c;查看题…

Spring Boot项目缺少配置文件的解决方法:IDEA

本文介绍在IntelliJ IDEA软件中&#xff0c;为Spring Boot项目添加配置文件的操作方法。 最近&#xff0c;在IntelliJ IDEA软件中新创建了一个Spring Boot项目&#xff0c;是通过如下图所示的方法直接新建的。 但是&#xff0c;随后发现这样创建的Spring Boot项目没有配置文件。…

Threejs实现鼠标控制相机+键盘控制模型+点击指定点控制模型移动

1.前言 Threejs实现鼠标控制相机功能,键盘控制模型功能,点击指定点控制模型移动功能 键盘使用WASD控制模型移动效果图: 鼠标移动可控制相机的位置控制模型移动到指定点效果图: 2.功能拆分 根据以上效果图,可以得到以下三个主要实现的功能 鼠标移动可以使相机跟随通过键…

leetcode-121-买卖股票的最佳时机

原理&#xff1a; 核心原理&#xff1a; 如果我们真的在买卖股票&#xff0c;我们肯定会想&#xff1a;如果我是在历史最低点买入就好了&#xff01;该历史最低点是指卖出当天之前的历史最低点而不是全局最低点。 实现步骤&#xff1a; 1、初始化变量preprices[0]表示历史股…

20240809 每日AI必读资讯

乒乓球AI机器人赢了人类&#xff01;正反手灵活转换&#xff0c;擦网球高球都能接 - 谷歌发布首个达到人类竞技水平的机器人Agent&#xff0c;挑战乒乓球赛场。 - 机器人通过学习大量乒乓球状态数据&#xff0c;掌握了正手上旋球、反手瞄准等技能&#xff0c;展现出高速运动…

CTFHUB | web进阶 | PHP | Bypass disable_function | bypass iconv 2

开启题目 查看源码&#xff0c;发现可以蚁剑连接 进入之后无发现&#xff0c;使用插件 iconv 上传脚本 进入之后发现多了一个 .antproxy.php&#xff0c;复制文件名重新拼接连接 进入终端&#xff0c;查看根目录之后发现了有两个 flag 文件&#xff0c;之后发现了本题的 flag

STM32CUBEMX+PWM多一个尖峰的问题

问题描述&#xff1a;使用TIM2的通道3产生PWM波形&#xff0c;产生n个数量的波形后&#xff0c;在停止的时候会有一个尖峰。 怀疑是自动重载值临界的时候有问题&#xff0c;对重载值多减一个值&#xff0c;但还是有这个问题。 解决&#xff1a;电路是默认低电平&#xff0c;我…

skynet 连接redis

文章目录 概述main.luaagent.luaredis.lua 小结 概述 之前写过skynet 入门篇&#xff0c;还有skynet实操篇&#xff1b;这2篇&#xff0c;主要写了skynet如何使用&#xff0c;还有些skynet的调用流程之类。 其实&#xff0c;看过skynet的demo之后&#xff0c;发现skynet中没有…

L1-书生·浦语大模型全链路开源体系介绍

视频观看地址&#xff1a;书生浦语大模型全链路开源开放体系_哔哩哔哩_bilibili 本视频介绍了书生葡语大模型的开源开放体系&#xff0c;包括技术发展、性能提升、模型架构、开源生态等。 要点: - &#x1f31f; 开源开放体系涵盖数据收集、标注、训练、微调、评测、部署等全…

Ubuntu 系统的部署和基础操作(使用)

​ 大家好&#xff0c;我是程序员小羊&#xff01; 前言 Ubuntu 是一款基于 Debian 的开源 Linux 操作系统&#xff0c;以其易用性和强大的社区支持而广受欢迎。对于许多初次接触 Linux 的用户来说&#xff0c;Ubuntu 是理想的入门选择。本文将介绍 Ubuntu 系统的基本操作和使用…

cordova打包后请求不到接口(接口请求失败)

原因&#xff1a;CORS跨域问题导致 解决方法&#xff1a; 将根目录下的config.xml打开&#xff0c;添加 preference 即可

10分钟学会docker安装与使用

文章目录 1、docker简介2、docker的基本组成3、docker的安装与配置4、docker的常用命令 1、docker简介 什么是容器&#xff1f; 它是一种虚拟化的方案&#xff0c;是操作系统级别的虚拟化&#xff0c;只能运行相同或相似内核的操作系统&#xff0c;依赖于Linux内核特性&#x…

Qt实现圆形窗口

重新实现paintEvent()函数。 效果如下&#xff1a; 效果为蓝色区域&#xff0c;背景是vs接面&#xff0c;代码直接复制可用&#xff0c;留给有需要的人。 #ifndef CircleWidget_h__ #define CircleWidget_h__#include <QWidget>class CCircleWidget : public QWidget {Q…

MySQL安装以及配置

目录 1. MySQL安装包下载 2. 安装 3. 配置 4. 使用MySQL 5. 配置环境变量 1. MySQL安装包下载 1.1 迅雷下载 分享文件&#xff1a;MySQL安装包.zip 链接&#xff1a;https://pan.xunlei.com/s/VO3llUOt6rFFWl9TdrTrJI-cA1?pwdxere# 1.2 官网下载 MySQL :: Download MyS…