ffmpeg中的scale和crop参数

  • Post author:
  • Post category:其他


转自:

https://www.jianshu.com/p/3fa0b04027ce

ffmpeg中的filter

FFmpeg中的libavfilter提供了一整套的基于filter的机制。filter本身是一个插件的形式,可以快速的组装需要的效果。

比如下面的filter,可以实现视频的水平镜像效果。

ffplay.exe sample.rmvb -vf hflip

FFmpeg中filter分为:

source filter (只有输出)

audio filter

video filter

Multimedia filter

sink filter (只有输入)

除了source和sink filter,其他filter都至少有一个输入、至少一个输出。

介绍了这么多,下面也是一个例子,使用filter实现宽高减半显示:

ffplay.exe sample.rmvb -vf scale=iw/2:ih/2

可以用

ffmpeg -filters

查看支持的filter.

[TheFlyingPenguindeMacBook-Pro:gzl Private$ ffmpeg -filters
ffmpeg version 3.1 Copyright (c) 2000-2016 the FFmpeg developers
  built with Apple LLVM version 7.0.2 (clang-700.1.81)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/3.1 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-opencl --enable-libx264 --enable-libmp3lame --enable-libxvid --enable-librtmp --enable-libfaac --enable-ffplay --disable-lzma --enable-nonfree --enable-vda
  libavutil      55. 27.100 / 55. 27.100
  libavcodec     57. 48.101 / 57. 48.101
  libavformat    57. 40.101 / 57. 40.101
  libavdevice    57.  0.101 / 57.  0.101
  libavfilter     6. 46.102 /  6. 46.102
  libavresample   3.  0.  0 /  3.  0.  0
  libswscale      4.  1.100 /  4.  1.100
  libswresample   2.  1.100 /  2.  1.100
  libpostproc    54.  0.100 / 54.  0.100
Filters:
  T.. = Timeline support
  .S. = Slice threading
  ..C = Command support
  A = Audio input/output
  V = Video input/output
  N = Dynamic number and/or type of input/output
  | = Source or sink filter
 ... abench            A->A       Benchmark part of a filtergraph.
 ...
 ... aresample         A->A       Resample audio data.
 ...
 ... copy              V->V       Copy the input video unchanged to the output.
 ...
 T.. delogo            V->V       Remove logo from input video.
 ...
 ... format            V->V       Convert the input video to one of the specified pixel formats.
 ... fps               V->V       Force constant framerate.
 ...
 ... reverse           V->V       Reverse a clip.
 TSC rotate            V->V       Rotate the input image.
 T.. sab               V->V       Apply shape adaptive blur.
 ..C scale             V->V       Scale the input video size and/or convert the image format.
 ...
 ... split             V->N       Pass on the input to N video outputs.
 ...

scale

将输入的1920×1080缩小到960×540输出:

./ffmpeg -i input.mp4 -vf scale=960:540 output.mp4 

//ps: 如果540不写,写成-1,即scale=960:-1, 那也是可以的,ffmpeg会通知缩放滤镜在输出时保持原始的宽高比。

crop

Crop the input video to given dimensions.

It accepts the following parameters:

  • w, out_w


    The width of the output video. It defaults to iw.


    This expression is evaluated only once during the filter configuration, or when the ‘w’ or ‘out_w’ command is sent.
  • h, out_h


    The height of the output video. It defaults to ih.


    This expression is evaluated only once during the filter configuration, or when the ‘h’ or ‘out_h’ command is sent.
  • x


    The horizontal position, in the input video, of the left edge of the output video.


    It defaults to (in_w-out_w)/2.

    This expression is evaluated per-frame.
  • y


    The vertical position, in the input video, of the top edge of the output video.


    It defaults to (in_h-out_h)/2.

    This expression is evaluated per-frame.
  • Crop area with size 100×100 at position (12,34).
crop=100:100:12:34
  • Using named options, the example above becomes:
crop=w=100:h=100:x=12:y=34

References:


https://www.cnblogs.com/tocy/p/ffmpeg-filter-intro.html



http://www.ffmpeg.org/ffmpeg-filters.html#crop



https://blog.csdn.net/newchenxf/article/details/51364105

作者:FlyingPenguin

链接:https://www.jianshu.com/p/3fa0b04027ce

来源:简书

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。