Около пяти лет я использовал ffmpeg в сценарии оболочки, чтобы получить один кадр из iSight моего MacBook-up-up:
ffmpeg -f video4linux2 -s 640x480 -r 15 -i /dev/video0 -an -vframes 1 -vcodec mjpeg -y -sameq -ss 1.5 snapshot.jpg
Я только что обновил свой дистрибутив Ubuntu с Lucid до Natty (ffmpeg ver. 0.6.2-4: 0.6.2-1ubuntu1).
Теперь этот синтаксис включает iSight, но зависает бесконечно.
[output snipped, ending with:]
frame= 0 fps= 0 q=0.0 Lsize= -0kB time=10000000000.00 bitrate= -0.0kbits/s
video:0kB audio:0kB global headers:0kB muxing overhead -inf%
Без флага '-ss' кажется, что он успешно захватывает первый кадр и сразу же выходит - единственная разница в выводе:
frame= 1 fps= 0 q=0.0 Lsize= -0kB time=0.07 bitrate= -2.6kbits/s
video:16kB audio:0kB global headers:0kB muxing overhead -100.132730%
Однако '-ss 1,5' был необходим для задержки захвата кадра на 1,5 секунды, чтобы у камеры было достаточно времени для регулировки экспозиции.
Флаг -itsoffset показался многообещающим, но, похоже, не меняет поведение ffmpeg (т.е. не зависает, но без задержки).
Есть идеи?