ffmpeg для захвата скриншота из видеофайла в единицу времени - PullRequest
7 голосов
/ 30 сентября 2010

Я использую ffmpeg для захвата скриншота из видео. Вот код команды:

ffmpeg -i /my_video_file_dir/video.flv -y -f image2 -ss 8 -sameq -t 0.001 
-s 320*240 /image_dir/screenshot.jpg

И я хочу сделать снимок экрана в единицу времени 8,344, например

Но он не выводит снимок экрана по вышеуказанной команде

В моем тесте -ss 1,1.5,2,2.5 ... работает нормально, а другие не такие как 1.1,1.11

Знает ли кто-нибудь, почему это происходит и как я могу сделать снимок экрана в x.xxx время

1 Ответ

18 голосов
/ 02 января 2011

Попробуйте вместо этого:

ffmpeg -ss 00:00:01.01 -i /my_video_file_dir/video.flv -y -f image2 \
   -vcodec mjpeg -vframes 1 /image_dir/screenshot.jpg

Обратите внимание, что очень маленькие приращения обычно не приводят к разным изображениям из-за более низкой частоты кадров большинства видео.Шаг 0,001 с работает только с видео с частотой кадров 1000 кадров в секунду :) Шаг 0,03 должен работать с видео 30 кадров в секунду и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...