FFmpeg cropdetect 和 crop 过滤器

FFmpeg cropdetect 和 crop 过滤器

我是 ffmpeg 的新手,听说它有一个黑色过滤器。我想删除视频顶部和底部的黑条,这样视频将被裁剪为没有黑条的剩余视频。谢谢 :)

答案1

FFmpeg cropdetect 和 crop 过滤器

1.获取作物参数

作物检测可用于提供参数庄稼过滤器。在此示例中,跳过前 90 秒并处理 10 帧:

$ ffmpeg -ss 90 -i input.mp4 -vframes 10 -vf cropdetect -f null -
...
[Parsed_cropdetect_0 @ 0x220cdc0] x1:0 x2:1279 y1:0 y2:719 w:1280 h:720 x:0 y:0 pts:215 t:0.215000 crop=1280:720:0:0
[Parsed_cropdetect_0 @ 0x220cdc0] x1:0 x2:1279 y1:0 y2:719 w:1280 h:720 x:0 y:0 pts:257 t:0.257000 crop=1280:720:0:0
[Parsed_cropdetect_0 @ 0x220cdc0] x1:0 x2:1279 y1:0 y2:719 w:1280 h:720 x:0 y:0 pts:299 t:0.299000 crop=1280:720:0:0

在每一行的末尾,你可以看到它写着crop=1280:720:0:0。因此根据 cropdetect 我们可以使用crop=1280:720:0:0

2. 预览ffplay

$ ffplay -vf crop=1280:720:0:0 input.mp4

3. 使用裁剪滤镜重新编码

$ ffmpeg -i input.mp4 -vf crop=1280:720:0:0 -c:a copy output.mp4

在这个例子中,音频只是流已复制(重新混合)因为您可能不需要重新编码它。

另请参阅


播放期间裁剪

正如您在上面的示例中看到的,ffplay有些播放器允许您在播放时进行裁剪。这样做的好处是:

  • 即时满足;无需重新编码
  • 品质得以保留

答案2

@LordNeckbeard 的回答很棒。大多数情况下我都会推荐它。

ffplay 运行良好并且预览效果很好,但是我使用的 ffmpeg 版本在处理我所使用的该视频的音频时遇到了困难。

st:1 error, non monotone timestamps 

我最终对提出的答案感到困惑,因为-c:a我所运行的版本不支持它,而且我使用的视频的比特率转换存在问题。

注:-c:a可以替换为:-acodec

我发现的最简单的替代免费解决方案是使用手刹。

它的自动裁剪功能可以轻松去除黑条。

希望有所帮助。

相关内容