Я пытаюсь выяснить, какая команда PowerShell [или сценарий, если необходимо] может позволить ffmpeg
рекурсивно проходить по каталогу, извлекать кадры с помощью флага -vf
и помещать все кадры в папку без каких-либо конфликтов имен файлов, которые могут вызвать перезапись.
Итак, я знаю, что это прекрасно работает для отдельного файла:
ffmpeg -i input.mov -vf fps=10/60 still%04d.jpg
Сгенерированные файлы начинаются с still0001.jpg
и считаются до still0002.jpg
, still0003.jpg
и т.д.
У меня есть каталог, который выглядит так, с видеофайлами на разных уровнях:
topFolder1
midFolder1
video1.mov
video2.mov
midFolder2
video3.mov
video4.mov
Я пытаюсь использовать команду PowerShell, которая может извлекать кадры из всех видео video1.mov
, video2.mov
, video3.mov
и video4.mov
и помещать их в одну папку.
Я нашел команду PowerShell, которая подразумевает, что ffmpeg рекурсивно пересекает каталог, но когда я пытаюсь его адаптировать, он не работает.
Я бегу:
PS T:\Exports\1 - Dailies\stills test> for /F "tokens=*" "%G" IN ('dir "T:\Exports\1 - Dailies" *.mov') do ffmpeg -i "%G" -vf fps=10/60 still%05d.jpg
Но я получаю эту ошибку:
At line:1 char:4
+ for /F "tokens=*" "%G" IN ('dir "T:\Exports\1 - Dailies" *.mov') do f...
+ ~
Missing opening '(' after keyword 'for'.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : MissingOpenParenthesisAfterKeyword
Куда я иду не так?