从播放视频文件捕获图像

本文关键字:图像 文件 播放 视频 | 更新日期: 2023-09-27 18:33:29

我正在开发 C# 桌面应用程序并将此链接引用到播放视频文件http://www.codeproject.com/Articles/2632/DirectShow-MediaPlayer-in-C,现在从这个播放视频文件中,当我单击此面板(如上面的链接所示)如何从播放视频文件中捕获图像时,我搜索了但我找到了所有显示从某些设备捕获图像的示例(例如网络摄像头等),就我而言,它不是设备,而是我正在从目录浏览并播放的文件,因为我是这个视频捕获的新手,请指导我如何做到这一点

从播放视频文件捕获图像

"捕获"通常是指从外部源获取图像时的图像采集。您希望改为复制当前显示的视频帧。有几种方法可以做到这一点,当涉及到视频可视化时的播放时,视频渲染器通常提供GetCurrentImage返回当前显示的视频帧的副本的方法,甚至可能转换为 RGB。

视频呈现器版本之间的方法语法略有不同。

请参阅有关实现此目的的先前主题:

  • 从网络摄像头 C# 拍摄照片(参考 DirectShow.NET 中的示例应用程序)
  • IBasicVideo CetCurrentImage 灾难性故障(DirectShow.NET)
  • 也:
    • 从网络摄像头预览捕获图像的最佳直接显示方式?SampleGrabber 已弃用
    • 使用直接显示从 DVD 中抓取图像

您需要一个过滤器来捕获屏幕并将视频发送到流中。

在DirectShow库中有一个名为PushSource的示例过滤器,里面有PushSourceDesktop

在 Codeplex 中,有关于过滤器的类似示例(单击我)或信息(单击我)。

您还可以使用"SampleGrabber"DirectShow 滤镜:只需将其放置在源滤镜和渲染滤镜之间的滤镜链中即可。

有关SampleGrabber的更多信息:请参阅 MSDN