FFMPEG - 如何删除视频中的填充

FFMPEG - 如何删除视频中的填充

我有一个视频,其原始尺寸为 1920 x 1080。但我用黑色填充了。我想将视频的宽高比设置为 16:9。

我怎样才能做到这一点?

答案1

您需要使用crop过滤器。我给您举几个例子:

如果图像有对称的黑条,那么您只需要指定图像的输出宽度和高度,即过滤器的前两个参数crop,因为它将相对于图像的中心执行它。

如果输入有,1920 x 1080但实际内容有2.35:1宽高比,那么您需要裁剪为1920 x 816,因此黑条的总高度为264像素,132每边都是。可以通过多种方式指定此裁剪:

  • crop = 1920:816会起作用,因为正如我提到的那样,它将执行对称裁剪

  • crop= in_w: in_h-264或者crop= in_w: in_h - 2*132将执行相同的操作,只是它将使用占位符(如in_w和)in_h作为输入框的宽度和高度。

0:0对于不对称裁剪,您还需要指定裁剪滤镜的后两个参数,这两个参数确定执行裁剪的框架左上角 ( ) 的相对位置。

  • 对于上述情况,可以这样做:crop = 1920:816:0:132,以及0:132您希望裁剪的帧中像素的坐标向下和向右

使用裁剪滤镜需要您重新编码视频,因此请确保使用足够好的质量参数。

您可以ffplay在实际执行之前通过指定过滤器来测试您的裁剪(它也支持它ffmpeg):

ffplay -vf "crop = 1920:816:0:132" input.mkv

或者通过将编码输出(这里使用 libx264 完成)传输到 ffplay:

ffmpeg -i input.mkv -vcodec libx264 -profile:v high -crf 21 -tune film -level 4.1 -acodec copy -vf "crop = 1920:816:0:132" -f mpegts - | ffplay -i -

如需更多说明,请咨询裁剪过滤器的文档因为解释非常好。

相关内容