首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ffmpeg根据开始和结束时间裁剪视频

使用ffmpeg根据开始和结束时间裁剪视频
EN

Stack Overflow用户
提问于 2013-08-26 12:34:19
回答 14查看 813.1K关注 0票数 870

我使用以下命令尝试使用视频的开始和结束时间来剪切视频

代码语言:javascript
复制
ffmpeg -ss 00:00:03 -t 00:00:08 -i movie.mp4 -acodec copy -vcodec copy -async 1 cut.mp4

通过使用上面的命令,我想将视频从00:00:03剪切到00:00:08。但它并不是在那段时间之间切割视频,而是用前11秒来切割视频。有人能帮我解决这个问题吗?

编辑1:

我尝试使用mark4o建议的以下命令进行剪切

代码语言:javascript
复制
ffmpeg -i movie.mp4 -ss 00:00:03 -t 00:00:08 -async 1 cut.mp4

但它显示了以下错误。

编码器'aac‘是实验性的,但实验编解码器没有启用

因此,我将-strict -2添加到命令中,即,

代码语言:javascript
复制
ffmpeg -i movie.mp4 -ss 00:00:03 -t 00:00:08 -async 1 -strict -2 cut.mp4

现在一切都很顺利。

EN

回答 14

Stack Overflow用户

回答已采纳

发布于 2013-08-26 17:27:05

你可能没有关键帧在3秒的标记。因为非关键帧编码与其他帧不同,所以它们需要从前一个关键帧开始的所有数据。

有了mp4容器,就可以在非关键帧上剪切,而无需使用编辑列表重新编码。换句话说,如果3s之前最接近的关键帧是0,那么它将从0开始复制视频,并使用编辑列表告诉玩家开始播放3秒。

如果您正在使用来自git的最新ffmpeg,那么在使用您提供的命令调用时,它将使用一个编辑列表来完成这一任务。如果这不适用于您,那么您可能正在使用一个旧版本的ffmpeg,或者您的播放器不支持编辑列表。有些玩家会忽略编辑列表,并且始终从头到尾播放文件中的所有媒体。

如果您想要精确地从非关键帧开始,并希望它从不支持编辑列表的播放机上开始播放,或者希望确保剪切部分实际上不在输出文件中(例如,如果它包含机密信息),那么您可以通过重新编码来做到这一点,以便在所需的开始时间精确地有一个关键帧。如果不指定copy,则默认为重新编码。例如:

代码语言:javascript
复制
ffmpeg -i movie.mp4 -ss 00:00:03 -t 00:00:08 -async 1 cut.mp4

当重新编码时,您也可能希望包括其他与质量相关的选项或特定的AAC编码器。有关详细信息,请参阅ffmpeg的x264编码指南的视频和AAC编码指南的音频。

此外,-t选项指定持续时间,而不是结束时间。上面的命令将从3s开始编码8s的视频。要从3s开始,在8s结束,使用-t 5。如果您使用的是当前版本的ffmpeg,您还可以在上面的命令中用-t替换-to,以便在指定的时间结束。

票数 801
EN

Stack Overflow用户

发布于 2017-03-16 06:46:29

试着用这个。这是我想出的最快也是最好的方法:

代码语言:javascript
复制
ffmpeg -ss 00:01:00 -to 00:02:00 -i input.mp4 -c copy output.mp4

这个命令在几秒钟内修剪你的视频!

对命令的解释:

-i: --它指定输入文件。在这种情况下,它是(input.mp4)。-ss:与-i一起使用的,它在输入文件(input.mp4)中查找位置。 00:01:00: --这是你的视频剪辑开始的时候了。 -to: --它指定从开始(00:01:40)到结束(00:02:12)的持续时间。 00:02:00: -c copy:这是一个通过流复制剪裁的选项。(注:非常快)

时间格式是: hh:mm:ss

请注意,目前高度上升的答案是过时的,修剪将是极其缓慢的。有关更多信息,请查看官方的ffmpeg 文章

票数 1.1K
EN

Stack Overflow用户

发布于 2016-10-25 15:42:00

代码语言:javascript
复制
ffmpeg -i movie.mp4 -ss 00:00:03 -t 00:00:08 -async 1 -c copy cut.mp4 

使用-c复制立即进入。在这种情况下,ffmpeg将不会重新编码视频,只是将裁剪到相应的大小。

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

https://stackoverflow.com/questions/18444194

复制
相关文章

相似问题

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