Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2932|回复: 0
打印 上一主题 下一主题

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

[复制链接]

1272

主题

2067

帖子

7958

积分

认证用户组

Rank: 5Rank: 5

积分
7958
跳转到指定楼层
楼主
发表于 2021-3-5 11:11:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
https://mp.weixin.qq.com/s/IrnH6rWJvArWIuxqvOvzSw


专注分享 GitHub 上有趣、好玩的开源项目,以帮助大家提高编程技巧,找到编程乐趣。

如果你对开源感兴趣,想和大家分享一些优质项目,随时欢迎投稿(微信号:iwaleon)。

QtAV 是一个基于 Qt 和 FFmpeg 的跨平台、高性能多媒体播放框架,能够帮助你轻而易举地编写出一个播放器。




1
编译安装

以 Windows 平台为例,下载依赖 QtAV-depends-windows-x86+x64.7z(详见:https://sourceforge.net/projects/qtav/files/depends/)。解压缩之后,里面有构建时需要用到的头文件和库,分别存储在 include、lib、bin 目录下。

编辑 QtAV 源码目录中的 .qmake.conf文件,在其中添加以下 2 行内容:


注意:这里我引用的是相对路径,$$PWD/../ 表示当前路径的上一层目录。

打开 QtAV.pro,执行 qmake -> 构建。完成之后,会生成相应的库文件和程序:


其中,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 示例,效果如下:


这个示例相当完整了,播放器常用的功能几乎都有。如果你想快速打造一个属于自己的播放器,参考它准没错

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|firemail ( 粤ICP备15085507号-1 )

GMT+8, 2024-11-22 17:41 , Processed in 0.056126 second(s), 20 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表