1

Я пытаюсь использовать FFmpeg для извлечения одного кадра в секунду из каждого файла в каталоге.

Я использую эту команду для отдельных файлов, но не могу понять, как вместо этого ввести каталог:

ffmpeg -i "C:\input\clip1.mp4" -vf fps=1 -qscale:v 2 "C:\output\clip1\clip1A"%d.jpg

В идеале я хочу, чтобы кадры были сохранены в их собственной папке, как показано ниже, но я думаю, что смогу решить эту часть самостоятельно. Хорошо, если все они выводятся в одну и ту же папку с одинаковым префиксом и последовательной нумерацией.

C:\output\clip1\clip1-001.jpg , clip1-002.jpg

C:\output\clip2\clip2-001.jpg , clip2-002.jpg

Я пытался много часов, и я все еще полностью потерян. Любая помощь будет очень цениться.

1 ответ1

1

Сделал это! Этот код будет выводить кадры в папки с тем же именем, что и видео, из которого они пришли. Кадры будут иметь префикс имени видео и суффикс последовательных номеров, начиная с 001. Так что для моих файлов он выплевывает "/clip1/clip1-001.jpg" и т.д.

На всякий случай, если вы похожи на меня и не знаете, что делаете, вставьте приведенный ниже код в блокнот, сохраните как «extractframesorwhever.bat» и запустите его из каталога, в котором находятся ваши клипы.

for %%F in (*.mp4) do (
If not Exist "%%~nF" MkDir "%%~nF"
ffmpeg -i %%F -r 1 -qscale:v 2 %%~nF\%%~nF-%%3d.jpg
)

Если вы хотите вывести папки в другое место, измените:

If not Exist "%%~nF" MkDir "%%~nF"

Чтобы что-то вроде этого:

If not Exist "C:\wherever\%%~nF" MkDir "C:\wherever\%%~nF"

Если вы сделаете это, вам также потребуется изменить вывод (в моем примере):

%%~nF\%%~nF-%%3d.jpg

в

C:\wherever\%%~nF\%%~nF-%%3d.jpg

Или, если вы хотите, чтобы все кадры в одной папке. Замените первый %% ~ nF из вывода на предпочитаемый вами каталог. Используя мой пример, он перейдет из C:\wherever\%% ~ nF\%% ~ nF - %% 3d.jpg в C:\wherever\frames\%% ~ nF - %% 3d.jpg. Вы также захотите отредактировать вторую строку, чтобы она указала на новое местоположение и не давало ей создать кучу ненужных каталогов, или полностью удалите вторую строку. Если вы удалите вторую строку, вам сначала нужно будет создать эту папку "frames".

РЕДАКТИРОВАТЬ - Вам может потребоваться удалить все пробелы из имен файлов, прежде чем они могут быть обработаны. "Утилита массового переименования" может сэкономить вам много времени.

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