使用 ffmpeg 删除 .mp4 视频顶部和底部的黑条

34 mp4 ffmpeg

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

llo*_*gan 60

FFmpeg 作物检测和作物过滤器

1.获取裁剪参数

cropdetect可用于为裁剪过滤器提供参数。在此示例中,跳过前 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
Run Code Online (Sandbox Code Playgroud)

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

2. 预览 ffplay

$ ffplay -vf crop=1280:720:0:0 input.mp4
Run Code Online (Sandbox Code Playgroud)

3.使用裁剪过滤器重新编码

$ ffmpeg -i input.mp4 -vf crop=1280:720:0:0 -c:a copy output.mp4
Run Code Online (Sandbox Code Playgroud)

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

另见


播放期间裁剪

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

  • 及时行乐; 无需重新编码
  • 品质得以保留

  • @rexhin 当您运行 CropDetect 时,它会在控制台输出中转储一堆信息,如上所示。它实际上为您提供了您需要使用的实际作物参数。您可以通过脚本自动化它。 (2认同)