Qt+ffmpeg环境搭建

news/2024/12/23 5:40:38/

qtffmpeg环境搭建">Qt+ffmpeg环境搭建

各平台常见视频开发库举例:

  • iOS:AVFoundation AudioUnit
  • Android:MediaPlayer,MediaCodec
  • Windows:DirectShow
  • Linux:GStreamer

ffmpeg-库是一个跨平台的视频开发库-还有-libvlc-也是一个跨平台的视频开发库">FFmpeg 库是一个跨平台的视频开发库, 还有 libVLC 也是一个跨平台的视频开发库

  • 掌握了其中一个库, 也能很快上手其它库, 因为音视频解码的原理类似

ffmpeg-库有两种方式">引入 FFmpeg 库有两种方式

一种是直接引入源码进行开发(因为源码庞大,编译较慢,不推荐新手学习时用这种方法)
一种是引入头文件和动态库进行开发,下载地址是:

https://ffmpeg.org/download.html
https://github.com/GyanD/codexffmpeg/releases //下载其它版本可以在这里下载, 已知5.1.2版本可兼容win7

shared版本是有动态库的版本(essentials是必要组件版本,东西可能不全;full是完整版本),gpl和lgpl是开源协议版本不同。
这里我采用的shared版本。

qt">安装Qt

我选择的是5.12版,因为该版本可以直接在网上下载到完整安装包。
编译器选择的是MinGW

ffmpeg-库加载到qt项目当中">将 FFmpeg 库加载到Qt项目当中

  • 在环境变量中添加动态库文件所在路径(例如):
D:\ffmpeg_dev\ffmpeg-6.1.1-full_build-shared\bin
  • 在Qt文件中添加库文件
win32: {FFMPEG_HOME=D:\ffmpeg_dev\ffmpeg-6.1.1-full_build-shared# 设置 ffmpeg 头文件路径INCLUDEPATH += $$FFMPEG_HOME/include# 加载 ffmpeg 导入库# -L :指定导入库的目录# -l :指定要导入的 库名称LIBS +=  -L$$FFMPEG_HOME/lib \-lavcodec \-lavdevice \-lavfilter \-lavformat \-lavutil \-lpostproc \-lswresample \-lswscale
}

ffmpeg-库版本">测试FFMpeg 库版本

extern "C" {
#include <libavcodec/avcodec.h>
}qDebug() << "test: FFMpeg Version: "<< av_version_info();
//加入上述代码,如可以正常打印ffmpeg版本,则说明ffmpeg库正常。如下,运行时会在调试窗口打印如下信息:
//test: FFMpeg Version:  6.1.1-full_build-www.gyan.dev

至此,Qt+FFmpeg环境即完成了。


http://www.ppmy.cn/news/1514232.html

相关文章

【速览】数据库-MySQL(更新中)

目录 一、背景二、优缺点三、适用场景四、核心组成基本语法数据库引擎事务索引锁连接池分库分表主从读写分离备份 五、底层原理六、对比参考 一、背景 这个技术出现的背景、初衷和要达到什么样的目标或是要解决什么样的问题。这个问题非常关键&#xff0c;也就是说&#xff0c;…

数据库;SQL语言; 数据库编程

数据库&#xff1a; 1.概念&#xff1a; 文件&#xff1a;存放数据&#xff0c;掉电数据不会丢失&#xff0c;软件的配置及想要持续保存的数据放入文件中 大批量数据存储和管理时使用数据库 2.类型&#xff1a; 1.关系型数据库 1.Or…

虚幻5|AI视力系统,听力系统,预测系统(1)视力系统

继宠物伴随系统初步篇后续 虚幻5|AI巡逻宠物伴随及定点巡逻—初步篇-CSDN博客 一&#xff0c;听力系统 1.打开宠物ai的角色蓝图 2.选中ai感知组件 右侧细节&#xff0c;找到ai感知&#xff0c;添加感知配置&#xff0c;我们需要的是ai视力配置 3.选中左侧创建的ai感知组件&…

ES的介绍和使用

全文搜索引擎 Elastic Search 第一节 引言 当系统数据量上了10亿、100亿条的时候&#xff0c;我们用什么数据库好&#xff1f;如何解决单点故障&#xff1f;如何提升检索速度&#xff1f;如何解决统计分析问题&#xff1f; 传统数据库的应对解决方案 关系型数据库 通过主从备…

使用 Python 解密加密的 PDF 文件

使用 Python 进行 PDF 文件加密-CSDN博客文章浏览阅读89次&#xff0c;点赞2次&#xff0c;收藏2次。定义一个名为的函数&#xff0c;该函数接受三个参数&#xff1a;输入的 PDF 文件路径input_pdf、输出的加密 PDF 文件路径output_pdf和密码password。https://blog.csdn.net/q…

手写一个打印PDF方法,完美解决跨域问题

最近在项目上遇到一个棘手的问题&#xff1a;系统之前的打印PDF文件功能是好的&#xff0c;但是换了个环境发现坏掉了( ╯□╰ )&#xff0c;很无语&#xff01;排查问题时&#xff0c;代码跟之前一毛一样&#xff0c;本地使用是没问题的&#xff0c;但是到了服务器上&#xff…

Nginx: 配置项之root和alias的区别, 深入理解location, 以及stub_status模块的用法

root和alias的区别 root 和 alias 两者都是来指定我们的URI和我们磁盘文件上的一个具体静态资源文件的一个映射关系 语法结构 1 ) root 语法&#xff1a;root path;上下文&#xff1a;http server location if 2 ) alias 语法&#xff1a;alias path;上下文&#xff1a;l…

c++ opencv显示图片

项目中添加头文件&#xff0c;库不在赘述&#xff0c;这里直接上核心代码&#xff1a; #include <iostream> #include <opencv2/imgcodecs.hpp> #include <opencv2/highgui.hpp> #include <opencv2/imgproc.hpp> #include <iostream> using na…