对于每种情况,类似这样的东西都应该使用适当的参数:
注意:原始答案发布在此链接中:如何使用ffmpeg裁剪视频?最初由我发布,并进行了多次编辑,以便将其更新为ffmpeg最新版本中的最新选项。非常感谢slhck,乔纳森。,Anton Rudeshko,LordNeckbeard和未来的维护者。
在最新版本的FFmpeg中,使用crop
过滤器:
ffmpeg -i in.mp4 -filter:v "crop=out_w:out_h:x:y" out.mp4
其中的选项如下:
out_w
是输出矩形的宽度
out_h
是输出矩形的高度
x
并y
指定输出矩形的左上角
原始图片
原始320x240图像
例子1
要从位置(200,100)开始裁剪80×60的部分:
ffmpeg -i in.mp4 -filter:v "crop=80:60:200:100" -c:a copy out.mp4
例子2
裁剪右下角的四分之一:
ffmpeg -i in.mp4 -filter:v "crop=in_w/2:in_h/2:in_w/2:in_h/2" -c:a copy out.mp4
这与以下内容相同:
ffmpeg -i in.mp4 -filter:v "crop=320/2:240/2:320/2:240/2" -c:a copy out.mp4
与以下内容相同:
ffmpeg -i in.mp4 -filter:v "crop=240:120:240:120" -c:a copy out.mp4
- 您可以使用
in_w
和来参考输入图像的大小,in_h
如第一个示例所示。输出的宽度和高度也可以与out_w
和一起使用out_h
。
例子3
从顶部裁剪20个像素,从底部裁剪20个像素:
ffmpeg -i in.mp4 -filter:v "crop=in_w:in_h-40" -c:a copy out.mp4
- 如果
x
和y
省略,过滤器将自动使作物居中,例如在本示例中。
预览版
您可以收割(呵呵)并通过以下方式实时预览ffplay
:
ffplay -i input -vf "crop=in_w:in_h-40"
这样,您就可以进行实验和调整裁剪,而无需进行编码,查看和重复。
笔记
crop
筛选器文档
MP4的默认编码器是libx264
(H.264视频)或mpeg4
(MPEG-4 Part 2视频),具体取决于您的ffmpeg
构建。有关更多信息,请参见FFmpeg Wiki:H.264视频编码指南。
与其裁剪和重新编码,不如考虑在回放时裁剪。任何值得使用的玩家都可以做到这一点。
古代ffmpeg
建造使用-croptop
,-cropbottom
,-cropleft
,-cropright
选项,而不是crop
过滤器。如果是这种情况,那么您可以选择现代的ffmpeg
。开发非常活跃,没有理由使用古董。
ffplay
,这使得使用ffmpeg
裁剪实践中视频的屏幕尺寸是可行的。