У меня есть веб-камера на Thinkpad T500. Я хотел бы знать его поддерживаемые резолюции. Есть ли способ выяснить это с помощью программного обеспечения (и без необходимости обращаться к документации)?
Если у вас есть видео 4 linux, попробуйте это
v4l2-ctl --list-formats-ext
Источник: Как я могу перечислить доступные режимы видео для веб-камеры USB в Linux?
Также возможно с 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
...
Два возможных подхода:
Используйте любое программное обеспечение, которое может взаимодействовать с веб-камерой (например, 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 плюс некоторые меньшие.
Если у вас установлен 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.