QT5.14.2编译部署QTAV播放器环境

简介: QT5.14.2编译部署QTAV播放器环境

一、编译环境与QTAV介绍

QTAV是开源的跨平台的播放器框架,框架是基于QT开发的,可以在Android、IOS、WINDOWS、Linux各个平台编译部署运行。


QTAV官网介绍: http://www.qtav.org/


QTAV源码下载地址GitHub: https://github.com/wang-bin/QtAV


image.png

直接在GitHub上下载最新的源码就行。

我当前使用的QT环境是QT5.14.2,编译器是minGW和VS2017 都采用的是32位的编译器。

QT的下载地址:https://download.qt.io/archive/qt/5.14/5.14.2/

image.png

当前编译时,我使用的ffmpeg的版本是4.2.2 ,也可以使用最新的版本,QTAV的说明里就介绍,最好使用最新的ffmpeg版本。


ffmpeg4.2.2的库地址:https://download.csdn.net/download/xiaolong1126626497/13328939


也可以直接去ffmpeg的官方下载:http://www.ffmpeg.org/download.html

image.png

二、编译QTAV源码

在GitHub上作者也介绍过,如何编译部署QTAV。

地址: https://github.com/wang-bin/QtAV/wiki/Build-QtAV

image.png

在windows下编译,作者推荐了2种方法:


第一种: 直接把ffmpeg的头文件和库文件拷贝到QT安装目录下的编译器目录里,这样做简单粗暴。


第二种: 打开QTAV源码工程,修改qmake.conf文件,指定ffmpeg的头文件和库文件路径

让QT编译器能找到ffmpeg库和头文件在哪里。


我这里就是采用的第二种方法,直接指定路径,不污染QT安装目录下的文件。

INCLUDEPATH += C:/FFMPEG/ffmpeg_x86_4.2.2/include
LIBS += -LC:/FFMPEG/ffmpeg_x86_4.2.2/lib


image.png

设置好路径之后,直接点击构建即可。

image.png

构建如果没有问题的话,在生成的目录下就会有一个自动安装脚本,双击运行即可自动拷贝文件到QT的安装目录下。

可以分别使用VS2017编译器、minGW编译器构建一遍QTAV源码,这样两个编译器都可以引用QTAV进行开发播放器。

image.png

编译完成之后,接下来就可以使用QTAV了。

在使用QTAV框架时,如果使用的是VS2017编译器,编译可能会报错,提示max函数不能识别。

解决办法如下:

image.png

在QT的pro工程文件里需要引用QTAV的框架库:

#LIBS     += -L$$quote(C:\Qt\Qt5.14.2\5.14.2\mingw73_32\lib) -lQtAV1 -lQtAVWidgets1
LIBS     += -L$$quote(C:\Qt\Qt5.14.2\5.14.2\msvc2017\lib) -lQtAV1 -lQtAVWidgets1
LIBS += -lopengl32 -lglu32

image.png

三、使用QTAV开发播放器

3.1 mainwindow.cpp 源码

#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    Widgets::registerRenderers();
    VideoOutput *m_vo;
    AVPlayer *m_player;
    m_player = new AVPlayer(this);
    m_vo = new VideoOutput(this);
    m_player->setRenderer(m_vo);
    setCentralWidget(m_vo->widget());
    m_player->play("D:/test1080.flv");
}
MainWindow::~MainWindow()
{
    delete ui;
}

3.2 mainwindow.h 源码

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QtAV>
#include <QtAVWidgets>
using namespace QtAV;
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
    Q_OBJECT
public:
    explicit MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
private:
    Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H

3.3 运行效果

image.png

目录
相关文章
|
18天前
|
编译器 C语言 Windows
cryptopp使用Qt mingw编译,以及海思平台交叉编译
cryptopp使用Qt mingw编译,以及海思平台交叉编译
56 0
|
18天前
|
开发框架 Unix Linux
深度探索:Qt CMake工程编译后的自动打包策略
深度探索:Qt CMake工程编译后的自动打包策略
53 0
|
18天前
|
IDE 编译器 开发工具
C/C++ IDE环境 (Qt Creator visual studio等) Cmake工程不显示头文件的解决方案
C/C++ IDE环境 (Qt Creator visual studio等) Cmake工程不显示头文件的解决方案
39 0
|
18天前
|
Unix 编译器 开发者
Qt5.14.2 轻松掌握Qt中的压缩与解压缩:QuaZIP的神秘面纱与实战演练之windows环境编译
Qt5.14.2 轻松掌握Qt中的压缩与解压缩:QuaZIP的神秘面纱与实战演练之windows环境编译
175 0
|
18天前
|
存储
Qt编译出现cc1plus.exe: out of memory allocating 65536 bytes问题
Qt编译出现cc1plus.exe: out of memory allocating 65536 bytes问题
72 0
|
18天前
|
编译器
正点原子IMX6ULL-安装交叉编译器、编译tslib触摸屏库、编译arm环境qt源代码
正点原子IMX6ULL-安装交叉编译器、编译tslib触摸屏库、编译arm环境qt源代码
|
18天前
|
自然语言处理 编译器 程序员
【Qt底层之 元对象的编译】Qt 元对象系统及其编译流程解析
【Qt底层之 元对象的编译】Qt 元对象系统及其编译流程解析
112 4
|
18天前
|
开发框架 前端开发 算法
【Qt App 编译 】Qt Cmake 资源文件的加载:如何使用 CMakeLists.txt 文件和资源文件
【Qt App 编译 】Qt Cmake 资源文件的加载:如何使用 CMakeLists.txt 文件和资源文件
55 0
|
18天前
|
Linux 开发工具 C语言
【研究Qt webengine 模块编译】linux 交叉编译qt5.12的webengine模块成功的条件
【研究Qt webengine 模块编译】linux 交叉编译qt5.12的webengine模块成功的条件
168 1
|
18天前
|
编解码 Android开发 开发者
QT5.14.2 VS2022环境下FFmpeg与QT的完美邂逅
QT5.14.2 VS2022环境下FFmpeg与QT的完美邂逅
101 0

推荐镜像

更多