ffmpeg -i myvid.mp4 -r 25 -t 100 image-%d.jpeg
Является ли команда, которую я использую для извлечения кадров, и она работает так, как я ожидал. Однако я также хотел бы посмотреть на временные метки кадров. С любой точностью. 100 миллисекунд это достаточно хорошо для меня. Может ли ffmpeg сделать это?
Предоставление дополнительных деталей,
Когда я запускаю вышеупомянутую команду, я получаю около 100 JPEG, я предполагаю, что между этими JPEGS и кадрами видео есть соответствие 1 к 1 (или много к 1). Я хотел бы знать временную метку кадра, который был выведен как изображение JPEG 'i'.
Кроме того, я попытался ffprobe, но я считаю, что он сообщает даже продолжительность видео неточно :(
capture
времени.ffmpeg
вывод консоли из вашей команды.Ответы:
То, что вы можете сделать, это «смоделировать» процесс записи изображения, отфильтровав его с помощью
fps
фильтра, а затем использоватьffprobe
для отображения меток времени сгенерированных кадров. Это означает, что при 25 кадрах в секунду 50-й кадр (как и ваше 50-е изображение) будет иметь PTS 2,00 секунды.Вы делаете это так:
Будет выводить:
Это временные метки для каждого выходного изображения. На самом деле вы можете объединить список кадров и отметок времени:
Создаст файл с:
Обратите внимание, что это может привести к лишним строкам, если слишком много кадров или слишком много строк вывода информации. Кажется, немного неточно.
источник
-vsync drop
, но это происходит после фильтрации, IIRC.