Кадровое сохранение видео с веб-камеры

Есть ли решение для захвата видео с веб-камеры 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

Есть ли решение?

Спасибо


person user2028271    schedule 01.05.2016    source источник


Ответы (1)


Не уверен, что это полезно, но в openshot вы можете импортировать видео и конвертировать его в последовательность изображений. Последовательность экспортируется в папку в том же каталоге, и каждый кадр имеет формат png. Я использовал его только через графический интерфейс openshot, хотя я не знаю, как использовать командную строку. В графическом интерфейсе просто щелкните правой кнопкой мыши импортированный видеофайл, и появится возможность преобразовать его в последовательность изображений.

person audiobomber    schedule 01.05.2016