您的位置:首页 > 其它

使用DirectX.Capture.dll和DShowNET.dll捕获视频程序

2008-06-24 13:58 465 查看


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

提供示例下载: http://www.cnblogs.com/Files/mgod/DirectXCapture_src.zip http://www.cnblogs.com/Files/mgod/DirectXCapture_demo.zip

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

该类库的主要特点:

可以列举和选择所有音视频的硬件设备

可以设置音频和视频相关属性,例如帧速率,大小,采样频率等

支持音视频压缩编码

支持视频预览

支持电视接口

支持混音

可以显示硬件驱动的属性

包含了标准的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;

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

当然该类库,也有一些问题,比如说关于电视卡的支持并不是很好,但是如果你不用的话,仅仅操作普通的视频和音频设备,该类库还是非常好用的,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐