2023.11.12更新:
github上的QtAV源码有更新,下载最新源码重新编译,添加include和lib路径的方法和之前相同,但在QtAV-master/src/Pack.cpp的这个位置
#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0)
using Qt::hex, Qt::dec;
报错:多个 using 声明符至少需要 “/std:c++17”
解决方法:在此文件所属的项目libQtAV的.pro文件中添加 CONFIG += c++17
继续编译并运行测试项目,报错提示缺少动态库:
从依赖库中把缺少的dll文件拷贝并添加到QtAV编译目录的bin目录下(注意选对版本),编译成功后,安装的方法还是和原来一样
准备工作
下载QtAV官方提供的编译好的依赖库 下载地址
解压后得到
下载QtAV-1.12.0源码 下载地址
解压后得到
QtAV编译
打开QtAV.pro,项目→Build&Run→Build→构建环境,点击详情,将刚才装好的依赖库中的include路径和lib路径分别添加到INCLUDE变量和LIB变量下。【这里要特别注意是32位还是64位的】
在Run→Run Environment中给Path变量添加依赖库的bin路径。
进行release编译,这里选择simpleplayer。
这时很可能会出现“程序异常结束”的报错信息,将依赖库bin目录下的所有.dll动态链接库文件都复制到QtAV编译目录的bin目录下。
编译成功后,会出现一个最简单的播放器,可以实现最基本的打开文件、播放/暂停、停止的功能。
选择player进行release编译,会出现一个功能非常健全的播放器,可以实现打开文件/打开url、调整音量、视频截图、播放/暂停、快进/快退、查看视频信息的功能。
还可以对视频的速度、音轨、声道、比例等内容进行设置。
此时,QtAV的release编译目录下的lib_win_x86文件夹也生成了我们需要的库文件。
QtAV安装
在QtAV的编译目录下找到sdk_install.bat,双击进行安装
现在QtAV相关的头文件和库文件就被安装到Qt Sdk相关路径下,其他使用QtAV的应用就可以直接依赖了。
QtAV使用
新建一个项目
#include "MainWindow.h"
#include <QApplication>
#include <WidgetRenderer.h>
#include <QtAV>
#include <QtAVWidgets>
#include <QtAV/AVPlayer.h>
using namespace QtAV;
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
WidgetRenderer renderer;
renderer.show();
Widgets::registerRenderers();
AVPlayer player;
player.setRenderer(&renderer);
player.play("D:/2021-06-10-17-51-14.flv"); //填写要播放的视频的路径
return a.exec();
}
在.pro文件中加入
QT += av avwidgets
LIBS += -L$$PWD/ -lQtAV1 -lQtAVWidgets1
【注意】这里我把QtAV1.lib和QtAVWidgets1.lib都放到了.pro文件所在的目录下,因此LIBS的路径是$$PWD,这个路径要根据库文件实际存放的位置来填写。
这时点击编译,可能会出现“程序异常结束”报错信息,把依赖库bin目录下的.dll库文件复制到项目的目录下。
然后在项目→Build&Run→Build→构建环境中添加以下系统环境变量,其中CPATH指向依赖包的include路径,LD_LIBRARY_PATH、LIBRARY_PATH指向依赖包的lib路径【这里要特别注意是32位还是64位】
进行release编译,生成的窗口便能成功播放本地视频了。
【参考出处】
QtAV编译及使用
QtAV编译以及使用