參考上一篇 使用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