使用Vlc.DotNet打开摄像头并截图 C#

 

 参考上一篇  使用vlc打开usb摄像头

理论上输入下面地址

"dshow:// :dshow-size=1600*1200:dshow-vdev=USB CAM2"
C#就能打开摄像头了
类似打开本地文件或者rtsp之类的网络地址

但实际测试怎么着都是打开第一个摄像头,第二个怎么也打不开

实际上vlc打开网络串流那里复制这个地址进去也是只能打开第一个摄像头


注意到

media.AddOption
这个方法
就试了一下,发现分辨率可以控制了,摄像头也可以选择了

但这里需要摄像头名字
:dshow-vdev

就只好根据上一篇AForge来获取了

使用AForge.NET Framework打开摄像头并截图 C#


反正研究这个就是为了补充AForge不支持的摄像头打开。AForge开发轻松得多,也更好用

Vlc.DotNet.Forms.VlcControl cc = new  Vlc.DotNet.Forms.VlcControl();
            cc.Width = 500;
            cc.Height = 400;
            cc.Top = 100;
            cc.Left = 100;

            Vlc.DotNet.Core.Medias.MediaBase media = new Vlc.DotNet.Core.Medias.LocationMedia("dshow:// ");
            media.AddOption(":dshow-size=1600*1200");
            media.AddOption(":dshow-vdev=USB CAM2");

            cc.Play(media);
            this.Controls.Add(cc);
            cc.BringToFront();



            //cc.TakeSnapshot("D:\111.jpg", 1600, 1200);//截图

 注意

Vlc.DotNet.Core.Medias.MediaBase media = new Vlc.DotNet.Core.Medias.LocationMedia("dshow:// ");
初始化MediaBase 时只需
"dshow:// "
即可

选择哪个相机需要AddOption
,选择分辨率之类的参数也要AddOption

但不支持相机index,必须相机name,可以参考使用AForge.NET Framework打开摄像头 C#获取对应index的name

原文地址:https://www.cnblogs.com/jhlong/p/7488962.html