首页 > 解决方案 > ffmpeg 视频分割少于 10 秒会产生黑色剪辑 - ubuntu 18.04 LTS

问题描述

我在 AWS EC2 服务器上使用 FFmpeg 版本 4.3-2~18.04.york0 进行视频分割,而我在不到 11 秒的时间内分割视频, output.mp4 给出了一个空白视频。我在本地 MAC 和 Ubuntu 19 上尝试过同样的事情,但效果很好。

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

标签: ruby-on-railsvideoamazon-ec2ffmpegubuntu-18.04

解决方案


这通常是因为您要提取的视频片段不包含任何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,在您的本地恰好有一个关键帧在时间戳范围内)。


推荐阅读