概述
参考文档: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)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复