Я пытаюсь сохранить изображение с помощью USB-сканера, используя ffmpeg и CentOS. Для сохранения изображений я использую следующую команду.
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-format я могу сделать вывод, что моя камера поддерживает только MJPG, без YUV или чего-либо еще. Моя идея состояла в том, чтобы правильно установить настройки v4l2:
v4l2-ctl --set-fmt-video=width=1600,height=1200,pixelformat=MJPG
Но это не помогло в моем случае. Я также думаю, что ffmpeg может иметь некоторые проблемы с большими файлами, но, как я выяснил, белые изображения занимают меньше места, чем эти темные. Сканеры зовут HoverCam.
Я надеюсь, что кто-то может мне помочь с этим.