Tina V821 Linux系统使用V4L2打开摄像头报错,如何解决?
-
在使用V4L2打开GC2053摄像头,获取摄像头支持的格式时,无打印,然后设置格式也一直报错无法成功,返回:Set format。
有无使用V4L2的可执行的应用层代码参考?struct v4l2_fmtdesc fmtdesc; memset(&fmtdesc, 0, sizeof(fmtdesc)); fmtdesc.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; fmtdesc.index = 0; printf("Supported formats:\n"); while (ioctl(fd, VIDIOC_ENUM_FMT, &fmtdesc) == 0) { printf(" %c%c%c%c\n", fmtdesc.pixelformat & 0xFF, (fmtdesc.pixelformat >> 8) & 0xFF, (fmtdesc.pixelformat >> 16) & 0xFF, (fmtdesc.pixelformat >> 24) & 0xFF); fmtdesc.index++; printf("1\n"); } // 设置格式 struct v4l2_format fmt; memset(&fmt, 0, sizeof(fmt)); fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; fmt.fmt.pix.width = WIDTH; fmt.fmt.pix.height = HEIGHT; fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_YUYV; // 或者根据摄像头支持格式修改 //fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_RGB565; //fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_NV12; //fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_MJPEG; fmt.fmt.pix.field = V4L2_FIELD_NONE; ret = ioctl(fd, VIDIOC_S_FMT, &fmt); printf("%d\n", ret); if (ioctl(fd, VIDIOC_S_FMT, &fmt) < 0) { perror("Set format"); close(fd); return -1; }
-
@volcan_w 在 Tina V821 Linux系统使用V4L2打开摄像头报错,如何解决? 中说:
V4L2_BUF_TYPE_VIDEO_CAPTURE
用V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE
Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号