Qt5学习-基本概念

本文介绍了在Qt5中使用OpenGL进行视频渲染的基本思路,包括创建纹理、实现YUV到RGB的转换Shader以及利用QOpenGLWidget更新视频数据到纹理。还强调了Qt5中QOpenGL*类的使用优于QGL*类,并说明了如何在Qt5中初始化OpenGL环境以及通过QOpenGLFunctions访问OpenGL API。
摘要由CSDN通过智能技术生成

文章目录


架构
什么是

QML 还是 QtWidget
科技时代发s

QT播放器Windows上运行需要安装一个DirectShow解码器,例如LAV Filters

输出视频使用:QOpenGLWidget

程序发布使用:windeployqt

使用QPainter绘制视频图像不是一个好的解决方案:
1、YUV / RGB 转换费CPU
2、QPainter大面积绘制效率不高

OpenGL是一个不错的选择,目前移动设备上很多都是用GLES实现视频渲染。

大概思路是:
创建一个texture
实现一个shader用于YUV / RGB 转换
每次渲染将视频数据update到texture
将texture绘到一个表面

自从 Qt5 以后,Qt 的框架进行了大幅调整和更新,原有的 OpenGL 代码似乎已经无法在新版 Qt 上运行了。

在 Qt5 中,新增了 QOpenGL* 类,用以取代之前的 QGL* 类。

注意,虽然我们仍然能通过 Qt5 中的 OpenGL 模块使用 QGL* 类,但强烈建议大家在新的 Qt 应用程序中使用 QOpenGL* 类而不是 QGL* 类。

另外,在 Qt5 中,已经将 OpenGL 集成到了 Gui 模块中。因此,我们要想使用与 OpenGL 相关的类和函数,只需要在 .pro 工程文件中包含 gui 模块就可以了,无需像以前一样还要包含 opengl 。

initializeGL

该函数用来初始化当前的 OpenGL 环境。

注意,在此函数中,我们必须调用 initializeOpenGLFunctions(); 语句以便 Qt 在后台完成 OpenGL 环境的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值