如何找出支持的网络摄像头分辨率?

sup*_*sup 52 resolution webcam

我的 T500 Thinkpad 上有一个网络摄像头。我想知道其支持的决议。有没有办法通过软件(而无需查阅文档)找到它?

小智 48

如果你安装了 video4linux 试试这个:

v4l2-ctl -d /dev/video0 --list-formats-ext
Run Code Online (Sandbox Code Playgroud)

使用-d参数指定您的相机设备,但是如果您确信只有一个视频设备连接,则可以省略它。

你应该得到类似的东西:

    ioctl: VIDIOC_ENUM_FMT
    Type: Video Capture

    [0]: 'JPEG' (JFIF JPEG, compressed)
            Size: Discrete 320x240
            Size: Discrete 640x480
Run Code Online (Sandbox Code Playgroud)

来源:如何在 Linux 中列出 USB 网络摄像头的可用视频模式?

  • 首先,您需要安装该实用程序:`sudo apt-get install v4l-utils` (7认同)

chr*_*tis 44

两种可能的方法:

使用任何可以与网络摄像头交互的软件(例如cheese),保存图像并查看分辨率。

检查lsusb终端中的输出,以找到描述网络摄像头的行:

$ lsusb
Bus 001 Device 002: ID 5986:0241 Acer, Inc BisonCam, NB Pro
...
Run Code Online (Sandbox Code Playgroud)

然后使用BusDevice数字获取有关该设备的更多信息:

$ lsusb -s 001:002 -v | egrep "Width|Height"
    wWidth    640
    wHeight   480
    wWidth    1280
    wHeight   1024
...
Run Code Online (Sandbox Code Playgroud)

哪个应该打印相机能够处理的高度,宽度对 - 在这种情况下,1280x1024 加上一些较小的。


seb*_*bix 23

这也可以使用ffmpeg,它还提供有关视频编码的信息(例如原始与 mjpeg)。

ffmpeg -f video4linux2 -list_formats all -i /dev/video0
Run Code Online (Sandbox Code Playgroud)

示例输出:

...
[video4linux2,v4l2 @ 0x7fa3a8000b40] Raw       :     yuyv422 :           YUYV 4:2:2 : 640x480 320x240 800x600 1024x600 1024x768 1280x800 1280x1024
[video4linux2,v4l2 @ 0x7fa3a8000b40] Compressed:       mjpeg :          Motion-JPEG : 640x480 320x240 800x600 1024x600 1024x768 1280x800 1280x1024
...
Run Code Online (Sandbox Code Playgroud)

  • 感谢您的提示,ffmpeg 更好/更通用。 (2认同)

小智 9

如果您安装了带有插件gstreamer1.0-plugins-base-apps 的 gstreamer,您可以使用gst-device-monitor-1.0二进制文件。

$ gst-device-monitor-1.0
Run Code Online (Sandbox Code Playgroud)

示例输出:

Device found:

    name  : FHD Camera
    class : Video/Source
    caps  : video/x-raw, format=(string)YUY2, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 5/1, 3/1 };
            video/x-raw, format=(string)YUY2, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)5/1;
            video/x-raw, format=(string)YUY2, width=(int)640, height=(int)480, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)20/1;
            video/x-raw, format=(string)YUY2, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1;
            image/jpeg, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 25/1, 20/1, 15/1, 10/1, 5/1, 1/1 };
            image/jpeg, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1;
            image/jpeg, width=(int)640, height=(int)480, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1;
            image/jpeg, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1;
    properties:
        udev-probed = true
        device.bus_path = platform-70090000.xusb-usb-0:2.1:1.0
        sysfs.path = /sys/devices/70090000.xusb/usb1/1-2/1-2.1/1-2.1:1.0/video4linux/video0
        device.bus = usb
        device.subsystem = video4linux
        device.vendor.id = 1bcf
        device.vendor.name = "Sunplus\\x20IT\\x20Co\\x20"
        device.product.id = 2286
        device.product.name = "FHD\ Camera"
        device.serial = Sunplus_IT_Co_FHD_Camera
        device.capabilities = :capture:
        device.api = v4l2
        device.path = /dev/video0
        v4l2.device.driver = uvcvideo
        v4l2.device.card = "FHD\ Camera"
        v4l2.device.bus_info = usb-70090000.xusb-2.1
        v4l2.device.version = 264588 (0x0004098c)
        v4l2.device.capabilities = 2216689665 (0x84200001)
        v4l2.device.device_caps = 69206017 (0x04200001)
    gst-launch-1.0 v4l2src ! ...
Run Code Online (Sandbox Code Playgroud)

这特别有趣,因为它显示了可能的分辨率和 FPS 和视频格式(例如 MJPEG/YUY2)所需的 FPS。