Qter 发表于 2021-3-5 11:12:37

GitHub开源分享 | 一个跨平台的高性能音视频播放框架


https://mp.weixin.qq.com/s/IrnH6rWJvArWIuxqvOvzSw

专注分享 GitHub 上有趣、好玩的开源项目,以帮助大家提高编程技巧,找到编程乐趣。
如果你对开源感兴趣,想和大家分享一些优质项目,随时欢迎投稿(微信号:iwaleon)。

QtAV 是一个基于 Qt 和 FFmpeg 的跨平台、高性能多媒体播放框架,能够帮助你轻而易举地编写出一个播放器。
https://mmbiz.qpic.cn/mmbiz_png/714ibKo8XksYiaxqLk9cE3aBt5iaGoTxuGPdL94PRWny1jNHa5IlQCENrHh3YTUDA9XlY6ca6LPvxbIHfdDT3NTiag/640?wx_fmt=png

[*]官网地址:http://www.qtav.org/
[*]Github 地址:https://github.com/wang-bin/QtAV
[*]编译 QtAV:https://github.com/wang-bin/QtAV/wiki/Build-QtAV
[*]在项目中使用 QtAV:https://github.com/wang-bin/QtAV/wiki/Use-QtAV-In-Your-Projects


1编译安装
以 Windows 平台为例,下载依赖 QtAV-depends-windows-x86+x64.7z(详见:https://sourceforge.net/projects/qtav/files/depends/)。解压缩之后,里面有构建时需要用到的头文件和库,分别存储在 include、lib、bin 目录下。
编辑 QtAV 源码目录中的 .qmake.conf文件,在其中添加以下 2 行内容:
https://mmbiz.qpic.cn/mmbiz_png/714ibKo8XksYiaxqLk9cE3aBt5iaGoTxuGP6r0icZphLLv3Pcy8gcHosHFZ3NnHGErl12bpuCghbhazN8EzDM4D7wA/640?wx_fmt=png
注意:这里我引用的是相对路径,$$PWD/../ 表示当前路径的上一层目录。
打开 QtAV.pro,执行 qmake -> 构建。完成之后,会生成相应的库文件和程序:
https://mmbiz.qpic.cn/mmbiz_png/714ibKo8XksYiaxqLk9cE3aBt5iaGoTxuGP19wH7LzicMnqNJzwjnY7ibbo2IL3IBH9fghgwzLkx8bTRJS3xJ5wQcSg/640?wx_fmt=png
其中,bin 目录包含了测试程序,lib_win_x86_64 目录包含了 .lib 和 .dll 库文件。

2基本使用
QtAV 简单易用,只需几行代码就能播放一个视频:
#include <QApplication>
#include <QtAV>
#include <QtAVWidgets>

using namespace QtAV;

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    // GLWidgetRenderer2 使用 GLSL 渲染视频帧
    GLWidgetRenderer2 renderer;
    renderer.show();

    // AVPlayer 用于控制播放过程
    AVPlayer player;
    player.setRenderer(&renderer);
    player.play("test.mp4");

    return a.exec();
}

当然了,这只是一个很简单的例子。如果想了解 QtAV 的更多细节,建议结合官方文档和源码中的 examples。
不妨尝试一下,运行 examples 下的 player 示例,效果如下:
https://mmbiz.qpic.cn/mmbiz_png/714ibKo8XksYiaxqLk9cE3aBt5iaGoTxuGPYCldDSo1A1IwADicFleQHtOZFZHQQQIcAiadiaN7MdWiaemibicMHTGEibibzw/640?wx_fmt=png
这个示例相当完整了,播放器常用的功能几乎都有。如果你想快速打造一个属于自己的播放器,参考它准没错 https://mmbiz.qpic.cn/mmbiz_png/714ibKo8XksYiaxqLk9cE3aBt5iaGoTxuGPic8q38yrOfM0xpcicY5N3AUmxscnabxzWmteQibDwibdEGW5YR5t5peLeQ/640?wx_fmt=png!
页: [1]
查看完整版本: GitHub开源分享 | 一个跨平台的高性能音视频播放框架