基本的工作原理:首先通过FFmpeg获取视频,可以是通过摄像头,文件,截屏等。然后利用QT中的OpenGL组件显示视频。主要的工作是利用着色器进行视频格式转换,因为获取到的视频格式一般是YUV格式,显示到显示器上的一般是RGB格式。这里的代码只实现了YUV422格式的转换,其他格式类似。 下面是视频获取类VideoSource.h头文件: #pragma once extern “C” { #include “libavcodec/avcodec.h” #include “libavformat/a […]
最近看了下微软的Media Foundation,发现Media Foundation里面的EVR使用比较旧的Direct3D API,于是想直接使用Direct3D 11 Video API来播放视频。并且可以在视频上添加图片和显示文字,又不想使用Media Foundation的pipeline。视频采集利用Media Foundation 的source reader,或者使用ffMpeg获取视频,然后直接通过Direct3D 11/12 Video A […]