Windows 7 在顶部绘制文本的视频

Windows 7 在顶部绘制文本的视频,windows-7,windows-xp,gdi,directshow,directdraw,Windows 7,Windows Xp,Gdi,Directshow,Directdraw,我正在处理一个应用程序,我有一个问题,我似乎找不到解决方案。该应用程序是用vc++编写的。我需要做的是显示一个YUV视频提要,上面有文本 现在,通过使用GDI在OnPaint方法中绘制文本,并在DirectDraw覆盖上绘制视频,它可以正常工作。我需要去掉覆盖层,因为它会导致很多问题。它在某些显卡、vista、7等上不起作用 我想不出一个更合适的方法来完成同样的事情。我可以使用带有后缓冲区的DirectDraw绘制视频,并将其复制到主缓冲区。这里的问题是,在GDI中绘制的文本由于视频刷新的次数而

我正在处理一个应用程序,我有一个问题,我似乎找不到解决方案。该应用程序是用vc++编写的。我需要做的是显示一个YUV视频提要,上面有文本

现在,通过使用GDI在OnPaint方法中绘制文本,并在DirectDraw覆盖上绘制视频,它可以正常工作。我需要去掉覆盖层,因为它会导致很多问题。它在某些显卡、vista、7等上不起作用

我想不出一个更合适的方法来完成同样的事情。我可以使用带有后缓冲区的DirectDraw绘制视频,并将其复制到主缓冲区。这里的问题是,在GDI中绘制的文本由于视频刷新的次数而闪烁。如果可能的话,我真的希望保留代码来完整地绘制文本,因为它工作得很好


有没有办法将文本直接绘制到DirectDraw缓冲区或内存缓冲区或其他地方,然后将其blt到后台缓冲区?我应该一起研究另一种方法吗?两个重要的操作系统是XP和7。如果有人有任何想法,请告诉我,我会测试他们。谢谢。

尝试查看microsoft.com上的DirectShow和股票代码示例:

此示例使用视频混合渲染器混合视频和文本。它使用IVMRMixerBitmap9接口将文本混合到视频窗口的底部


DirectShow用于构建用于播放音频或视频流的过滤器图,并为视频和音频样本的不同效果和操作添加不同的过滤器

除了使用DirectShow的视频混合渲染器,您还可以使用该界面。优点是,它是一个过滤器,也可以与其他渲染器一起使用,例如,当不在屏幕上显示视频时,而是通过网络流传输视频或将其转储到文件中。

但是,它的缺点是,您在软件中混合自己,并禁用硬件辅助解码或逐行扫描。如果您使用vmr mixer位图api,您可以使用硬件辅助的alpha混合。+1作为ISampleGrabber,因为我广泛使用它在.NET中使用GDI+绘制实时视频。即使在YUY2曲面上:)