Как узнать поддерживаемые разрешения веб-камеры?

У меня есть веб-камера на Thinkpad T500. Я хотел бы знать его поддерживаемые резолюции. Есть ли способ выяснить это с помощью программного обеспечения (и без необходимости обращаться к документации)?

33
задан 20 May 2015 в 18:43

4 ответа

Также возможно с ffmpeg:

ffmpeg -f video4linux2 -list_formats all -i /dev/video0

Пример вывода:

...
[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
...
0
ответ дан 20 May 2015 в 18:43

Два возможных подхода:

Используйте любое программное обеспечение, которое может взаимодействовать с веб-камерой (например, cheese), сохраните изображение и посмотрите на разрешение.

Изучите вывод lsusb в терминале, чтобы найти строку, описывающую веб-камеру:

$ lsusb
Bus 001 Device 002: ID 5986:0241 Acer, Inc BisonCam, NB Pro
...

Затем используйте числа Bus и Device, чтобы получить больше информации об этом устройстве:

$ lsusb -s 001:002 -v | egrep "Width|Height"
    wWidth    640
    wHeight   480
    wWidth    1280
    wHeight   1024
...

Которые должны печатать пары высоты, ширины, на которые способна камера - в данном случае 1280x1024 плюс некоторые меньшие.

0
ответ дан 20 May 2015 в 18:43

Если у вас установлен gstreamer с подключаемым модулем gstreamer1.0-plugins-base-apps , вы можете использовать двоичный файл gst-device-monitor-1.0 .

$ gst-device-monitor-1.0

пример вывода:

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 ! ...

это особенно интересно, потому что он показывает возможные разрешения и FPS и видео-формат (например, MJPEG / YUY2), с которым могут быть достигнуты требуемые FPS.

9
ответ дан 22 January 2020 в 13:15

Другие вопросы по тегам:

Похожие вопросы: