【问题标题】:Visual C Webcam CaptureVisual C 网络摄像头捕获
【发布时间】:2015-04-12 17:10:28
【问题描述】:
我是 Visual Studio 的新手,在过渡到 Visual C# 之前,我一直在 VB 中从事网络摄像头捕获项目。我一直在使用 directshow 库来执行此操作,但结果好坏参半。我可以很好地捕获音频和视频,但是 avi/wmv 文件的大小往往太大。我的目标文件大小是一小时的视频/音频,大小在 300 - 500 mb 之间,视频质量约为 640x480 @ 15 fps。我知道我可以使用几个压缩器/编解码器来缩小尺寸,但大多数默认系统并没有真正达到我的目标。我确实注意到 DirectShow 库 CapWMV 中的一个示例捕获了该目标范围内的视频,但它不捕获音频。所以我的问题是,谁能推荐一个开源编解码器来帮助我达到这个目标,或者如果有人熟悉 CapWMV 示例,请解释如何将音频捕获合并到其中?
【问题讨论】:
标签:
c#
vb.net
video
webcam
capture
【解决方案1】:
CapWMV 可以更新以捕获音频。您需要在那里配置编写器以设置启用音频的配置文件,并且编写器将公开音频输入以访问音频流。因为这只是对原生 API 的封装,所以您需要底层 WM ASF Writer 的文档。
CapWMV 示例对纯视频配置文件进行硬编码:
private IBaseFilter ConfigAsf(ICaptureGraphBuilder2 capGraph, string szOutputFileName)
{
// ...
// Windows Media Video 8 for Dial-up Modem (No audio, 56 Kbps)
// READ THE README for info about using guids
Guid cat = new Guid(0x6E2A6955, 0x81DF, 0x4943, 0xBA, ...