我想构建需要能够使用C#从网络摄像头捕获视频的应用程序 . 捕获的视频应该使用一些编解码器进行压缩(没有什么特别的,可以节省空间的任何东西)并在捕获时写入文件 . 无需实时预览捕获 .
第一个问题是哪个API适合这个,你会建议(我已经看过DirectShow,Windows Media Foundation包装等等......不确定哪个最适合托管环境和C#)?
我还需要WPF中的视频播放器,它将播放捕获的视频 . 此播放器必须能够从任意位置播放捕获的视频,暂停和开始/停止视频 . 将所有内容放在一起 - 视频是从背景中的网络摄像头捕获的,同时播放器播放该视频,但它可以暂停,重新缠绕,停止 - 类似于现代DVR .
第二个问题 - 是否可以使用WPF MediaElement创建此类播放器? (混乱是关于同时从捕获填充并在玩家中玩的文件)
5 回答
很好的例子如何制作你想要的所有WebCam
您可以尝试DirectShow.net库 .
http://directshownet.sourceforge.net/
我用过VlcDotNet . 它非常灵活且易于使用 . 它也有一个非常活跃的用户群 .
我用它来显示实时视频流以及录制到文件 .
我已经使用AForge(http://www.aforgenet.com/)一组库来逐帧接受视频 . 我使用(private void videoSourcePlayer1_NewFrame(object sender,ref Bitmap image))函数来执行此操作 .
我可以推荐WPF ffmediaelement . 它 Build 在ffmpeg上 . 那么什么可以ffmpeg,也可以ffmediaelement . 可以从网络摄像头和捕获卡中捕获视频 . 与DirectShow不同,'s very simple. Here'是如何设置视频源的:
...以及MediaOpening事件中的参数: