基本的工作原理:首先通过FFmpeg获取视频,可以是通过摄像头,文件,截屏等。然后利用QT中的OpenGL组件显示视频。主要的工作是利用着色器进行视频格式转换,因为获取到的视频格式一般是YUV格式,显示到显示器上的一般是RGB格式。这里的代码只实现了YUV422格式的转换,其他格式类似。 下面是视频获取类VideoSource.h头文件: #pragma once extern “C” { #include “libavcodec/avcodec.h” #include “libavformat/a […]
在MAC OS 和 IOS 中使用opengl有两种方式:一种是直接继承OpenGL View,需要用到GLKit;另一种是自定义UIView,这需要用到CAEAGLLayer,其实每个UIView可以拥有多个Layer。下面的例子是使用自定义UIView。 OpenGLView.h文件: #ifndef OpenGL_View_h #define OpenGL_View_h @interface OpenGLView : UIView – (void)swapBuffer; @end #endif /* OpenGLView.h */ O […]