我有一个视频,其原始尺寸为 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 -
如需更多说明,请咨询裁剪过滤器的文档因为解释非常好。