65.9K
CodeProject 正在变化。 阅读更多。
Home

DirectX视频流和帧捕获

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.58/5 (38投票s)

2004年7月6日

2分钟阅读

viewsIcon

675802

downloadIcon

27292

可以同时捕获视频流和帧的库。

引言

NET大师和Brian Low做了大量的工作,并且进行了增强。但是,我需要一个能够持续从视频源捕获图像/位图并同时记录它的库。然后我看到了NET大师的项目和Brian Low的项目。他们做得很好,但该功能未包含在项目中。所以我决定添加一个。顺便说一下,我看到另一个项目执行了相同的功能,但它没有通过触发事件持续捕获帧,而且视频捕获速度较慢,无法产生流畅的流。而且每秒帧数也比较慢。但是,这是一项伟大的努力。

背景

实际上我只是将这些示例组合在一起。所以,最好还是参考这些示例。

使用代码

只需添加一个按钮来触发事件和 GrapImg 方法。然后,添加另一个事件处理程序,我添加的是 CaptureDone 处理程序。

一旦从图像缓冲区复制了一个帧,就会触发 CaptureDone。之后,只需将位图显示到PictureBox中即可。

private void button1_Click(object sender, System.EventArgs e)
{
    capture.FrameEvent2 += new Capture.HeFrame(CaptureDone);
    capture.GrapImg();
}

private void CaptureDone(System.Drawing.Bitmap e)
{
    this.pictureBox.Image=e;
}

但是,要使其工作,您首先需要了解如何使用DirectX捕获库,因为您需要设置视频捕获的属性才能启动,并且需要在触发 CaptureDone 之前开始预览视频。

关注点

嗯,有一件事是,我花了大量时间阅读NET大师和Brian Low的代码。欢迎提出任何意见……谢谢。以下是Brian Low的类库和NET Master的DirectShow.NET的两个链接。(感谢您的建议)

历史

无。

© . All rights reserved.