2 @c man begin AUDIO FILTERS
4 When you configure your FFmpeg build, you can disable any of the
5 existing filters using --disable-filters.
6 The configure output will show the audio filters included in your
9 Below is a description of the currently available audio filters.
13 Pass the audio source unchanged to the output.
15 @c man end AUDIO FILTERS
17 @chapter Audio Sources
18 @c man begin AUDIO SOURCES
20 Below is a description of the currently available audio sources.
24 Null audio source, never return audio frames. It is mainly useful as a
25 template and to be employed in analysis / debugging tools.
27 It accepts as optional parameter a string of the form
28 @var{sample_rate}:@var{channel_layout}.
30 @var{sample_rate} specify the sample rate, and defaults to 44100.
32 @var{channel_layout} specify the channel layout, and can be either an
33 integer or a string representing a channel layout. The default value
34 of @var{channel_layout} is 3, which corresponds to CH_LAYOUT_STEREO.
36 Check the channel_layout_map definition in
37 @file{libavcodec/audioconvert.c} for the correspondance between string
38 and channel layout values.
42 # set the sample rate to 48000 Hz and the channel layout to CH_LAYOUT_MONO.
49 @c man end AUDIO SOURCES
51 @chapter Video Filters
52 @c man begin VIDEO FILTERS
54 When you configure your FFmpeg build, you can disable any of the
55 existing filters using --disable-filters.
56 The configure output will show the video filters included in your
59 Below is a description of the currently available video filters.
63 Crop the input video to @var{out_w}:@var{out_h}:@var{x}:@var{y}.
65 The parameters are expressions containing the following constants:
69 the corresponding mathematical approximated values for e
70 (euler number), pi (greek PI), PHI (golden ratio)
73 the computed values for @var{x} and @var{y}. They are evaluated for
77 the input width and heigth
80 same as @var{in_w} and @var{in_h}
83 the output (cropped) width and heigth
86 same as @var{out_w} and @var{out_h}
89 the number of input frame, starting from 0
92 the position in the file of the input frame, NAN if unknown
95 timestamp expressed in seconds, NAN if the input timestamp is unknown
99 The @var{out_w} and @var{out_h} parameters specify the expressions for
100 the width and height of the output (cropped) video. They are
101 evaluated just at the configuration of the filter.
103 The default value of @var{out_w} is "in_w", and the default value of
104 @var{out_h} is "in_h".
106 The expression for @var{out_w} may depend on the value of @var{out_h},
107 and the expression for @var{out_h} may depend on @var{out_w}, but they
108 cannot depend on @var{x} and @var{y}, as @var{x} and @var{y} are
109 evaluated after @var{out_w} and @var{out_h}.
111 The @var{x} and @var{y} parameters specify the expressions for the
112 position of the top-left corner of the output (non-cropped) area. They
113 are evaluated for each frame. If the evaluated value is not valid, it
114 is approximated to the nearest valid value.
116 The default value of @var{x} is "(in_w-out_w)/2", and the default
117 value for @var{y} is "(in_h-out_h)/2", which set the cropped area at
118 the center of the input image.
120 The expression for @var{x} may depend on @var{y}, and the expression
121 for @var{y} may depend on @var{x}.
123 Follow some examples:
125 # crop the central input area with size 100x100
128 # crop the central input area with size 2/3 of the input video
129 "crop=2/3*in_w:2/3*in_h"
131 # crop the input video central square
134 # delimit the rectangle with the top-left corner placed at position
135 # 100:100 and the right-bottom corner corresponding to the right-bottom
136 # corner of the input image.
137 crop=in_w-100:in_h-100:100:100
139 # crop 10 pixels from the lefth and right borders, and 20 pixels from
140 # the top and bottom borders
141 "crop=in_w-2*10:in_h-2*20"
143 # keep only the bottom right quarter of the input image
144 "crop=in_w/2:in_h/2:in_w/2:in_h/2"
146 # crop height for getting Greek harmony
147 "crop=in_w:1/PHI*in_w"
150 "crop=in_w/2:in_h/2:(in_w-out_w)/2+((in_w-out_w)/2)*sin(n/10):(in_h-out_h)/2 +((in_h-out_h)/2)*sin(n/7)"
152 # erratic camera effect depending on timestamp and position
153 "crop=in_w/2:in_h/2:(in_w-out_w)/2+((in_w-out_w)/2)*sin(t*10):(in_h-out_h)/2 +((in_h-out_h)/2)*sin(t*13)"
155 # set x depending on the value of y
156 "crop=in_w/2:in_h/2:y:10+10*sin(n/10)"
161 Buffer input images and send them when they are requested.
163 This filter is mainly useful when auto-inserted by the libavfilter
166 The filter does not take parameters.
170 Convert the input video to one of the specified pixel formats.
171 Libavfilter will try to pick one that is supported for the input to
174 The filter accepts a list of pixel format names, separated by ":",
175 for example "yuv420p:monow:rgb24".
177 The following command:
180 ./ffmpeg -i in.avi -vf "format=yuv420p" out.avi
183 will convert the input video to the format "yuv420p".
187 Apply a frei0r effect to the input video.
189 To enable compilation of this filter you need to install the frei0r
190 header and configure FFmpeg with --enable-frei0r.
192 The filter supports the syntax:
194 @var{filter_name}:@var{param1}:@var{param2}:...:@var{paramN}
197 @var{filter_name} is the name to the frei0r effect to load. If the
198 environment variable @env{FREI0R_PATH} is defined, the frei0r effect
199 is searched in each one of the directories specified by the colon
200 separated list in @env{FREIOR_PATH}, otherwise in the standard frei0r
201 paths, which are in this order: @file{HOME/.frei0r-1/lib/},
202 @file{/usr/local/lib/frei0r-1/}, @file{/usr/lib/frei0r-1/}.
204 @var{param1}, @var{param2}, ... , @var{paramN} specify the parameters
205 for the frei0r effect.
207 A frei0r effect parameter can be a boolean (whose values are specified
208 with "y" and "n"), a double, a color (specified by the syntax
209 @var{R}/@var{G}/@var{B}, @var{R}, @var{G}, and @var{B} being float
210 numbers from 0.0 to 1.0) or by an @code{av_parse_color()} color
211 description), a position (specified by the syntax @var{X}/@var{Y},
212 @var{X} and @var{Y} being float numbers) and a string.
214 The number and kind of parameters depend on the loaded effect. If an
215 effect parameter is not specified the default value is set.
217 Some examples follow:
219 # apply the distort0r effect, set the first two double parameters
220 frei0r=distort0r:0.5:0.01
222 # apply the colordistance effect, takes a color as first parameter
223 frei0r=colordistance:0.2/0.3/0.4
224 frei0r=colordistance:violet
225 frei0r=colordistance:0x112233
227 # apply the perspective effect, specify the top left and top right
229 frei0r=perspective:0.2/0.2:0.8/0.2
232 For more information see:
233 @url{http://piksel.org/frei0r}
237 Flip the input video horizontally.
239 For example to horizontally flip the video in input with
242 ffmpeg -i in.avi -vf "hflip" out.avi
247 Force libavfilter not to use any of the specified pixel formats for the
248 input to the next filter.
250 The filter accepts a list of pixel format names, separated by ":",
251 for example "yuv420p:monow:rgb24".
253 The following command:
256 ./ffmpeg -i in.avi -vf "noformat=yuv420p, vflip" out.avi
259 will make libavfilter use a format different from "yuv420p" for the
260 input to the vflip filter.
264 Pass the video source unchanged to the output.
268 Apply smooth transform using libopencv.
270 To enable this filter install libopencv library and headers and
271 configure FFmpeg with --enable-libopencv.
273 The filter accepts the following parameters:
274 @var{type}:@var{param1}:@var{param2}:@var{param3}:@var{param4}.
276 @var{type} is the type of smooth filter to apply, and can be one of
277 the following values: "blur", "blur_no_scale", "median", "gaussian",
278 "bilateral". The default value is "gaussian".
280 @var{param1}, @var{param2}, @var{param3}, and @var{param4} are
281 parameters whose meanings depend on smooth type. @var{param1} and
282 @var{param2} accept integer positive values or 0, @var{param3} and
283 @var{param4} accept float values.
285 The default value for @var{param1} is 3, the default value for the
286 other parameters is 0.
288 These parameters correspond to the parameters assigned to the
289 libopencv function @code{cvSmooth}. Refer to the official libopencv
290 documentation for the exact meaning of the parameters:
291 @url{http://opencv.willowgarage.com/documentation/c/image_filtering.html}
295 Add paddings to the input image, and places the original input at the
296 given coordinates @var{x}, @var{y}.
298 It accepts the following parameters:
299 @var{width}:@var{height}:@var{x}:@var{y}:@var{color}.
301 Follows the description of the accepted parameters.
306 Specify the size of the output image with the paddings added. If the
307 value for @var{width} or @var{height} is 0, the corresponding input size
308 is used for the output.
310 The default value of @var{width} and @var{height} is 0.
314 Specify the offsets where to place the input image in the padded area
315 with respect to the top/left border of the output image.
317 The default value of @var{x} and @var{y} is 0.
321 Specify the color of the padded area, it can be the name of a color
322 (case insensitive match) or a 0xRRGGBB[AA] sequence.
324 The default value of @var{color} is "black".
330 Pixel format descriptor test filter, mainly useful for internal
331 testing. The output video should be equal to the input video.
335 format=monow, pixdesctest
338 can be used to test the monowhite pixel format descriptor definition.
342 Scale the input video to @var{width}:@var{height} and/or convert the image format.
344 For example the command:
347 ./ffmpeg -i in.avi -vf "scale=200:100" out.avi
350 will scale the input video to a size of 200x100.
352 If the input image format is different from the format requested by
353 the next filter, the scale filter will convert the input to the
356 If the value for @var{width} or @var{height} is 0, the respective input
357 size is used for the output.
359 If the value for @var{width} or @var{height} is -1, the scale filter will
360 use, for the respective output size, a value that maintains the aspect
361 ratio of the input image.
363 The default value of @var{width} and @var{height} is 0.
367 Pass the images of input video on to next video filter as multiple
371 ./ffmpeg -i in.avi -vf "slicify=32" out.avi
374 The filter accepts the slice height as parameter. If the parameter is
375 not specified it will use the default value of 16.
377 Adding this in the beginning of filter chains should make filtering
378 faster due to better use of the memory cache.
382 Sharpen or blur the input video.
384 It accepts the following parameters:
385 @var{luma_msize_x}:@var{luma_msize_y}:@var{luma_amount}:@var{chroma_msize_x}:@var{chroma_msize_y}:@var{chroma_amount}
387 Negative values for the amount will blur the input video, while positive
388 values will sharpen. All parameters are optional and default to the
389 equivalent of the string '5:5:1.0:0:0:0.0'.
394 Set the luma matrix horizontal size. It can be an integer between 3
395 and 13, default value is 5.
398 Set the luma matrix vertical size. It can be an integer between 3
399 and 13, default value is 5.
402 Set the luma effect strength. It can be a float number between -2.0
403 and 5.0, default value is 1.0.
406 Set the chroma matrix horizontal size. It can be an integer between 3
407 and 13, default value is 0.
410 Set the chroma matrix vertical size. It can be an integer between 3
411 and 13, default value is 0.
414 Set the chroma effect strength. It can be a float number between -2.0
415 and 5.0, default value is 0.0.
420 # Strong luma sharpen effect parameters
423 # Strong blur of both luma and chroma parameters
424 unsharp=7:7:-2:7:7:-2
426 # Use the default values with @command{ffmpeg}
427 ./ffmpeg -i in.avi -vf "unsharp" out.mp4
432 Flip the input video vertically.
435 ./ffmpeg -i in.avi -vf "vflip" out.avi
438 @c man end VIDEO FILTERS
440 @chapter Video Sources
441 @c man begin VIDEO SOURCES
443 Below is a description of the currently available video sources.
447 Buffer video frames, and make them available to the filter chain.
449 This source is mainly intended for a programmatic use, in particular
450 through the interface defined in @file{libavfilter/vsrc_buffer.h}.
452 It accepts the following parameters:
453 @var{width}:@var{height}:@var{pix_fmt_string}
455 All the parameters need to be explicitely defined.
457 Follows the list of the accepted parameters.
462 Specify the width and height of the buffered video frames.
466 A string representing the pixel format of the buffered video frames.
467 It may be a number corresponding to a pixel format, or a pixel format
474 buffer=320:240:yuv410p
477 will instruct the source to accept video frames with size 320x240 and
478 with format "yuv410p". Since the pixel format with name "yuv410p"
479 corresponds to the number 6 (check the enum PixelFormat definition in
480 @file{libavutil/pixfmt.h}), this example corresponds to:
487 Provide an uniformly colored input.
489 It accepts the following parameters:
490 @var{color}:@var{frame_size}:@var{frame_rate}
492 Follows the description of the accepted parameters.
497 Specify the color of the source. It can be the name of a color (case
498 insensitive match) or a 0xRRGGBB[AA] sequence, possibly followed by an
499 alpha specifier. The default value is "black".
502 Specify the size of the sourced video, it may be a string of the form
503 @var{width}x@var{heigth}, or the name of a size abbreviation. The
504 default value is "320x240".
507 Specify the frame rate of the sourced video, as the number of frames
508 generated per second. It has to be a string in the format
509 @var{frame_rate_num}/@var{frame_rate_den}, an integer number, a float
510 number or a valid video frame rate abbreviation. The default value is
515 For example the following graph description will generate a red source
516 with an opacity of 0.2, with size "qcif" and a frame rate of 10
517 frames per second, which will be overlayed over the source connected
518 to the pad with identifier "in".
521 "color=red@@0.2:qcif:10 [color]; [in][color] overlay [out]"
526 Null video source, never return images. It is mainly useful as a
527 template and to be employed in analysis / debugging tools.
529 It accepts as optional parameter a string of the form
530 @var{width}:@var{height}, where @var{width} and @var{height} specify the size of
531 the configured source.
533 The default values of @var{width} and @var{height} are respectively 352
534 and 288 (corresponding to the CIF size format).
536 @c man end VIDEO SOURCES
539 @c man begin VIDEO SINKS
541 Below is a description of the currently available video sinks.
545 Null video sink, do absolutely nothing with the input video. It is
546 mainly useful as a template and to be employed in analysis / debugging
549 @c man end VIDEO SINKS