使用直接显示从 DVD 抓取图像
有人知道使用 DirectShow 和 C++ 从 DVD 抓取图像的方法吗?使用 DVD 渲染器时不支持样本采集器,并且如果我使用 GetCurrentImage(VMR9 无窗口控件的一部分),它似乎不起作用。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
有人知道使用 DirectShow 和 C++ 从 DVD 抓取图像的方法吗?使用 DVD 渲染器时不支持样本采集器,并且如果我使用 GetCurrentImage(VMR9 无窗口控件的一部分),它似乎不起作用。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
查看 directshow 示例中的“SampVid”示例:
http: //msdn.microsoft.com/en-us/library/dd375468(VS.85).aspx
使用它,您可以编写自己的视频渲染器过滤器。您遇到的唯一问题是如何捕获 frmae,因为它全部通过“CDrawImage" 类。源代码包含在 winutil.h 和 .cpp 中,它们包含在直接显示基类中。滚动您自己的版本将解决您的问题,并允许您在将图像数据写入屏幕时抓取图像数据帧。
Check out the "SampVid" sample in the directshow samples:
http://msdn.microsoft.com/en-us/library/dd375468(VS.85).aspx
With that you can write your own video renderer filter. The only issue you'll have is how to capture the frmae as it all goes through "CDrawImage" class. The source code to which is contained in winutil.h &.cpp which are included in the direct show base classes. Rolling your own version would solve your issue and allow you to grab a frame of image data as it is being written to the screen.
编写一个原地传输视频过滤器,您可以使用它来抓取样本并将其写入磁盘。
当您检测到按键时(用于屏幕截图),从过滤器的 Transform() 函数调用回调到您的程序中。
查看 MSDN 关于编写转换过滤器 有关编写过滤器的更多信息。
您可以查看 EZRGB24 滤镜示例 来自 MSDN,它演示了如何使用 CTransformFilter
祝你好运!
Write a trans-in-place video filter, which you can use to grab a sample and write it to disk.
When you detect a keypress (for screenshot), call a callback into your program from the filters' Transform() function.
Have a look at MSDN's guide on Writing Transform Filters for more information on writing filters.
You could check out the EZRGB24 filter sample from MSDN, which demonstrates how to use the CTransformFilter
Good luck!