ffmpeg 视频分割不到 10 秒给出黑色剪辑 - Ubuntu 18.04 LTS



我在 AWS EC2 服务器上使用 FFmpeg 版本 4.3-2~18.04.york0 进行视频分割,而分割视频不到 11 秒输出.mp4给出空白视频。我已经在我的本地MAC和Ubuntu 19上尝试了同样的事情,但它工作正常。

ffmpeg -i input.mp4 -ss 00:01:10 -to 00:01:15 -c:v copy -c:a copy output.mp4

您可以尝试在命令中使用持续时间标志而不是结束位置标志:

ffmpeg -i input.mp4 -ss 00:01:10 -t 10 -c:v copy -c:a copy output.mp4

-t 10-ss指定的起始位置剪切 10 秒。

如果这仍然不起作用,如果您能澄清一下您的问题,那将很有帮助:

  • 您是否在 Mac 和 Ubuntu 系统上使用相同版本的 ffmpeg,并且可以正常工作?
  • 您是否在所有系统上使用相同的配置(ffmpeg --help可见(?
  • 另外,让我感到困惑的是你的问题:你写道,你对少于 11 秒的视频有问题,但你在命令中尝试做的是剪掉一个视频的 5 秒,似乎至少有 1 分 10 秒长(基于00:01:10的起始位置(。

发生这种情况通常是因为您要提取的视频片段不包含任何 I 帧(关键帧(。一个视频通常每 10 秒有一个关键帧,因此您的视频片段可能没有任何关键帧,因为它的持续时间只有 5 秒。

使用视频编解码器复制(-c:v copy(有一些注意事项。在您的情况下,不可能进行编解码器复制,因为您的视频片段没有任何关键帧,因此是空白视频。

要修剪没有关键帧的视频片段,您需要对其进行重新编码,即使用除copy以外的其他视频编解码器选项,例如-c:v x264。为了保持质量,您可以将crf设置为17或18:

ffmpeg -i input.mp4 -ss 00:01:10 -to 00:01:15 -c:v x264 -crf 17 -c:a copy output.mp4

重新编码总是比编解码器复制慢得多,但由于持续时间仅为 5 秒,因此重新编码应该不到一分钟(取决于 CPU(。

我不确定为什么您的原始命令在本地计算机上工作。这可能是由于不同版本的 ffmpeg 或不同的视频源(例如input.mp4在您的本地恰好有一个时间戳范围内的关键帧(。

最新更新