LibVLCSharp 如何获取网络摄像头列表
LibVLCSharp how to get list of webcams
VLC GUI 显示可用网络摄像头列表,如 v4l2:///dev/video0
和 v4l2:///dev/video1
,我想知道有没有办法获取可用网络摄像头列表?他们的默认分辨率如何?
我试过了,但是 md.MediaList
是空的。
var mds = libVlc.MediaDiscoverers(MediaDiscovererCategory.Devices);
if (mds.Any(x => x.LongName == "Video capture"))
{
var devices = mds.First(x => x.LongName == "Video capture");
var md = new MediaDiscoverer(libVlc, devices.Name);
foreach (var media1 in md.MediaList)
{
// Nothing ...
}
}
您的 MediaDiscoverer 是空的,因为您从未调用 md.Start()。
有关更多信息,我发现这非常有用:/LibVLCSharp/MediaDiscoverer.cs
也就是说,我自己使用 MediaDiscoverer 寻找网络摄像头没有成功。
如果你不坚持使用LibVLC,你可以列出所有相机设备,无需任何第三方软件:How can I get a list of camera devices from my PC C#
来自 Francesco Bonizzi:
public static List<string> GetAllConnectedCameras()
{
var cameraNames = new List<string>();
using (var searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PnPEntity WHERE (PNPClass = 'Image' OR PNPClass = 'Camera')"))
{
foreach (var device in searcher.Get())
{
cameraNames.Add(device["Caption"].ToString());
}
}
return cameraNames;
}
VLC GUI 显示可用网络摄像头列表,如 v4l2:///dev/video0
和 v4l2:///dev/video1
,我想知道有没有办法获取可用网络摄像头列表?他们的默认分辨率如何?
我试过了,但是 md.MediaList
是空的。
var mds = libVlc.MediaDiscoverers(MediaDiscovererCategory.Devices);
if (mds.Any(x => x.LongName == "Video capture"))
{
var devices = mds.First(x => x.LongName == "Video capture");
var md = new MediaDiscoverer(libVlc, devices.Name);
foreach (var media1 in md.MediaList)
{
// Nothing ...
}
}
您的 MediaDiscoverer 是空的,因为您从未调用 md.Start()。 有关更多信息,我发现这非常有用:/LibVLCSharp/MediaDiscoverer.cs
也就是说,我自己使用 MediaDiscoverer 寻找网络摄像头没有成功。
如果你不坚持使用LibVLC,你可以列出所有相机设备,无需任何第三方软件:How can I get a list of camera devices from my PC C#
来自 Francesco Bonizzi:
public static List<string> GetAllConnectedCameras()
{
var cameraNames = new List<string>();
using (var searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PnPEntity WHERE (PNPClass = 'Image' OR PNPClass = 'Camera')"))
{
foreach (var device in searcher.Get())
{
cameraNames.Add(device["Caption"].ToString());
}
}
return cameraNames;
}