извлечь кадры с помощью ffmpeg и выяснить их смещение (миллисекунды) - PullRequest
0 голосов
/ 24 февраля 2019

Я хочу извлекать 10 последовательных кадров каждые 2 секунды.(это потому, что я хочу выбрать «лучший» из «соседнего смещения»).Я знаю, как извлекать кадр каждые x секунд:

ffmpeg -i /tmp/V.MP4 -vf fps=1 %02d.jpg

Я знаю, как извлечь 10 кадров из некоторого начального смещения:

ffmpeg -ss 20.0 -i /tmp/V.MP4 -vframes 10 %02d.jpg

У меня 2 проблемы:

  1. Как найти смещение для каждого выходного изображения?Я могу попытаться вычислить его (используя fps видео, которое в моем случае составляет 29,97), но это звучит как плохая идея - данные прямо в видео для ffmpeg, чтобы получить ..
  2. Есть лиэффективный способ «объединить» две команды в одну, получая, таким образом, 10 последовательных кадров каждые x секунд?

1 Ответ

0 голосов
/ 24 февраля 2019

Использование

ffmpeg -i source -vf select='eq(n,0)+if(mod(trunc(t)+1,2)*(trunc(t)-trunc(prev_t)),st(1,n),lt(n,ld(1)+10))' -vsync 0 -frame_pts 1 %d.jpg

Как найти смещение для каждого выходного изображения?

Посмотрите, что означают значения frame_pts, в ffmpeg выводит имя файла изображения с временной позицией

это потому, что я хочу выбрать «лучшее» из «близлежащего смещения»

the thumbnail фильтр может это сделать.

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