如何从使用directx c#visual studio播放的视频中获取和处理每个帧(位图图像)

如何从使用directx c#visual studio播放的视频中获取和处理每个帧(位图图像),c#,image,video,bitmap,audiovideoplayback,C#,Image,Video,Bitmap,Audiovideoplayback,我已经设计了一个winform应用程序(c#),在picturebox中使用microsoft.directx.audiovideoplayback播放视频。现在我想在播放视频时提取视频的每个帧或位图图像。有什么方法可以实现吗?视频播放(特别是基于audiovideoplayback的视频播放)不使用位图来流式传输和显示视频。为了提取单个帧,您需要更强大的视频API来流式传输和解压缩视频。一种典型的方法是使用DirectShow.NET库(它和音视频播放都在后端使用DirectShow API)

我已经设计了一个winform应用程序(c#),在picturebox中使用microsoft.directx.audiovideoplayback播放视频。现在我想在播放视频时提取视频的每个帧或位图图像。有什么方法可以实现吗?

视频播放(特别是基于audiovideoplayback的视频播放)不使用位图来流式传输和显示视频。为了提取单个帧,您需要更强大的视频API来流式传输和解压缩视频。一种典型的方法是使用DirectShow.NET库(它和音视频播放都在后端使用DirectShow API)和样本抓取器,使用
SampleCB
callback获取单个帧。您在那里获得的数据可以转换为位图

见:


感谢您的建议。我使用directshow.netlibrary尝试了相同的方法,但需要使用名为“interop.quartztypelib.dll”或“quartztypelib.dll”的dll文件。这在VISUAL STUDIO 2012中不可用,我在internet上搜索过,但找不到任何免费下载此dll文件的网站。而且似乎此特定dll文件使用不安全或通常不推荐。是否存在与使用此dll文件相关的任何风险因素?请帮助我解决此困惑和问题安全下载此dll文件的方法。提前感谢您的帮助和时间。标准Windows API+应具备您所需的一切。您可以开始检查其中包含的样本。