首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ffmpeg剪切每个剪辑的第一秒和最后一秒

ffmpeg剪切每个剪辑的第一秒和最后一秒
EN

Stack Overflow用户
提问于 2017-09-24 04:47:14
回答 1查看 2.5K关注 0票数 1

我想对一个文件夹中的所有文件进行批量操作。对于每个文件,我需要删除剪辑的第一秒和最后一秒,并将其保存到目标文件夹。这是我使用的命令:

代码语言:javascript
复制
for %f in (“*.*”) do c:\ffmpeg\bin\ffmpeg -i "%f" -ss 00:00:01.000 -sseof 00:00:01.000 -c:v copy -c:a copy “u:\footage\%f”

该命令不起作用。它缩短了第一秒,但保留了文件的其余部分。也许我需要改变一些关于-sseof的语法。

EN

回答 1

Stack Overflow用户

发布于 2017-09-24 05:08:41

sssseof都告诉ffmpeg从哪里开始,因此您的命令有两个指定的开始时间,但没有指定结束时间。您的命令首选ss (可能是因为它最接近输入),而忽略sseof,然后一直工作到文件的末尾。

您可以使用to (它在文件中占据一个位置)或t (它获取一个持续时间)来告诉它结束的位置,但如果您的视频并非所有视频的长度都完全相同,则需要为每个文件计算此值。您可以使用ffprobe获取视频的长度,如下所示:

代码语言:javascript
复制
ffprobe -i <file> -show_entries format=duration -v quiet -of csv="p=0"

这将为您提供以秒为单位的文件长度。然后,您需要减去所需的数量(在您的示例中,如果使用to,则为1秒;如果使用t,则为2秒),并将结果输入到ffmpeg命令中的相应标志中。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46384166

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档