Windows cmd.exe - 如何防止 ffmpeg 递归处理目录时覆盖输出文件?

Windows cmd.exe - 如何防止 ffmpeg 递归处理目录时覆盖输出文件?

我正在尝试ffmpeg递归地遍历一个文件夹并从多个不同的视频剪辑中提取静止图像。

如果我运行:

for /r "W:\Exports\1 - Dailies\" %f in (*.mov) do ffmpeg -i "%f" -vf fps=6/60 still%05d.jpg

ffmpeg会每 10 秒从遇到的第一个文件中提取一张静态图片.mov,但当它移动到第二个文件时.mov,计数会still%05d.jpg重新开始still00001.jpg,第二个文件中的静态图片会覆盖第一个文件中的静态图片。然后第三个文件中的静态图片会覆盖第二个文件,依此类推。

我怎样才能将输入文件的文件名添加到输出 JPG 文件的文件名前面以免发生覆盖?

答案1

我发现这个答案我可以使用%~nf

for /r "W:\Exports\1 - Dailies\" %f in (*.mov) do ffmpeg -i "%f" -vf fps=6/60 %~nf_still%05d.jpg

相关内容