我的 T500 Thinkpad 上有一个网络摄像头。我想知道它支持的分辨率。有没有办法通过软件找到它(而不必查阅文档)?
答案1
如果你安装了 video4linux 尝试这个:
v4l2-ctl -d /dev/video0 --list-formats-ext
使用以下方式指定您的相机设备-d参数,但如果您确信只连接了一个视频设备,则可以省略该参数。
你应该得到类似这样的结果:
ioctl: VIDIOC_ENUM_FMT
Type: Video Capture
[0]: 'JPEG' (JFIF JPEG, compressed)
Size: Discrete 320x240
Size: Discrete 640x480
答案2
两种可能的方法:
使用任何可以与网络摄像头交互的软件(例如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 加上一些较小的。
答案3
这也是可能的ffmpeg
,它还提供有关视频编码的信息(例如 raw 与 mjpeg)。
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
...
答案4
这对我有用:
首先获取总线和设备 ID:
lsusb
它将打印如下内容:
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 011: ID 0ac8:3420 Z-Star Microelectronics Corp. Venus USB2.0 Camera
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
在我的例子中,我已连接 Venus USB2.0 相机。因此,现在我运行以下命令:
lsusb -s 001:011 -v | grep -E "Width|Height"
生成以下列表:
wWidth 640
wHeight 480
wWidth 352
wHeight 288
wWidth 320
wHeight 240
wWidth 176
wHeight 144
wWidth 160
wHeight 120
wWidth 800
wHeight 600
wWidth 1280
wHeight 960
wWidth 1280
wHeight 1024
wWidth 1600
wHeight 1200
wWidth( 0) 1600
wHeight( 0) 1200
wWidth( 1) 352
wHeight( 1) 288
wWidth( 2) 320
wHeight( 2) 240
wWidth( 3) 176
wHeight( 3) 144
wWidth( 4) 160
wHeight( 4) 120
wWidth( 5) 800
wHeight( 5) 600
wWidth( 6) 1280
wHeight( 6) 960
wWidth( 7) 1280
wHeight( 7) 1024
wWidth( 8) 640
wHeight( 8) 480
来源:raymii.org