Я успешно делаю снимок экрана каждые 15 секунд с помощью приведенной ниже команды, но мне нужно сопоставить изображения с тем местом, откуда на снимке экрана.

% D дает мне целое число, но есть ли аналогичная переменная, фильтр или иное, чтобы включить или каким-либо образом зафиксировать временную метку изображения в имени выходного файла?

c:\ffmpeg\bin>ffmpeg -i c:\files\video.mp4 -vf fps=1/15 c:\images\image_%d.png";

Токовый выход:

c:\images\image1.png
c:\images\image2.png
c:\images\image3.png
...
c:\images\image999.png

Желаемый результат - что-то вроде:

c:\images\image_00-00-00.png    // Capture at start of video
c:\images\image_00-00-15.png    // Capture at 00:00:15
c:\images\image_00-00-30.png    // Capture at 00:00:30
c:\images\image_00-00-45.png    // Capture at 00:00:45
c:\images\image_00-01-00.png    // Capture at 00:01:00
...
c:\images\image_01-25-15.png    // Last capture

1 ответ1

1

Как написали некоторые люди, вероятно, нет команды ffmpeg , которая может делать то, что вы хотите. На Linux-машине я бы предложил вам использовать следующий скрипт

#!/bin/bash
interval=15 # interval between images in seconds

for ((i=0; i<$1; ++i)); do
timestamp=$(date -d @$((-3600+${i}*${interval})) +%H-%M-%S)
mv image${i}.png image_${timestamp}.png
done

exit 0

Вы можете назвать это в каталоге с изображениями как

$ script_name NNN

где NNN - общее количество изображений (я предполагаю, что вы начинаете нумерацию с 0 вместо 1, это не сложно).

Как видите, я полагаюсь на date команды linux, которая способна конвертировать секунды в часы.

Поскольку вы, кажется, находитесь на компьютере с Windows, есть несколько вариантов, как вы можете использовать этот скрипт.

  1. Перепишите его в пакетный файл Windows. Здесь есть тема, в которой обсуждается, как использовать команду, аналогичную date в Windows.

  2. Установите cygwin и запустите приведенный выше скрипт из командной строки cygwin

  3. Для запуска скрипта выше используйте отдельную строку bash coomand .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .