我有一个文件夹,里面的每个 mp4 文件都需要剪掉前 10 分钟。我使用下面的方法逐个剪掉,但逐个剪掉太耗时了
ffmpeg -i "untrimmed.mp4" -ss 00:10:00 -c copy "trimmmed.mp4"
有没有简单的方法可以一次修剪多个视频文件?
编辑-我已经在 powershell 中找到了解决方法-例如使用 11 分钟
Get-ChildItem -Filter *.mp4 | ForEach -Process { ffmpeg -i $_ -ss 00:11:00 -c copy ($_.BaseName + '_Trimmed.mp4')}
答案1
这个概念称为批处理,方法依赖于系统,因为 ffmpeg 本身缺乏这种能力。
在 Windows 上,您可能需要使用ForFiles
查找与模式匹配的文件(例如*.mp4
)并/C
使用开关在结果上运行 ffmpeg 命令。
在 Linux 和 MacOS 命令行中find
使用开关执行相同的操作-exec
。
在这两种情况下您都可以使用循环,但是当您只想做这些的时候它们会使事情变得过于复杂。
举个 Linux 的例子,这个命令会在当前文件夹中搜索.
名称与*.mp4
模式匹配的文件,然后对每个结果执行 ffmpeg {}
,输出到 eg (你可以用它,对吧?)。最后的untrimmed.mp4_trim.mp4
escaped关闭开关:;
-exec
find . -iname '*.mp4' -exec ffmpeg -i '{}' -ss 00:10:00 -c copy '{}_trim.mp4' \;