每 30 秒从 *.mts 中批量提取图像?

每 30 秒从 *.mts 中批量提取图像?

请原谅我,因为我刚刚开始使用 ffmpeg。我有一个 *.mts 视频文件夹(标题有点奇怪,有很多空格、字符和数字——不确定这是否会影响它),我需要每 30 秒提取文件夹中所有视频的图像。

我有很好的脚本可以逐个提取,例如

ffmpeg -i "*.mts" -start_number 0 -vf fps=1/30 "B 00-%02d-30.000.png"

但是,我需要创建一个批处理文件来对指定文件夹中的所有 .mts 文件执行此操作。

有人可以向我解释如何编写它吗(假设批处理文件与照片位于同一位置)?

谢谢

答案1

我会使用以下for命令:

for /f "delims=|" %%f in ('dir /b *.mts') do (ffmpeg -i "%%f" -start_number 0 -vf fps=1/30 "B 00-%02d-30.000.png")

我还没有检查你的 ffmpeg 命令的语法,但是当它以工作目录作为文件夹的路径运行时,它应该可以从批处理文件运行。否则,你可以更改dir /b *.mts为类似的东西dir /b C:\FolderWithFiles\*.mts,或者使用让它%~dp0使用你的批处理文件所在的路径。

编辑:另请注意,如果您尝试在批处理文件之外并直接从命令提示符测试命令,则需要将 更改%%f%f

相关内容