FFmpeg:如何裁剪视频和示例

在本文中, FFmpeg 从命令行(带有示例)。如果您要批量修剪多个视频,此功能特别有用,但是某些视频(包括我)比完整的视频编辑器更喜欢此功能来进行一些视频修剪。有。本文还包括截屏,它们显示了被剪切的确切内容。
为了说明FFmpeg作物过滤器的应用,我使用了500×300的图片。

对于每个示例命令,该示例中均使用实际的FFmpeg裁剪命令裁剪图像,因此您可以准确地看到使用该图像时发生的情况。这是可能的,因为您也可以使用相同的命令进行修整。
FFmpeg必须能够使用这些命令 在系统上安装.. FFmpeg 是一个免费的开源项目,由各种库和程序组成,用于处理视频,音频和其他多媒体文件和流。 FFmpeg命令行程序是其核心,可用于转码,基本编辑,视频缩放和后期制作效果。

使用FFmpeg作物过滤器

让我们从基础开始。要使用FFmpeg修剪视频的一部分,命令为:

ffmpeg -i input.mp4 -filter:v "crop=w:h:x:y" output.mp4

这意味着什么:

  • -i input.mp4 输入视频(input.mp4 在这种情况下,输入/原始视频)
  • -filter:v (可以缩短为 -vf)指定您正在使用视频过滤器
  • "crop=W:H:X:Y" 表示您正在使用“裁剪”视频过滤器,并且具有四个值。
    • w 输出视频的宽度(裁剪区域的宽度)。默认值为输入视频宽度(输入视频宽度= iw与…相同 in_w); out_w 可以代替 w
    • h 输出视频的高度(裁剪区域的高度)。默认值为输入视频的高度(输入视频的高度= ihin_h 是相同的另一种表示法); out_h 可以代替 h
    • x 从那里开始修剪的水平位置。从左边开始(绝对左边距为 0
    • y 垂直位置(绝对上方 0
  • output.mp4 新修剪的视频文件

一些注意事项:

  • 滤镜会自动将农作物居中 xy 因为省略了 x 默认是 (iw-w)/2y(ih-h)/2
  • 也有选择 keep_aspect 可以设定的选项 1 使输出显示宽高比与输入相同(示例: "crop=100:100:0:0:keep_aspect=1")。这不适用于图像。因此,我在这里看不到带有屏幕截图的另一个示例。
  • FFmpeg是原始输入视频宽度(iw)和高度(ih)会自动获得值,因此您可以使用它们执行数学运算(例如: iw/2 输入视频宽度的一半,或者 ih-100 扣除 100 距离输入视频高度的像素)。

这听起来可能有点复杂,但是示例实际上并不那么复杂(当然,这取决于您要实现的目标)。
通过播放,您可以预览(播放)视频的修剪,而无需等待重新编码。 ffplay (用于快速检查裁剪区域是否正确),如下所示:

ffplay -filter:v "crop=w:h:x:y" input.mp4

这不会改变 input.mp4 视频以某种方式,它不会生成新视频。仅用于预览/播放。

FFmpeg视频裁剪示例

让我们看一个基本的FFmpeg裁剪的示例,该裁剪从中心开始裁剪100像素正方形。FFmpeg:如何裁剪视频和示例修剪正方形 100 中心的像素(因此裁剪区域的宽度和高度均为100像素) input.mp4 视频,您可以指定自己的输入区域大小 100x100 (默认情况下,FFmpeg作物过滤器位于居中位置,因此 xy 未指定任何值),例如:

ffmpeg -i input.mp4 -filter:v "crop=100:100" output.mp4

FFmpeg修剪示例:从视频左上方修剪100×100的部分。FFmpeg:如何裁剪视频和示例

修剪部分 100x100 左上角的像素(因此 xy0)对于视频:

ffmpeg -i input.mp4 -filter:v "crop=100:100:0:0" output.mp4

FFmpeg修剪示例:将视频的右上部分修剪为100×100像素。FFmpeg:如何裁剪视频和示例

使用输入视频宽度的示例(iw)修剪右上方 100x100 视频的像素部分。无需手动输入 x 使用价值 iw 然后减去100像素。

ffmpeg -i input.mp4 -filter:v "crop=100:100:iw-100:0" output.mp4

FFmpeg作物示例:作物矩形 100x200 位置像素 0,100..FFmpeg:如何裁剪视频和示例

使用FFmpeg裁剪视频滤镜裁剪矩形 100x200 位置像素 0,100

ffmpeg -i input.mp4 -filter:v "crop=200:100:300:100" output.mp4

相关:FFmpeg:从视频中以原始格式提取音频或转换为MP3或Ogg Vorbis

更高级的示例:

作物 16:9 观看影片 4:3 长宽比,修剪边缘(来源这不适用于图像,因此没有屏幕截图可以说明,但是很明显它仍然可以做什么):

ffmpeg -i input.mp4 -filter:v "crop=ih/3*4:ih"

从输入视频的右上方修剪50%的宽度和高度。FFmpeg:如何裁剪视频和示例

作物 50% 视频宽度和 50% 视频高度(即,输出视频将为输入视频的25%-1 / 4),从输入视频的右上方开始:

ffmpeg -i input.mp4 -filter:v "crop=iw*(5/10):ih*(5/10):iw:0" output.mp4

在这种情况下,输入宽度(iw)作为 x 坐标(从右开始修剪),以及 0 作为 y 调整(从顶部开始)。另外,如何使用youtube-dl下载YouTube播放列表并转换为MP3(命令行)

使用FFmpeg修剪视频左,/或右或上,下边框的像素

要使用FFmpeg修剪视频边框(上,下,左,右边框),请使用:

ffmpeg -i input.mp4 filter:v "crop=iw-n:ih-n" output.mp4

使用此命令,您已经知道了 iw 代表输入视频的宽度, ih 输入视频的高度,以像素为单位。怎么样 nm

  • n 切出的像素数 iw (输入视频宽度)
  • m 切出的像素数 ih (输入视频的高度)

例子FFmpeg:如何裁剪视频和示例

修剪 200 距输入视频高度的像素(ih),修剪的意思 100 上方有像素 100 底部像素,裁剪 100 输入视频宽度中的像素(iw),修剪的意思 50 左侧有像素 50 右像素:

ffmpeg -i input.mp4 filter:v "crop=iw-100:ih-200" output.mp4

如果您知道/可以指定输入视频的宽度和高度(500x300 在此示例中),以上命令也可以编写为:

ffmpeg -i input.mp4 filter:v "crop=500-100:300-200" output.mp4

这也一样:

ffmpeg -i input.mp4 filter:v "crop=400:100" output.mp4

仅修剪左右边框(100 左侧有像素 100 由于它是右侧的像素, 200 总像素)使用FFmpeg:FFmpeg:如何裁剪视频和示例

ffmpeg -i input.mp4 filter:v "crop=iw-200" output.mp4

或仅修剪顶部和底部边框(100 上方有像素 100 底部像素)使用FFmpeg:FFmpeg:如何裁剪视频和示例

ffmpeg -i input.mp4 filter:v "crop=iw:ih-200" output.mp4
Sidebar