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


23

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

ffmpeg  mp4 

视窗?安装WinFF。它将允许您输入要通过GUI裁剪的值...
Kinnectus 2014年

Answers:


40

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

因此,根据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示例中所见,有些播放器允许您在播放时进行裁剪。这具有以下优点:

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

抱歉,我是ffmpeg的新手,我不了解该部分去除顶部和底部的黑条并将视频大小调整为没有黑条的剩余大小。

1
是否有自动消除黑条的方法,或者我必须始终手动使用裁剪值?

1
@rexhin当您运行cropdetect时,它将在控制台输出中转储一堆信息,如上所示。它从字面上为您提供了需要使用的实际作物参数。您可以通过脚本使其自动化。
llogan 2014年

哇真棒。但是我们把滤光片放在哪里呢?还有crop = 1280:720:0:24中的其他两个参数是什么

它删除了顶部的黑条,但在底部保留了一个小黑条。为什么会这样呢?

1

@LordNeckbeard的答案很好。我会在大多数情况下推荐它。

ffplay效果很好,预览效果很好,但是我使用的ffmpeg版本与我使用的该视频的音频很不兼容。

st:1 error, non monotone timestamps 

我最终-c:a无法解决建议的答案,既不支持我所运行的版本,又遇到了我正在使用的视频的比特率转换问题。

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

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

它的自动裁剪功能消除了黑条,没有太多麻烦。

希望能有所帮助。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.