实时直接显示渲染 [英] Realtime Direct Show rendering

查看:104
本文介绍了实时直接显示渲染的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你好,

我刚刚开始使用Directshow进行一些编程.
我可以轻松地安静完成的工作是将IGraphBuilder链接到一些过滤器(例如IMediaControl,IBaseFilter,IVMRWindowlessControl等),并使用pGraph-> RenderFile(..)函数从本地硬盘驱动器播放avi文件.
这一切都很好,但是,现在我面临一个问题,我在RAM中有一个帧数组,我想对它们进行一些处理,并想在DirectShow曲面上渲染它们.

但是,我不想将其保存到临时avi文件中,而是要随着它们的出现"渲染这些帧. (实时)

我已经搜索并继续进行codeproject,大多数实现都使用RenderFile()函数,这是我不想做的事情,因为首先将帧保存到Tmp文件夹会导致很多延迟.

我真的很感谢你们的帮助,在这里我有点迷失了:(

Hello,

I have just started off a little bit of programming with Directshow.
What I can do quiet easily is link up IGraphBuilder to a few filters such as IMediaControl, IBaseFilter, IVMRWindowlessControl, etc and play an avi file from the local harddrive by using a pGraph->RenderFile(..) function.

This is all good, however, now I am faced with a problem where I have an array of frames in RAM, I want to do some processing on them , and I want to render them on a directshow surface.

However, I do NOT want to save it to a temporary avi file, I want to render these frames "as they come". (real-time)

I have googled and went on codeproject, most of the implementations are using the RenderFile() function, which is something I do not want to do as saving frames to a Tmp folder first will cause a lot of delays.

I would really appreciate some help from you guys, I am a bit lost here :(

推荐答案

当然您不应该使用临时文件.这是一个很大的话题但是.

我希望本周期的三篇CodeProject文章可以帮助您了解所涉及的技术:
DirectShow过滤器开发第1部分:使用Direct2D进行视频渲染 [ ^ ] ,
DirectShow过滤器开发第2部分:实时源过滤器 [ ^ ],
DirectShow过滤器开发第3部分:变换过滤器 [ ^ ].

祝你好运,
—SA
Of course you should not use temporary files. This is a pretty big topic though.

I hope this cycle of three CodeProject articles can help you to understand the techniques involved:
DirectShow Filters Development Part 1: Video Rendering with Direct2D[^],
DirectShow Filters Development Part 2: Live Source Filter[^],
DirectShow Filters Development Part 3: Transform Filters[^].

Good luck,
—SA


这篇关于实时直接显示渲染的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆