用于捕获摄像头的.net类库:DirectX.Capture, C# 捕
2007-04-19  作者:amao  同分类文章
description:
现在我就把我用的类库,介绍给大家。DirectX.Capture Class Library(By Brian Low.)是我在codeproject上寻找的类库,它完全由C#编写,基于directshow.net类库,用于实现音频和视频的捕捉,并且可以保存为avi文件,你可以很方便的在codeproject上下载到这两个类库的源文件。

以下来自:http://www.codeproject.com/cs/media/directxcapture.asp
我简单翻译下,帮助以下英文不太好的朋友

点击此处下载
已经上传到我的googlepages上,无需注册即可直接下载


Sample Image - DirectXCapture.jpg 

Sample Image - DirectXCapture2.jpg


该类库的主要特点:
  • 可以列举和选择所有音视频的硬件设备
  • 可以设置音频和视频相关属性,例如帧速率,大小,采样频率等
  • 支持音视频压缩编码
  • 支持视频预览
  • 支持电视接口
  • 支持混音
  • 可以显示硬件驱动的属性
  • 包含了标准的MSDN式的帮助文档
使用该类库的时候必须同时引入DirectX.Capture.dll和DShowNET.dll,到你的项目里。

例程1:

using DirectX.Capture

// 此时使用默认的音视频的首选设备进行捕获

Capture capture = new Capture( Filters.VideoInputDevices[0],
Filters.AudioInputDevices[0] );

// Start capturing
capture.Start();

// Stop capturing
capture.Stop();

例程2:


Capture capture = new Capture( Filters.VideoInputDevices[0],
Filters.AudioInputDevices[1] );

//这里可以设置使用哪种压缩编码方式
capture.VideoCompressor = Filters.VideoCompressors[0];
capture.AudioCompressor = Filters.AudioCompressors[0];

capture.FrameRate = 29.997; // NTSC
capture.FrameSize = new Size( 640, 480 ); // 640x480
capture.AudioSamplingRate = 44100; // 44.1 kHz
capture.AudioSampleSize = 16; // 16-bit
capture.AudioChannels = 1; // Mono

capture.Filename = "C:MyVideo.avi";

capture.Start();
...
capture.Stop();

例程3:关于预览


// Start preview
capture.PreviewWindow = myPanelControl;

// Stop preview
capture.PreviewWindow = null;


该类库每次都会从设备的驱动程序中更新最新支持的属性,因此你完全没有必要理会,设备到底是不是支持特定属性,只要从支持的属性中选择即可


当然该类库,也有一些问题,比如说关于电视卡的支持并不是很好,但是如果你不用的话,仅仅操作普通的视频和音频设备,该类库还是非常好用的,


相关
C#.net 中的编码 -Encoding
封锁后 引用Flickr图片的方法
常见连接数据库字符串
mono下C#实现bt功能
vs2005如何连接access2007的*.accdb文件
用于捕获摄像头的.net类库:DirectX.Capture, C# 捕
WPF与Win32图形系统
几个.net开源项目
WPF, WPF/E释疑
using Statement 用法 (C# Reference)