关于 QtAV
QtAV:一个基于 Qt 和 FFmpeg 的跨平台高性能音视频播放框架。
- 官网地址:http://www.qtav.org/
- Github 地址:https://github.com/wang-bin/QtAV
| 版权声明:一去、二三里,未经博主允许不得转载。
编译安装
关于 QtAV 的编译,原作者有专门的文档描述,可参考:Build QtAV。
关于 Windows 平台的编译(以 Qt5.9 + MSVC2015 为例),除了需要下载 QtAV 源码(QtAV-master.zip)之外,还需要有 QtAV-depends-windows-x86+x64.7z 的依赖支持。分别下载它们,完成之后进行解压缩。
打开 QtAV-master/QtAV.pro,选择:项目 -> Build -> 构建环境,然后配置依赖路径:
INCLUDE = E:\Workspace\QtAV\QtAV-depends\include
LIB = E:\Workspace\QtAV\QtAV-depends\lib\x64
将这两个路径以追加的形式添加到环境变量中:
注意: 在这里,很多人会将 include 目录和 lib 目录中的内容分别拷贝到 Qt 的 include 和 lib 目录下,这种方式虽然可行,但会污染 Qt 的环境,不建议这么干!
配置完成之后,依次构建 libQtAV、libQtAVWidgets、libQMLAV。在完成之后,会在 build 目录(lib_win_x86_64)下生成对应的库文件:
注意: 如果构建不成功,可以先构建下 QtAV 主项目,然后再以此构建。
基本使用
QtAV 简单易用,先看下效果:
新建一个 QtAV 示例工程,在 pro 中添加相关配置:
# 添加 QtAV 相关库
LIBS += -L$$PWD/lib_win_x86_64 -lQtAVd1 -lQtAVWidgetsd1
# 添加 QtAV 相关头文件
INCLUDEPATH += $$PWD/../QtAV-master/src \
$$PWD/../QtAV-master/src/QtAV \
$$PWD/../QtAV-master/widgets \
$$PWD/../QtAV-master/widgets/QtAVWidgets
然后,播放一个本地的 MP4 视频:
// main.cpp
#include <QApplication>
#include <QtAV>
#include <QtAVWidgets>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QString path = QApplication::applicationDirPath() + "/test.mp4";
// GLWidgetRenderer2 使用 GLSL 渲染视频帧
QtAV::GLWidgetRenderer2 renderer;
renderer.show();
// AVPlayer 用于控制播放过程
QtAV::AVPlayer player;
player.setRenderer(&renderer);
player.play(path);
return a.exec();
}
更多使用,可以参考 QtAV 源码中的 examples。