Есть ли решение для захвата видео с веб-камеры USB и сохранения каждого кадра в локальной папке в виде файла jpeg в системе Linux с помощью командной строки? Или я должен использовать opencv?
До сих пор мне удалось сохранить поток в файл avi с помощью этого системного вызова:
avconv -f video4linux2 -s 640x480 -i /dev/video0 video1.avi
Чтобы получить один кадр, я могу использовать это:
fswebcam -r 640x480 --jpeg 85 -D 1 shot.jpg
Проблема в том, что если я помещу эту последнюю команду в цикл, мне удастся получить только один кадр в секунду. Поскольку команде avconv удается без проблем сохранить файл avi со скоростью 30 кадров в секунду, я полагаю, что она могла бы сохранить также последовательность файлов jpeg со скоростью 30 кадров в секунду, если бы я нашел правильную команду.
Я знаю, что есть эта команда, которая сохраняет отдельные кадры в формате jpeg из видеофайла, и она отлично работает:
avconv -i video1.avi -r 30 -f image2 out_%04d.jpg
Однако, если я попробую это:
avconv -i /dev/video0 -r 30 -f image2 out_%04d.jpg
Я получаю эту ошибку:
/dev/video0: Operation not permitted
Есть ли решение?
Спасибо