Linux查看相机支持帧率和格式
在 Linux 系统中,要查看相机(如 USB 摄像头或内置摄像头)支持的 帧率(FPS) 和 视频格式(Pixel Format),可以使用以下工具和方法:
1. 使用 v4l2-ctl 工具
v4l2-ctl 是 Video4Linux2 (V4L2) 的实用工具,用于查询和控制视频设备(如摄像头)。
1. 安装 v4l-utils
sudo apt install v4l-utils # Debian/Ubuntu
sudo dnf install v4l-utils # Fedora
sudo pacman -S v4l-utils # Arch Linux
2. 查看相机设备
v4l2-ctl --list-devices
输出示例:
/dev/video0: Integrated Camera (usb-0000:00:14.0-1):
/dev/video1
/dev/media0
这里 /dev/video0 是相机设备节点。查看支持的视频格式(Pixel Formats)
v4l2-ctl -d /dev/video0 --list-formats-ext
输出示例:
ioctl: VIDIOC_ENUM_FMT
Index : 0
Type : Video Capture
Pixel Format: 'MJPG' (Motion-JPEG)
Name : Motion-JPEG
Size: Discrete 1280x720
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.040s (25.000 fps)
Interval: Discrete 0.050s (20.000 fps)
Size: Discrete 640x480
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.040s (25.000 fps)
Index : 1
Pixel Format: 'YUYV' (YUYV 4:2:2)
Name : YUYV 4:2:2
Size: Discrete 1280x720
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 640x480
Interval: Discrete 0.033s (30.000 fps)
关键信息:
Pixel Format:支持的视频格式(如 MJPG、YUYV、NV12 等)。
Size:分辨率(如 1280x720、640x480)。
Interval:帧间隔时间(0.033s ≈ 30 FPS)。
2. 使用 ffmpeg 查看相机参数
ffmpeg 也可以列出相机支持的格式和帧率:
ffmpeg -f v4l2 -list_formats all -i /dev/video0
[video4linux2,v4l2 @ 0x55a6a3b8e0] Raw : yuyv422 : YUYV 4:2:2
[video4linux2,v4l2 @ 0x55a6a3b8e0] Compressed: mjpeg : Motion-JPEG
使用工具(如ffplay或cheese)打开每个节点,观察输出内容:
ffplay -f v4l2 /dev/video0
检查内核日志:
dmesg | grep video