本篇博客介绍使用OpenGL渲染FFmpeg解码后的视频,涉及到QOpenGLWidget、QOpenGLFunctions、OpenGL shader以及纹理相关,播放效果如下:
开发环境:Win11 C++ Qt6.8.1、FFmpeg4.0、x64
注意:Qt版本不同时,Qt OpenGL API及用法可能差别比较大,FFmpeg版本不同时API调用可能也比较大,如果你和我的版本不同,可能需要做相关调整。
Qt封装了OpenGL的API, 我们在Qt里使用OpenGL时可以使用Qt封装的OpenGL接口类QOpenGLWidget和QOpenGLFunctions,当然也可以用OpenGL原生API, 本篇博客使用的Qt封装的OpenGL接口类
下面介绍如何实现该功能。
首先创建一个C++ QWidget项目,使用CMake构建项目,窗口基类是QMainWindow。
(1)右键项目名添加类FFmpegDecoder,代码如下:
FFmpegDecoder.h