我正在尝试使用ffmpeg和CentOS使用USB扫描仪保存图像。为了保存图像,我使用以下命令。
ffmpeg -f video4linux2 -i /dev/video0 -vframes 1 A.jpg
这适用于大部分由深色区域组成的图像。当我从白色背景拍摄图像时,总是会出现以下错误:
[video4linux2,v4l2 @ 0x1914c00] Dequeued v4l2 buffer contains corrupted data
(0 bytes).
Last message repeated 31 times
[video4linux2,v4l2 @ 0x1914c00] decoding for stream 0 failed
[video4linux2,v4l2 @ 0x1914c00] Could not find codec parameters for stream 0
(Video: mjpeg, none(bt470bg/unknown/unknown), 1600x1200, -5 kb/s):
unspecified pixel format
Consider increasing the value for the 'analyzeduration' and 'probesize'
options
/dev/video0: could not find codec parameters
从--list-formats命令,我可以认为我的相机仅支持MJPG,不支持YUV或其他任何功能。我的想法是通过以下方式正确设置v4l2设置:
v4l2-ctl --set-fmt-video=width=1600,height=1200,pixelformat=MJPG
但这对我的情况没有帮助。尽管ffmpeg可能对大型文件也有一些问题,但是我发现,白色图像比深色图像占用更少的空间。扫描仪的名称是HoverCam。
我希望有人可以帮助我。