V4L 缓冲区未正确清理

V4L 缓冲区未正确清理

我一直在尝试编写 ac 程序来使用 v4l 从 uvc 相机捕获照片。我已经设法让它在大部分情况下工作,但每隔一次我运行该程序时,我都会得到一个零填充的 yuv 缓冲区,这会导致“空白”绿色图像。我尝试使用 ffmpeg 捕获视频,得到了类似的结果。每当我运行 ffmpeg 命令时ffmpeg -f v4l2 -framerate 30 -video_size 1920x1080 -i /dev/video2 video.mp4,我都会收到一条警告,提示[video4linux2,v4l2 @ 0x5567c2266f80] Dequeued v4l2 buffer contains corrupted data (0 bytes).视频无法播放。如果我当时取消捕获并删除并重新添加uvcvideo内核模块,则一切正常。

编辑:每次我收到空白图像时,都会有一个uvcvideo 2-1:1.1: Non-zero status (-71) in video completion handler.dmesg 日志。

我该如何解决这个问题?

提前致谢

相关内容