??本篇博客介紹使用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