linux下使用v4l2-ctl查看摄像头数据

安装

我有一个支持uvc的相机,通过USB线和我的linux开发机连起来了。为了查看它的信息,我上网发现有v4l-utils这个包。这个包的工具可以让我在写代码前就对相机的参数有个大概了解。

sudo apt install v4l-utils

安装成功后系统上多出了一下工具:

v4l2-compliance  v4l2-ctl         v4l2-dbg         v4l2-sysfs-path

我主要是用v4l2-ctl来查看摄像头的信息。

罗列所有摄像头设备

虽然下面显示/dev下两个设备,但是实际上就一个摄像头(Webcam gadget),下面用/dev/video0来访问。

#v4l2-ctl --list-devices
Webcam gadget: UVC Camera (usb-0000:00:14.0-1):
        /dev/video0
        /dev/video1

查看支持的分辨率和格式

我这个相机是4K的,可以看到4K的格式

#v4l2-ctl --device=/dev/video0 --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
        Type: Video Capture

        [0]: 'YUYV' (YUYV 4:2:2)
                Size: Discrete 1280x720
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                Size: Discrete 1920x1080
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                Size: Discrete 3840x2160
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
        [1]: 'MJPG' (Motion-JPEG, compressed)
                Size: Discrete 1920x1080
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)

查看支持的可调参数

摄像头的有些参数是可调的,有些甚至支持zoom和云台的控制,具体的情况是看相机端实现的。我这里可调参数较少,主要是一些图像参数。

v4l2-ctl -d /dev/video0 --list-ctrls
                     brightness 0x00980900 (int)    : min=0 max=21997 step=1 default=50 value=11500
                       contrast 0x00980901 (int)    : min=0 max=100 step=1 default=50 value=0
                     saturation 0x00980902 (int)    : min=0 max=127 step=1 default=50 value=60
                            hue 0x00980903 (int)    : min=0 max=0 step=10 default=90 value=0
 white_balance_temperature_auto 0x0098090c (bool)   : default=0 value=0
### 使用 `v4l2-ctl` 命令管理 Linux 中的视频设备 #### 查看已安装版本 为了确认系统中是否已经安装了 `v4l2-ctl` 工具以及其具体版本,在终端输入如下命令: ```bash v4l2-ctl --version ``` 此操作会返回当前环境中所使用的 `v4l2-ctl` 的确切版本号[^1]。 #### 显示指定摄像头的信息 当需要获取特定摄像头(例如 `/dev/video0`)的所有配置详情时,可执行下面这条指令来展示完整的参数列表: ```bash v4l2-ctl -d /dev/video0 --all ``` 上述命令能够帮助管理员全面了解目标摄像装置的状态与设置情况[^4]。 #### 查询驱动程序细节 如果想要深入了解某个视频接口背后对应的硬件驱动特性,则可以通过下列方式查询: ```bash v4l2-ctl -D -d /dev/video0 ``` 这有助于识别连接到系统的不同类型的影像捕捉卡或其他多媒体外设的工作模式及其兼容性特点。 #### 测试图像流传输功能 对于那些希望验证实际画面抓取效果的情况来说,利用 FFmpeg 提供的相关工具配合 `v4l2-ctl` 可以轻松实现这一目的。比如要测试分辨率为 1280x720、像素格式为 YUYV422 的实时预览窗口,只需键入以下语句即可完成设定: ```bash ffplay -i /dev/video0 -f v4l2 -pix_fmt yuyv422 -video_size 1280x720 ``` 这里值得注意的是,虽然例子中采用了 `ffplay` 来作为播放器,但在某些场景下也可能需要用到其他更适合的选择,视具体情况而定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值