2
1
I'm trying to figure out what PowerShell command [or script if necessary] might allow ffmpeg
to recursively traverse a directory, pull stills via the -vf
flag, and put all the stills into a folder without any filename conflicts that would cause overwriting.
So I know that this works fine for an individual file:
ffmpeg -i input.mov -vf fps=10/60 still%04d.jpg
The files generated start from still0001.jpg
and count up to still0002.jpg
, still0003.jpg
, etc.
I have a directory that looks like this, with video files at different levels:
topFolder1
midFolder1
video1.mov
video2.mov
midFolder2
video3.mov
video4.mov
I'm trying to use a PowerShell command that can pull stills from all the videos video1.mov
, video2.mov
, video3.mov
, and video4.mov
and drop them into one folder.
I found a PowerShell command that purports to have ffmpeg traverse a directory recursively, but when I try to adapt it, it's not working.
I run:
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
But I get this error:
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
Where am I going wrong?
The command that you are running is intended for cmd.exe or batch file execution. Not powershell. To convert this to powershell research these commands:
Get-ChildItem
,foreach
, andInvoke-Expression
among others. – EBGreen – 2018-06-11T16:06:35.763@EBGreen OK. Running it in
cmd.exe
returns:"%G" was unexpected at this time.
. Any ideas? – user260467 – 2018-06-11T16:25:02.517The link that you provided literally says that you need to double the % symbols. The command in that link is also quoted differently than the command that you are running. – EBGreen – 2018-06-11T19:10:12.293
@user260467 Try to convert your iteration routine logic to run via PS commands, edit your question with what you are trying code wise, to potentially help draw more attention for some assistance as you need. Simply, take a few minutes, and tag me back afterwards. Otherwise run your looped command from
cmd.exe
and notpowershell.exe
and see what happens because at least errorAt line:1 char:4
should not occur. – Pimp Juice IT – 2018-06-14T19:33:15.337@EBGreen Yes, this is not a batch
.bat
file. Also, I am trying a different command. – user260467 – 2018-07-02T14:52:45.347