V4L2 FCNTL.IOCTL VidioCysPARM用于设置FPS和摄像机CAPU的分辨率

2024-05-13 10:05:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试设置fps和摄像头的分辨率,并通过v4l2 Python从中捕获。

v4l2 Python文档仅限于

>>> import v4l2
>>> import fcntl
>>> vd = open('/dev/video0', 'rw')
>>> cp = v4l2.v4l2_capability()
>>> fcntl.ioctl(vd, v4l2.VIDIOC_QUERYCAP, cp)
0
>>> cp.driver
'ov534'
>>> cp.card
'USB Camera-B4.09.24.1'

看录像2.h

#define VIDIOC_S_PARM       _IOWR('V', 22, struct v4l2_streamparm)

VidioCyssPARM与V4L2a流PARM有关,即

struct v4l2_streamparm {
    enum v4l2_buf_type type;
union {
    struct v4l2_captureparm capture;
    struct v4l2_outputparm  output;
    __u8    raw_data[200];  /* user-defined */
} parm;
};

如果我想设置参数

import v4l2
import fcntl
vd = open('/dev/video1', 'rw')
cp = v4l2.v4l2_streamparm()
fcntl.ioctl(vd, v4l2.v4l2_streamparm, cp)

这是我能得到的。

如何使用Python v4l2调整相机的fps速率和分辨率并从中捕获图像?


Tags: devimport分辨率opencpstructrwfps