ffmpeg中的变量“a”是什么?

时间:2015-09-01 20:38:09

标签: ffmpeg

在使用ffmpeg的scale过滤器时,我看到许多与此类似的示例:

ffmpeg -i input.mov -vf scale="'if(gt(a,4/3),320,-2)':'if(gt(a,4/3),-2,240)'" output.mov

变量a表示什么?

3 个答案:

答案 0 :(得分:2)

From the ffmpeg scale options docs.

a The same as iw / ih

where

iw Input Width ih Input Height

答案 1 :(得分:1)

我在阅读https://trac.ffmpeg.org/wiki/Scaling%20(resizing)%20with%20ffmpeg后的猜测是a是输入文件的宽高比。

网页上给出的示例让您了解如何使用它:

  

有时需要以适合的方式缩放输入图像   到一个指定的矩形,即如果你有一个占位符(空   矩形),您想在其中缩放任何给定的图像。这是一个   有点棘手,因为你需要检查原始的宽高比,   为了决定指定哪个组件并设置另一个组件   组件为-1(保持纵横比)。例如,如果我们愿意的话   喜欢将输入图像缩放为尺寸为的矩形   320x240,我们可以使用这样的东西:

ffmpeg -i input.jpg -vf scale="'if(gt(a,4/3),320,-1)':'if(gt(a,4/3),-1,240)'"
output_320x240_boxed.png

答案 2 :(得分:1)

在ffmpeg wiki" Scaling (resizing) with ffmpeg"中,他们使用此示例:

gt(a,4/3)

据我所知,gt(a,4/3)的目的是确定视频(或图像,在本例中)的方向(纵向或横向)。

对于某些奇怪的宽高比(7:6,例如,ffmpeg -i input.jpg -vf scale="'if(gt(iw,ih),320,-1)':'if(gt(iw,ih),-1,240)'" output.png 会错误地变为虚假的情况,这不会起作用。

在我看来,最好使用视频的高度和宽度,因此上面的代码将是:

mvn package