LibVLCSharp 如何获取网络摄像头列表

LibVLCSharp how to get list of webcams

VLC GUI 显示可用网络摄像头列表,如 v4l2:///dev/video0v4l2:///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;
}