我是靠谱客的博主 凶狠月亮,最近开发中收集的这篇文章主要介绍QtAV编译配置和入门使用(Qt5.11.1+VS2017),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

参考文档:https://github.com/wang-bin/QtAV/wiki/Build-QtAV

为Qt的音视频开发储备

一、编译准备

QtAV发行(为了后续编译需要的头文件):https://sourceforge.net/projects/qtav/

QtAV源码:https://github.com/wang-bin/QtAV

FFmpeg Dev(ffmpeg-4.0.2-win64-dev.zip):https://ffmpeg.zeranoe.com/builds/

FFmpeg Share(ffmpeg-4.0.2-win64-shared.zip):https://ffmpeg.zeranoe.com/builds/

我的编译环境:Qt5.11.1-msvc2017-64bit

二、编译配置

1.把下载好的ffmpeg-4.0.2-win64-dev.zip的include里面的文件夹复制到D:QtQt5.11.15.11.1msvc2017_64include

2.把下载好的ffmpeg-4.0.2-win64-dev.zip的lib里面的文件夹复制到D:QtQt5.11.15.11.1msvc2017_64lib

如图:

三、编译完成

配置好后开始编译,本次测试大概出了60个编译警告,忽略即可。

编译完成后,找到输出路劲下的lib_win_x86_64文件夹并打开,可以看到生成的dll和lib,那么就可以开始玩耍了。

 

四、测试编译

进入编译输出路劲的bin目录下,打开Player.exe,随便扔一个视频进去播放。

如果不行先试试把ffmpeg-4.0.2-win64-shared.zip里面的bin目录下的*.dll都复制到player.exe的目录下再试试。

五、简单入门

测试编译都没有问题了以后,试试在自己的代码里面实现播放视频。

1.新建Qt Desktop工程qav

例如我的工程建在D:QtQproqavqav.pro

把所有头文件放到D:QtQproqavqtavinclude目录下(头文件在https://sourceforge.net/projects/qtav/里可以找到)

把之前生成的QtAV1.lib、QtAVWidgets1.lib、QmlAV.lib放到D:QtQproqavqtavlib目录下。

然后打开qav.pro文件增加如下几行:

PROJECT_DIRECTORY = ../qav
QTAV_LIB = $${PROJECT_DIRECTORY}/qtav/lib
QTAV_HEADER = $${PROJECT_DIRECTORY}/qtav/include
INCLUDEPATH += $${QTAV_HEADER}
INCLUDEPATH += $${QTAV_HEADER}/QtAV
INCLUDEPATH += $${QTAV_HEADER}/QtAVWidgets
LIBS += -L$${QTAV_LIB} -lQtAV1
LIBS += -L$${QTAV_LIB} -lQtAVWidgets1

然后根据作者官网给出的最简单的播放视频例子:

Write a media player using QtAV is quite easy.

GLWidgetRenderer2 renderer;
renderer.show();
AVPlayer player;
player.setRenderer(&renderer);
player.play("test.avi");

因为需要在自己的窗口显示视频,所以稍作修改:

1.mainwindow.h

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

 2.mainwindow.ui

增加一个QWidget,ObjectName命名为widgetPlayer。

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QWidget" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>795</width>
<height>528</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QWidget" name="widgetPlayer" native="true"/>
</item>
</layout>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources/>
<connections/>
</ui>

3.mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QWidget(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
m_renderer.setParent(this);
ui->widgetPlayer->hide();
ui->verticalLayout->addWidget(&m_renderer);
m_renderer.show();
m_player.setRenderer(&m_renderer);
m_player.play("C:\Users\ema\Desktop\example.mp4");
}
MainWindow::~MainWindow()
{
delete ui;
}

编译成功但发现运行不了:

把需要的dll都放到exe目录下即可,如图:

效果显示:

最后放出示例工程:https://download.csdn.net/download/mccoy39082/10683124

最后

以上就是凶狠月亮为你收集整理的QtAV编译配置和入门使用(Qt5.11.1+VS2017)的全部内容,希望文章能够帮你解决QtAV编译配置和入门使用(Qt5.11.1+VS2017)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部