Port libmpcodecs hqdn3d filter.
[libav.git] / doc / filters.texi
1 @chapter Audio Filters
2 @c man begin AUDIO FILTERS
3
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
7 build.
8
9 Below is a description of the currently available audio filters.
10
11 @section anull
12
13 Pass the audio source unchanged to the output.
14
15 @c man end AUDIO FILTERS
16
17 @chapter Audio Sources
18 @c man begin AUDIO SOURCES
19
20 Below is a description of the currently available audio sources.
21
22 @section anullsrc
23
24 Null audio source, never return audio frames. It is mainly useful as a
25 template and to be employed in analysis / debugging tools.
26
27 It accepts as optional parameter a string of the form
28 @var{sample_rate}:@var{channel_layout}.
29
30 @var{sample_rate} specify the sample rate, and defaults to 44100.
31
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.
35
36 Check the channel_layout_map definition in
37 @file{libavcodec/audioconvert.c} for the mapping between strings and
38 channel layout values.
39
40 Follow some examples:
41 @example
42 # set the sample rate to 48000 Hz and the channel layout to CH_LAYOUT_MONO.
43 anullsrc=48000:4
44
45 # same as
46 anullsrc=48000:mono
47 @end example
48
49 @c man end AUDIO SOURCES
50
51 @chapter Audio Sinks
52 @c man begin AUDIO SINKS
53
54 Below is a description of the currently available audio sinks.
55
56 @section anullsink
57
58 Null audio sink, do absolutely nothing with the input audio. It is
59 mainly useful as a template and to be employed in analysis / debugging
60 tools.
61
62 @c man end AUDIO SINKS
63
64 @chapter Video Filters
65 @c man begin VIDEO FILTERS
66
67 When you configure your FFmpeg build, you can disable any of the
68 existing filters using --disable-filters.
69 The configure output will show the video filters included in your
70 build.
71
72 Below is a description of the currently available video filters.
73
74 @section blackframe
75
76 Detect frames that are (almost) completely black. Can be useful to
77 detect chapter transitions or commercials. Output lines consist of
78 the frame number of the detected frame, the percentage of blackness,
79 the position in the file if known or -1 and the timestamp in seconds.
80
81 In order to display the output lines, you need to set the loglevel at
82 least to the AV_LOG_INFO value.
83
84 The filter accepts the syntax:
85 @example
86 blackframe[=@var{amount}:[@var{threshold}]]
87 @end example
88
89 @var{amount} is the percentage of the pixels that have to be below the
90 threshold, and defaults to 98.
91
92 @var{threshold} is the threshold below which a pixel value is
93 considered black, and defaults to 32.
94
95 @section crop
96
97 Crop the input video to @var{out_w}:@var{out_h}:@var{x}:@var{y}.
98
99 The parameters are expressions containing the following constants:
100
101 @table @option
102 @item E, PI, PHI
103 the corresponding mathematical approximated values for e
104 (euler number), pi (greek PI), PHI (golden ratio)
105
106 @item x, y
107 the computed values for @var{x} and @var{y}. They are evaluated for
108 each new frame.
109
110 @item in_w, in_h
111 the input width and heigth
112
113 @item iw, ih
114 same as @var{in_w} and @var{in_h}
115
116 @item out_w, out_h
117 the output (cropped) width and heigth
118
119 @item ow, oh
120 same as @var{out_w} and @var{out_h}
121
122 @item n
123 the number of input frame, starting from 0
124
125 @item pos
126 the position in the file of the input frame, NAN if unknown
127
128 @item t
129 timestamp expressed in seconds, NAN if the input timestamp is unknown
130
131 @end table
132
133 The @var{out_w} and @var{out_h} parameters specify the expressions for
134 the width and height of the output (cropped) video. They are
135 evaluated just at the configuration of the filter.
136
137 The default value of @var{out_w} is "in_w", and the default value of
138 @var{out_h} is "in_h".
139
140 The expression for @var{out_w} may depend on the value of @var{out_h},
141 and the expression for @var{out_h} may depend on @var{out_w}, but they
142 cannot depend on @var{x} and @var{y}, as @var{x} and @var{y} are
143 evaluated after @var{out_w} and @var{out_h}.
144
145 The @var{x} and @var{y} parameters specify the expressions for the
146 position of the top-left corner of the output (non-cropped) area. They
147 are evaluated for each frame. If the evaluated value is not valid, it
148 is approximated to the nearest valid value.
149
150 The default value of @var{x} is "(in_w-out_w)/2", and the default
151 value for @var{y} is "(in_h-out_h)/2", which set the cropped area at
152 the center of the input image.
153
154 The expression for @var{x} may depend on @var{y}, and the expression
155 for @var{y} may depend on @var{x}.
156
157 Follow some examples:
158 @example
159 # crop the central input area with size 100x100
160 crop=100:100
161
162 # crop the central input area with size 2/3 of the input video
163 "crop=2/3*in_w:2/3*in_h"
164
165 # crop the input video central square
166 crop=in_h
167
168 # delimit the rectangle with the top-left corner placed at position
169 # 100:100 and the right-bottom corner corresponding to the right-bottom
170 # corner of the input image.
171 crop=in_w-100:in_h-100:100:100
172
173 # crop 10 pixels from the lefth and right borders, and 20 pixels from
174 # the top and bottom borders
175 "crop=in_w-2*10:in_h-2*20"
176
177 # keep only the bottom right quarter of the input image
178 "crop=in_w/2:in_h/2:in_w/2:in_h/2"
179
180 # crop height for getting Greek harmony
181 "crop=in_w:1/PHI*in_w"
182
183 # trembling effect
184 "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)"
185
186 # erratic camera effect depending on timestamp and position
187 "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)"
188
189 # set x depending on the value of y
190 "crop=in_w/2:in_h/2:y:10+10*sin(n/10)"
191 @end example
192
193 @section cropdetect
194
195 Auto-detect crop size.
196
197 Calculate necessary cropping parameters and prints the recommended
198 parameters through the logging system. The detected dimensions
199 correspond to the non-black area of the input video.
200
201 It accepts the syntax:
202 @example
203 cropdetect[=@var{limit}[:@var{round}[:@var{reset}]]]
204 @end example
205
206 @table @option
207
208 @item limit
209 Threshold, which can be optionally specified from nothing (0) to
210 everything (255), defaults to 24.
211
212 @item round
213 Value which the width/height should be divisible by, defaults to
214 16. The offset is automatically adjusted to center the video. Use 2 to
215 get only even dimensions (needed for 4:2:2 video). 16 is best when
216 encoding to most video codecs.
217
218 @item reset
219 Counter that determines after how many frames cropdetect will reset
220 the previously detected largest video area and start over to detect
221 the current optimal crop area. Defaults to 0.
222
223 This can be useful when channel logos distort the video area. 0
224 indicates never reset and return the largest area encountered during
225 playback.
226 @end table
227
228 @section drawbox
229
230 Draw a colored box on the input image.
231
232 It accepts the syntax:
233 @example
234 drawbox=@var{x}:@var{y}:@var{width}:@var{height}:@var{color}
235 @end example
236
237 @table @option
238
239 @item x, y
240 Specify the top left corner coordinates of the box. Default to 0.
241
242 @item width, height
243 Specify the width and height of the box, if 0 they are interpreted as
244 the input width and height. Default to 0.
245
246 @item color
247 Specify the color of the box to write, it can be the name of a color
248 (case insensitive match) or a 0xRRGGBB[AA] sequence.
249 @end table
250
251 Follow some examples:
252 @example
253 # draw a black box around the edge of the input image
254 drawbox
255
256 # draw a box with color red and an opacity of 50%
257 drawbox=10:20:200:60:red@@0.5"
258 @end example
259
260 @section fifo
261
262 Buffer input images and send them when they are requested.
263
264 This filter is mainly useful when auto-inserted by the libavfilter
265 framework.
266
267 The filter does not take parameters.
268
269 @section format
270
271 Convert the input video to one of the specified pixel formats.
272 Libavfilter will try to pick one that is supported for the input to
273 the next filter.
274
275 The filter accepts a list of pixel format names, separated by ":",
276 for example "yuv420p:monow:rgb24".
277
278 The following command:
279
280 @example
281 ./ffmpeg -i in.avi -vf "format=yuv420p" out.avi
282 @end example
283
284 will convert the input video to the format "yuv420p".
285
286 @anchor{frei0r}
287 @section frei0r
288
289 Apply a frei0r effect to the input video.
290
291 To enable compilation of this filter you need to install the frei0r
292 header and configure FFmpeg with --enable-frei0r.
293
294 The filter supports the syntax:
295 @example
296 @var{filter_name}[@{:|=@}@var{param1}:@var{param2}:...:@var{paramN}]
297 @end example
298
299 @var{filter_name} is the name to the frei0r effect to load. If the
300 environment variable @env{FREI0R_PATH} is defined, the frei0r effect
301 is searched in each one of the directories specified by the colon
302 separated list in @env{FREIOR_PATH}, otherwise in the standard frei0r
303 paths, which are in this order: @file{HOME/.frei0r-1/lib/},
304 @file{/usr/local/lib/frei0r-1/}, @file{/usr/lib/frei0r-1/}.
305
306 @var{param1}, @var{param2}, ... , @var{paramN} specify the parameters
307 for the frei0r effect.
308
309 A frei0r effect parameter can be a boolean (whose values are specified
310 with "y" and "n"), a double, a color (specified by the syntax
311 @var{R}/@var{G}/@var{B}, @var{R}, @var{G}, and @var{B} being float
312 numbers from 0.0 to 1.0) or by an @code{av_parse_color()} color
313 description), a position (specified by the syntax @var{X}/@var{Y},
314 @var{X} and @var{Y} being float numbers) and a string.
315
316 The number and kind of parameters depend on the loaded effect. If an
317 effect parameter is not specified the default value is set.
318
319 Some examples follow:
320 @example
321 # apply the distort0r effect, set the first two double parameters
322 frei0r=distort0r:0.5:0.01
323
324 # apply the colordistance effect, takes a color as first parameter
325 frei0r=colordistance:0.2/0.3/0.4
326 frei0r=colordistance:violet
327 frei0r=colordistance:0x112233
328
329 # apply the perspective effect, specify the top left and top right
330 # image positions
331 frei0r=perspective:0.2/0.2:0.8/0.2
332 @end example
333
334 For more information see:
335 @url{http://piksel.org/frei0r}
336
337 @section hflip
338
339 Flip the input video horizontally.
340
341 For example to horizontally flip the video in input with
342 @file{ffmpeg}:
343 @example
344 ffmpeg -i in.avi -vf "hflip" out.avi
345 @end example
346
347 @section hqdn3d
348
349 High precision/quality 3d denoise filter. This filter aims to reduce
350 image noise producing smooth images and making still images really
351 still. It should enhance compressibility.
352
353 It accepts the following optional parameters:
354 @var{luma_spatial}:@var{chroma_spatial}:@var{luma_tmp}:@var{chroma_tmp}
355
356 @table @option
357 @item luma_spatial
358 a non-negative float number which specifies spatial luma strength,
359 defaults to 4.0
360
361 @item chroma_spatial
362 a non-negative float number which specifies spatial chroma strength,
363 defaults to 3.0*@var{luma_spatial}/4.0
364
365 @item luma_tmp
366 a float number which specifies luma temporal strength, defaults to
367 6.0*@var{luma_spatial}/4.0
368
369 @item chroma_tmp
370 a float number which specifies chroma temporal strength, defaults to
371 @var{luma_tmp}*@var{chroma_spatial}/@var{luma_spatial}
372 @end table
373
374 @section noformat
375
376 Force libavfilter not to use any of the specified pixel formats for the
377 input to the next filter.
378
379 The filter accepts a list of pixel format names, separated by ":",
380 for example "yuv420p:monow:rgb24".
381
382 The following command:
383
384 @example
385 ./ffmpeg -i in.avi -vf "noformat=yuv420p, vflip" out.avi
386 @end example
387
388 will make libavfilter use a format different from "yuv420p" for the
389 input to the vflip filter.
390
391 @section null
392
393 Pass the video source unchanged to the output.
394
395 @section ocv_smooth
396
397 Apply smooth transform using libopencv.
398
399 To enable this filter install libopencv library and headers and
400 configure FFmpeg with --enable-libopencv.
401
402 The filter accepts the following parameters:
403 @var{type}:@var{param1}:@var{param2}:@var{param3}:@var{param4}.
404
405 @var{type} is the type of smooth filter to apply, and can be one of
406 the following values: "blur", "blur_no_scale", "median", "gaussian",
407 "bilateral". The default value is "gaussian".
408
409 @var{param1}, @var{param2}, @var{param3}, and @var{param4} are
410 parameters whose meanings depend on smooth type. @var{param1} and
411 @var{param2} accept integer positive values or 0, @var{param3} and
412 @var{param4} accept float values.
413
414 The default value for @var{param1} is 3, the default value for the
415 other parameters is 0.
416
417 These parameters correspond to the parameters assigned to the
418 libopencv function @code{cvSmooth}. Refer to the official libopencv
419 documentation for the exact meaning of the parameters:
420 @url{http://opencv.willowgarage.com/documentation/c/image_filtering.html}
421
422 @section overlay
423
424 Overlay one video on top of another.
425
426 It takes two inputs and one output, the first input is the "main"
427 video on which the second input is overlayed.
428
429 It accepts the parameters: @var{x}:@var{y}.
430
431 @var{x} is the x coordinate of the overlayed video on the main video,
432 @var{y} is the y coordinate. The parameters are expressions containing
433 the following parameters:
434
435 @table @option
436 @item main_w, main_h
437 main input width and height
438
439 @item W, H
440 same as @var{main_w} and @var{main_h}
441
442 @item overlay_w, overlay_h
443 overlay input width and height
444
445 @item w, h
446 same as @var{overlay_w} and @var{overlay_h}
447 @end table
448
449 Be aware that frames are taken from each input video in timestamp
450 order, hence, if their initial timestamps differ, it is a a good idea
451 to pass the two inputs through a @var{setpts=PTS-STARTPTS} filter to
452 have them begin in the same zero timestamp, as it does the example for
453 the @var{movie} filter.
454
455 Follow some examples:
456 @example
457 # draw the overlay at 10 pixels from the bottom right
458 # corner of the main video.
459 overlay=main_w-overlay_w-10:main_h-overlay_h-10
460
461 # insert a transparent PNG logo in the bottom left corner of the input
462 movie=0:png:logo.png [logo];
463 [in][logo] overlay=10:main_h-overlay_h-10 [out]
464
465 # insert 2 different transparent PNG logos (second logo on bottom
466 # right corner):
467 movie=0:png:logo1.png [logo1];
468 movie=0:png:logo2.png [logo2];
469 [in][logo1] overlay=10:H-h-10 [in+logo1];
470 [in+logo1][logo2] overlay=W-w-10:H-h-10 [out]
471
472 # add a transparent color layer on top of the main video,
473 # WxH specifies the size of the main input to the overlay filter
474 color=red@.3:WxH [over]; [in][over] overlay [out]
475 @end example
476
477 You can chain togheter more overlays but the efficiency of such
478 approach is yet to be tested.
479
480 @section pad
481
482 Add paddings to the input image, and places the original input at the
483 given coordinates @var{x}, @var{y}.
484
485 It accepts the following parameters:
486 @var{width}:@var{height}:@var{x}:@var{y}:@var{color}.
487
488 Follows the description of the accepted parameters.
489
490 @table @option
491 @item width, height
492
493 Specify the size of the output image with the paddings added. If the
494 value for @var{width} or @var{height} is 0, the corresponding input size
495 is used for the output.
496
497 The default value of @var{width} and @var{height} is 0.
498
499 @item x, y
500
501 Specify the offsets where to place the input image in the padded area
502 with respect to the top/left border of the output image.
503
504 The default value of @var{x} and @var{y} is 0.
505
506 @item color
507
508 Specify the color of the padded area, it can be the name of a color
509 (case insensitive match) or a 0xRRGGBB[AA] sequence.
510
511 The default value of @var{color} is "black".
512
513 @end table
514
515 For example:
516
517 @example
518 # Add paddings with color "violet" to the input video. Output video
519 # size is 640x480, the top-left corner of the input video is placed at
520 # row 0, column 40.
521 pad=640:480:0:40:violet
522 @end example
523
524 @section pixdesctest
525
526 Pixel format descriptor test filter, mainly useful for internal
527 testing. The output video should be equal to the input video.
528
529 For example:
530 @example
531 format=monow, pixdesctest
532 @end example
533
534 can be used to test the monowhite pixel format descriptor definition.
535
536 @section scale
537
538 Scale the input video to @var{width}:@var{height} and/or convert the image format.
539
540 For example the command:
541
542 @example
543 ./ffmpeg -i in.avi -vf "scale=200:100" out.avi
544 @end example
545
546 will scale the input video to a size of 200x100.
547
548 If the input image format is different from the format requested by
549 the next filter, the scale filter will convert the input to the
550 requested format.
551
552 If the value for @var{width} or @var{height} is 0, the respective input
553 size is used for the output.
554
555 If the value for @var{width} or @var{height} is -1, the scale filter will
556 use, for the respective output size, a value that maintains the aspect
557 ratio of the input image.
558
559 The default value of @var{width} and @var{height} is 0.
560
561 @section setpts
562
563 Change the PTS (presentation timestamp) of the input video frames.
564
565 Accept in input an expression evaluated through the eval API, which
566 can contain the following constants:
567
568 @table @option
569 @item PTS
570 the presentation timestamp in input
571
572 @item PI
573 Greek PI
574
575 @item PHI
576 golden ratio
577
578 @item E
579 Euler number
580
581 @item N
582 the count of the input frame, starting from 0.
583
584 @item STARTPTS
585 the PTS of the first video frame
586
587 @item INTERLACED
588 tell if the current frame is interlaced
589
590 @item POS
591 original position in the file of the frame, or undefined if undefined
592 for the current frame
593
594 @item PREV_INPTS
595 previous input PTS
596
597 @item PREV_OUTPTS
598 previous output PTS
599
600 @end table
601
602 Some examples follow:
603
604 @example
605 # start counting PTS from zero
606 setpts=PTS-STARTPTS
607
608 # fast motion
609 setpts=0.5*PTS
610
611 # slow motion
612 setpts=2.0*PTS
613
614 # fixed rate 25 fps
615 setpts=N/(25*TB)
616
617 # fixed rate 25 fps with some jitter
618 setpts='1/(25*TB) * (N + 0.05 * sin(N*2*PI/25))'
619 @end example
620
621 @section settb
622
623 Set the timebase to use for the output frames timestamps.
624 It is mainly useful for testing timebase configuration.
625
626 It accepts in input an arithmetic expression representing a rational.
627 The expression can contain the constants "PI", "E", "PHI", "AVTB" (the
628 default timebase), and "intb" (the input timebase).
629
630 The default value for the input is "intb".
631
632 Follow some examples.
633
634 @example
635 # set the timebase to 1/25
636 settb=1/25
637
638 # set the timebase to 1/10
639 settb=0.1
640
641 #set the timebase to 1001/1000
642 settb=1+0.001
643
644 #set the timebase to 2*intb
645 settb=2*intb
646
647 #set the default timebase value
648 settb=AVTB
649 @end example
650
651 @section slicify
652
653 Pass the images of input video on to next video filter as multiple
654 slices.
655
656 @example
657 ./ffmpeg -i in.avi -vf "slicify=32" out.avi
658 @end example
659
660 The filter accepts the slice height as parameter. If the parameter is
661 not specified it will use the default value of 16.
662
663 Adding this in the beginning of filter chains should make filtering
664 faster due to better use of the memory cache.
665
666 @section transpose
667
668 Transpose rows with columns in the input video and optionally flip it.
669
670 It accepts a parameter representing an integer, which can assume the
671 values:
672
673 @table @samp
674 @item 0
675 Rotate by 90 degrees counterclockwise and vertically flip (default), that is:
676 @example
677 L.R L.l
678 . . -> . .
679 l.r R.r
680 @end example
681
682 @item 1
683 Rotate by 90 degrees clockwise, that is:
684 @example
685 L.R l.L
686 . . -> . .
687 l.r r.R
688 @end example
689
690 @item 2
691 Rotate by 90 degrees counterclockwise, that is:
692 @example
693 L.R R.r
694 . . -> . .
695 l.r L.l
696 @end example
697
698 @item 3
699 Rotate by 90 degrees clockwise and vertically flip, that is:
700 @example
701 L.R r.R
702 . . -> . .
703 l.r l.L
704 @end example
705 @end table
706
707 @section unsharp
708
709 Sharpen or blur the input video.
710
711 It accepts the following parameters:
712 @var{luma_msize_x}:@var{luma_msize_y}:@var{luma_amount}:@var{chroma_msize_x}:@var{chroma_msize_y}:@var{chroma_amount}
713
714 Negative values for the amount will blur the input video, while positive
715 values will sharpen. All parameters are optional and default to the
716 equivalent of the string '5:5:1.0:0:0:0.0'.
717
718 @table @option
719
720 @item luma_msize_x
721 Set the luma matrix horizontal size. It can be an integer between 3
722 and 13, default value is 5.
723
724 @item luma_msize_y
725 Set the luma matrix vertical size. It can be an integer between 3
726 and 13, default value is 5.
727
728 @item luma_amount
729 Set the luma effect strength. It can be a float number between -2.0
730 and 5.0, default value is 1.0.
731
732 @item chroma_msize_x
733 Set the chroma matrix horizontal size. It can be an integer between 3
734 and 13, default value is 0.
735
736 @item chroma_msize_y
737 Set the chroma matrix vertical size. It can be an integer between 3
738 and 13, default value is 0.
739
740 @item luma_amount
741 Set the chroma effect strength. It can be a float number between -2.0
742 and 5.0, default value is 0.0.
743
744 @end table
745
746 @example
747 # Strong luma sharpen effect parameters
748 unsharp=7:7:2.5
749
750 # Strong blur of both luma and chroma parameters
751 unsharp=7:7:-2:7:7:-2
752
753 # Use the default values with @command{ffmpeg}
754 ./ffmpeg -i in.avi -vf "unsharp" out.mp4
755 @end example
756
757 @section vflip
758
759 Flip the input video vertically.
760
761 @example
762 ./ffmpeg -i in.avi -vf "vflip" out.avi
763 @end example
764
765 @section yadif
766
767 yadif is "yet another deinterlacing filter".
768
769 It accepts the syntax:
770 @example
771 yadif=[@var{mode}[:@var{parity}]]
772 @end example
773
774 @table @option
775
776 @item mode
777 Specify the interlacing mode to adopt, accepts one of the following values.
778
779 0: Output 1 frame for each frame.
780
781 1: Output 1 frame for each field.
782
783 2: Like 0 but skips spatial interlacing check.
784
785 3: Like 1 but skips spatial interlacing check.
786
787 Default value is 0.
788
789 @item parity
790 0 if is bottom field first, 1 if the interlaced video is top field
791 first, -1 to enable automatic detection.
792
793 @end table
794
795 @c man end VIDEO FILTERS
796
797 @chapter Video Sources
798 @c man begin VIDEO SOURCES
799
800 Below is a description of the currently available video sources.
801
802 @section buffer
803
804 Buffer video frames, and make them available to the filter chain.
805
806 This source is mainly intended for a programmatic use, in particular
807 through the interface defined in @file{libavfilter/vsrc_buffer.h}.
808
809 It accepts the following parameters:
810 @var{width}:@var{height}:@var{pix_fmt_string}:@var{timebase_num}:@var{timebase_den}
811
812 All the parameters need to be explicitely defined.
813
814 Follows the list of the accepted parameters.
815
816 @table @option
817
818 @item width, height
819 Specify the width and height of the buffered video frames.
820
821 @item pix_fmt_string
822 A string representing the pixel format of the buffered video frames.
823 It may be a number corresponding to a pixel format, or a pixel format
824 name.
825
826 @item timebase_num, timebase_den
827 Specify numerator and denomitor of the timebase assumed by the
828 timestamps of the buffered frames.
829 @end table
830
831 For example:
832 @example
833 buffer=320:240:yuv410p:1:24
834 @end example
835
836 will instruct the source to accept video frames with size 320x240 and
837 with format "yuv410p" and assuming 1/24 as the timestamps timebase.
838 Since the pixel format with name "yuv410p" corresponds to the number 6
839 (check the enum PixelFormat definition in @file{libavutil/pixfmt.h}),
840 this example corresponds to:
841 @example
842 buffer=320:240:6:1:24
843 @end example
844
845 @section color
846
847 Provide an uniformly colored input.
848
849 It accepts the following parameters:
850 @var{color}:@var{frame_size}:@var{frame_rate}
851
852 Follows the description of the accepted parameters.
853
854 @table @option
855
856 @item color
857 Specify the color of the source. It can be the name of a color (case
858 insensitive match) or a 0xRRGGBB[AA] sequence, possibly followed by an
859 alpha specifier. The default value is "black".
860
861 @item frame_size
862 Specify the size of the sourced video, it may be a string of the form
863 @var{width}x@var{heigth}, or the name of a size abbreviation. The
864 default value is "320x240".
865
866 @item frame_rate
867 Specify the frame rate of the sourced video, as the number of frames
868 generated per second. It has to be a string in the format
869 @var{frame_rate_num}/@var{frame_rate_den}, an integer number, a float
870 number or a valid video frame rate abbreviation. The default value is
871 "25".
872
873 @end table
874
875 For example the following graph description will generate a red source
876 with an opacity of 0.2, with size "qcif" and a frame rate of 10
877 frames per second, which will be overlayed over the source connected
878 to the pad with identifier "in".
879
880 @example
881 "color=red@@0.2:qcif:10 [color]; [in][color] overlay [out]"
882 @end example
883
884 @section nullsrc
885
886 Null video source, never return images. It is mainly useful as a
887 template and to be employed in analysis / debugging tools.
888
889 It accepts as optional parameter a string of the form
890 @var{width}:@var{height}:@var{timebase}.
891
892 @var{width} and @var{height} specify the size of the configured
893 source. The default values of @var{width} and @var{height} are
894 respectively 352 and 288 (corresponding to the CIF size format).
895
896 @var{timebase} specifies an arithmetic expression representing a
897 timebase. The expression can contain the constants "PI", "E", "PHI",
898 "AVTB" (the default timebase), and defaults to the value "AVTB".
899
900 @section frei0r_src
901
902 Provide a frei0r source.
903
904 To enable compilation of this filter you need to install the frei0r
905 header and configure FFmpeg with --enable-frei0r.
906
907 The source supports the syntax:
908 @example
909 @var{size}:@var{rate}:@var{src_name}[@{=|:@}@var{param1}:@var{param2}:...:@var{paramN}]
910 @end example
911
912 @var{size} is the size of the video to generate, may be a string of the
913 form @var{width}x@var{height} or a frame size abbreviation.
914 @var{rate} is the rate of the video to generate, may be a string of
915 the form @var{num}/@var{den} or a frame rate abbreviation.
916 @var{src_name} is the name to the frei0r source to load. For more
917 information regarding frei0r and how to set the parameters read the
918 section "frei0r" (@pxref{frei0r}) in the description of the video
919 filters.
920
921 Some examples follow:
922 @example
923 # generate a frei0r partik0l source with size 200x200 and framerate 10
924 # which is overlayed on the overlay filter main input
925 frei0r_src=200x200:10:partik0l=1234 [overlay]; [in][overlay] overlay
926 @end example
927
928 @c man end VIDEO SOURCES
929
930 @chapter Video Sinks
931 @c man begin VIDEO SINKS
932
933 Below is a description of the currently available video sinks.
934
935 @section nullsink
936
937 Null video sink, do absolutely nothing with the input video. It is
938 mainly useful as a template and to be employed in analysis / debugging
939 tools.
940
941 @c man end VIDEO SINKS
942