У меня есть веб-камера, и я хочу записывать кадр один раз в секунду на диск. Такая команда хорошо работает для удаления 5 кадров в секунду на диск:
./ffmpeg -y -f video4linux2 -input_format mjpeg -r 5 -i /dev/video0 -c:v copy -bsf:v mjpeg2jpeg images/frame_%d.jpg
Но 5 FPS ниже, чем моя веб-камера. Установка любого ниже, и это просто исправляет обратно до 5 FPS. Я не смог выяснить, как эффективно получить 1 FPS из этого. Казалось, что избранный видеофильтр был хорошим кандидатом. Но я поместил его в нескольких местах командной строки, но безрезультатно.
./ffmpeg -y -f video4linux2 -input_format mjpeg -r 5 -i /dev/video0 -c:v copy -bsf:v mjpeg2jpeg -vf select='not(mod(n\,5))' images/frame_%d.jpg
./ffmpeg -y -vf select='not(mod(n\,5))' -f video4linux2 -input_format mjpeg -r 5 -i /dev/video0 -c:v copy -bsf:v mjpeg2jpeg images/frame_%d.jpg
./ffmpeg -y -f video4linux2 -input_format mjpeg -r 5 -i /dev/video0 -vf select='not(mod(n\,5))' -c:v copy -bsf:v mjpeg2jpeg images/frame_%d.jpg
Кто-нибудь знает, как я могу получить 1 FPS с веб-камеры, используя ffmpeg? Этот вопрос похож на извлечение "одного из каждых 10 кадров" в видео с использованием VLC или FFmpeg, но я просто не могу заставить работать фильтр выбора, и я думаю, что это из-за того, что он является живым источником.