Port overlay filter from the libavfilter repo (with many fixes),
[ffmpeg.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 @section frei0r
287
288 Apply a frei0r effect to the input video.
289
290 To enable compilation of this filter you need to install the frei0r
291 header and configure FFmpeg with --enable-frei0r.
292
293 The filter supports the syntax:
294 @example
295 @var{filter_name}:@var{param1}:@var{param2}:...:@var{paramN}
296 @end example
297
298 @var{filter_name} is the name to the frei0r effect to load. If the
299 environment variable @env{FREI0R_PATH} is defined, the frei0r effect
300 is searched in each one of the directories specified by the colon
301 separated list in @env{FREIOR_PATH}, otherwise in the standard frei0r
302 paths, which are in this order: @file{HOME/.frei0r-1/lib/},
303 @file{/usr/local/lib/frei0r-1/}, @file{/usr/lib/frei0r-1/}.
304
305 @var{param1}, @var{param2}, ... , @var{paramN} specify the parameters
306 for the frei0r effect.
307
308 A frei0r effect parameter can be a boolean (whose values are specified
309 with "y" and "n"), a double, a color (specified by the syntax
310 @var{R}/@var{G}/@var{B}, @var{R}, @var{G}, and @var{B} being float
311 numbers from 0.0 to 1.0) or by an @code{av_parse_color()} color
312 description), a position (specified by the syntax @var{X}/@var{Y},
313 @var{X} and @var{Y} being float numbers) and a string.
314
315 The number and kind of parameters depend on the loaded effect. If an
316 effect parameter is not specified the default value is set.
317
318 Some examples follow:
319 @example
320 # apply the distort0r effect, set the first two double parameters
321 frei0r=distort0r:0.5:0.01
322
323 # apply the colordistance effect, takes a color as first parameter
324 frei0r=colordistance:0.2/0.3/0.4
325 frei0r=colordistance:violet
326 frei0r=colordistance:0x112233
327
328 # apply the perspective effect, specify the top left and top right
329 # image positions
330 frei0r=perspective:0.2/0.2:0.8/0.2
331 @end example
332
333 For more information see:
334 @url{http://piksel.org/frei0r}
335
336 @section hflip
337
338 Flip the input video horizontally.
339
340 For example to horizontally flip the video in input with
341 @file{ffmpeg}:
342 @example
343 ffmpeg -i in.avi -vf "hflip" out.avi
344 @end example
345
346 @section noformat
347
348 Force libavfilter not to use any of the specified pixel formats for the
349 input to the next filter.
350
351 The filter accepts a list of pixel format names, separated by ":",
352 for example "yuv420p:monow:rgb24".
353
354 The following command:
355
356 @example
357 ./ffmpeg -i in.avi -vf "noformat=yuv420p, vflip" out.avi
358 @end example
359
360 will make libavfilter use a format different from "yuv420p" for the
361 input to the vflip filter.
362
363 @section null
364
365 Pass the video source unchanged to the output.
366
367 @section ocv_smooth
368
369 Apply smooth transform using libopencv.
370
371 To enable this filter install libopencv library and headers and
372 configure FFmpeg with --enable-libopencv.
373
374 The filter accepts the following parameters:
375 @var{type}:@var{param1}:@var{param2}:@var{param3}:@var{param4}.
376
377 @var{type} is the type of smooth filter to apply, and can be one of
378 the following values: "blur", "blur_no_scale", "median", "gaussian",
379 "bilateral". The default value is "gaussian".
380
381 @var{param1}, @var{param2}, @var{param3}, and @var{param4} are
382 parameters whose meanings depend on smooth type. @var{param1} and
383 @var{param2} accept integer positive values or 0, @var{param3} and
384 @var{param4} accept float values.
385
386 The default value for @var{param1} is 3, the default value for the
387 other parameters is 0.
388
389 These parameters correspond to the parameters assigned to the
390 libopencv function @code{cvSmooth}. Refer to the official libopencv
391 documentation for the exact meaning of the parameters:
392 @url{http://opencv.willowgarage.com/documentation/c/image_filtering.html}
393
394 @section overlay
395
396 Overlay one video on top of another.
397
398 It takes two inputs and one output, the first input is the "main"
399 video on which the second input is overlayed.
400
401 It accepts the parameters: @var{x}:@var{y}.
402
403 @var{x} is the x coordinate of the overlayed video on the main video,
404 @var{y} is the y coordinate. The parameters are expressions containing
405 the following parameters:
406
407 @table @option
408 @item main_w, main_h
409 main input width and height
410
411 @item W, H
412 same as @var{main_w} and @var{main_h}
413
414 @item overlay_w, overlay_h
415 overlay input width and height
416
417 @item w, h
418 same as @var{overlay_w} and @var{overlay_h}
419 @end table
420
421 Be aware that frames are taken from each input video in timestamp
422 order, hence, if their initial timestamps differ, it is a a good idea
423 to pass the two inputs through a @var{setpts=PTS-STARTPTS} filter to
424 have them begin in the same zero timestamp, as it does the example for
425 the @var{movie} filter.
426
427 Follow some examples:
428 @example
429 # draw the overlay at 10 pixels from the bottom right
430 # corner of the main video.
431 overlay=main_w-overlay_w-10:main_h-overlay_h-10
432
433 # insert a transparent PNG logo in the bottom left corner of the input
434 movie=0:png:logo.png [logo];
435 [in][logo] overlay=10:main_h-overlay_h-10 [out]
436
437 # insert 2 different transparent PNG logos (second logo on bottom
438 # right corner):
439 movie=0:png:logo1.png [logo1];
440 movie=0:png:logo2.png [logo2];
441 [in][logo1]       overlay=10:H-h-10 [in+logo1];
442 [in+logo1][logo2] overlay=W-w-10:H-h-10 [out]
443
444 # add a transparent color layer on top of the main video,
445 # WxH specifies the size of the main input to the overlay filter
446 color=red@.3:WxH [over]; [in][over] overlay [out]
447 @end example
448
449 You can chain togheter more overlays but the efficiency of such
450 approach is yet to be tested.
451
452 @section pad
453
454 Add paddings to the input image, and places the original input at the
455 given coordinates @var{x}, @var{y}.
456
457 It accepts the following parameters:
458 @var{width}:@var{height}:@var{x}:@var{y}:@var{color}.
459
460 Follows the description of the accepted parameters.
461
462 @table @option
463 @item width, height
464
465 Specify the size of the output image with the paddings added. If the
466 value for @var{width} or @var{height} is 0, the corresponding input size
467 is used for the output.
468
469 The default value of @var{width} and @var{height} is 0.
470
471 @item x, y
472
473 Specify the offsets where to place the input image in the padded area
474 with respect to the top/left border of the output image.
475
476 The default value of @var{x} and @var{y} is 0.
477
478 @item color
479
480 Specify the color of the padded area, it can be the name of a color
481 (case insensitive match) or a 0xRRGGBB[AA] sequence.
482
483 The default value of @var{color} is "black".
484
485 @end table
486
487 For example:
488
489 @example
490 # Add paddings with color "violet" to the input video. Output video
491 # size is 640x480, the top-left corner of the input video is placed at
492 # row 0, column 40.
493 pad=640:480:0:40:violet
494 @end example
495
496 @section pixdesctest
497
498 Pixel format descriptor test filter, mainly useful for internal
499 testing. The output video should be equal to the input video.
500
501 For example:
502 @example
503 format=monow, pixdesctest
504 @end example
505
506 can be used to test the monowhite pixel format descriptor definition.
507
508 @section scale
509
510 Scale the input video to @var{width}:@var{height} and/or convert the image format.
511
512 For example the command:
513
514 @example
515 ./ffmpeg -i in.avi -vf "scale=200:100" out.avi
516 @end example
517
518 will scale the input video to a size of 200x100.
519
520 If the input image format is different from the format requested by
521 the next filter, the scale filter will convert the input to the
522 requested format.
523
524 If the value for @var{width} or @var{height} is 0, the respective input
525 size is used for the output.
526
527 If the value for @var{width} or @var{height} is -1, the scale filter will
528 use, for the respective output size, a value that maintains the aspect
529 ratio of the input image.
530
531 The default value of @var{width} and @var{height} is 0.
532
533 @section setpts
534
535 Change the PTS (presentation timestamp) of the input video frames.
536
537 Accept in input an expression evaluated through the eval API, which
538 can contain the following constants:
539
540 @table @option
541 @item PTS
542 the presentation timestamp in input
543
544 @item PI
545 Greek PI
546
547 @item PHI
548 golden ratio
549
550 @item E
551 Euler number
552
553 @item N
554 the count of the input frame, starting from 0.
555
556 @item STARTPTS
557 the PTS of the first video frame
558
559 @item INTERLACED
560 tell if the current frame is interlaced
561
562 @item POS
563 original position in the file of the frame, or undefined if undefined
564 for the current frame
565
566 @item PREV_INPTS
567 previous input PTS
568
569 @item PREV_OUTPTS
570 previous output PTS
571
572 @end table
573
574 Some examples follow:
575
576 @example
577 # start counting PTS from zero
578 setpts=PTS-STARTPTS
579
580 # fast motion
581 setpts=0.5*PTS
582
583 # slow motion
584 setpts=2.0*PTS
585
586 # fixed rate 25 fps
587 setpts=N/(25*TB)
588
589 # fixed rate 25 fps with some jitter
590 setpts='1/(25*TB) * (N + 0.05 * sin(N*2*PI/25))'
591 @end example
592
593 @section settb
594
595 Set the timebase to use for the output frames timestamps.
596 It is mainly useful for testing timebase configuration.
597
598 It accepts in input an arithmetic expression representing a rational.
599 The expression can contain the constants "PI", "E", "PHI", "AVTB" (the
600 default timebase), and "intb" (the input timebase).
601
602 The default value for the input is "intb".
603
604 Follow some examples.
605
606 @example
607 # set the timebase to 1/25
608 settb=1/25
609
610 # set the timebase to 1/10
611 settb=0.1
612
613 #set the timebase to 1001/1000
614 settb=1+0.001
615
616 #set the timebase to 2*intb
617 settb=2*intb
618
619 #set the default timebase value
620 settb=AVTB
621 @end example
622
623 @section slicify
624
625 Pass the images of input video on to next video filter as multiple
626 slices.
627
628 @example
629 ./ffmpeg -i in.avi -vf "slicify=32" out.avi
630 @end example
631
632 The filter accepts the slice height as parameter. If the parameter is
633 not specified it will use the default value of 16.
634
635 Adding this in the beginning of filter chains should make filtering
636 faster due to better use of the memory cache.
637
638 @section transpose
639
640 Transpose rows with columns in the input video and optionally flip it.
641
642 It accepts a parameter representing an integer, which can assume the
643 values:
644
645 @table @samp
646 @item 0
647 Rotate by 90 degrees counterclockwise and vertically flip (default), that is:
648 @example
649 L.R     L.l
650 . . ->  . .
651 l.r     R.r
652 @end example
653
654 @item 1
655 Rotate by 90 degrees clockwise, that is:
656 @example
657 L.R     l.L
658 . . ->  . .
659 l.r     r.R
660 @end example
661
662 @item 2
663 Rotate by 90 degrees counterclockwise, that is:
664 @example
665 L.R     R.r
666 . . ->  . .
667 l.r     L.l
668 @end example
669
670 @item 3
671 Rotate by 90 degrees clockwise and vertically flip, that is:
672 @example
673 L.R     r.R
674 . . ->  . .
675 l.r     l.L
676 @end example
677 @end table
678
679 @section unsharp
680
681 Sharpen or blur the input video.
682
683 It accepts the following parameters:
684 @var{luma_msize_x}:@var{luma_msize_y}:@var{luma_amount}:@var{chroma_msize_x}:@var{chroma_msize_y}:@var{chroma_amount}
685
686 Negative values for the amount will blur the input video, while positive
687 values will sharpen. All parameters are optional and default to the
688 equivalent of the string '5:5:1.0:0:0:0.0'.
689
690 @table @option
691
692 @item luma_msize_x
693 Set the luma matrix horizontal size. It can be an integer between 3
694 and 13, default value is 5.
695
696 @item luma_msize_y
697 Set the luma matrix vertical size. It can be an integer between 3
698 and 13, default value is 5.
699
700 @item luma_amount
701 Set the luma effect strength. It can be a float number between -2.0
702 and 5.0, default value is 1.0.
703
704 @item chroma_msize_x
705 Set the chroma matrix horizontal size. It can be an integer between 3
706 and 13, default value is 0.
707
708 @item chroma_msize_y
709 Set the chroma matrix vertical size. It can be an integer between 3
710 and 13, default value is 0.
711
712 @item luma_amount
713 Set the chroma effect strength. It can be a float number between -2.0
714 and 5.0, default value is 0.0.
715
716 @end table
717
718 @example
719 # Strong luma sharpen effect parameters
720 unsharp=7:7:2.5
721
722 # Strong blur of both luma and chroma parameters
723 unsharp=7:7:-2:7:7:-2
724
725 # Use the default values with @command{ffmpeg}
726 ./ffmpeg -i in.avi -vf "unsharp" out.mp4
727 @end example
728
729 @section vflip
730
731 Flip the input video vertically.
732
733 @example
734 ./ffmpeg -i in.avi -vf "vflip" out.avi
735 @end example
736
737 @section yadif
738
739 yadif is "yet another deinterlacing filter".
740
741 It accepts the syntax:
742 @example
743 yadif=[@var{mode}[:@var{parity}]]
744 @end example
745
746 @table @option
747
748 @item mode
749 Specify the interlacing mode to adopt, accepts one of the following values.
750
751 0: Output 1 frame for each frame.
752
753 1: Output 1 frame for each field.
754
755 2: Like 0 but skips spatial interlacing check.
756
757 3: Like 1 but skips spatial interlacing check.
758
759 Default value is 0.
760
761 @item parity
762 0 if is bottom field first, 1 if the interlaced video is top field
763 first, -1 to enable automatic detection.
764
765 @end table
766
767 @c man end VIDEO FILTERS
768
769 @chapter Video Sources
770 @c man begin VIDEO SOURCES
771
772 Below is a description of the currently available video sources.
773
774 @section buffer
775
776 Buffer video frames, and make them available to the filter chain.
777
778 This source is mainly intended for a programmatic use, in particular
779 through the interface defined in @file{libavfilter/vsrc_buffer.h}.
780
781 It accepts the following parameters:
782 @var{width}:@var{height}:@var{pix_fmt_string}:@var{timebase_num}:@var{timebase_den}
783
784 All the parameters need to be explicitely defined.
785
786 Follows the list of the accepted parameters.
787
788 @table @option
789
790 @item width, height
791 Specify the width and height of the buffered video frames.
792
793 @item pix_fmt_string
794 A string representing the pixel format of the buffered video frames.
795 It may be a number corresponding to a pixel format, or a pixel format
796 name.
797
798 @item timebase_num, timebase_den
799 Specify numerator and denomitor of the timebase assumed by the
800 timestamps of the buffered frames.
801 @end table
802
803 For example:
804 @example
805 buffer=320:240:yuv410p:1:24
806 @end example
807
808 will instruct the source to accept video frames with size 320x240 and
809 with format "yuv410p" and assuming 1/24 as the timestamps timebase.
810 Since the pixel format with name "yuv410p" corresponds to the number 6
811 (check the enum PixelFormat definition in @file{libavutil/pixfmt.h}),
812 this example corresponds to:
813 @example
814 buffer=320:240:6:1:24
815 @end example
816
817 @section color
818
819 Provide an uniformly colored input.
820
821 It accepts the following parameters:
822 @var{color}:@var{frame_size}:@var{frame_rate}
823
824 Follows the description of the accepted parameters.
825
826 @table @option
827
828 @item color
829 Specify the color of the source. It can be the name of a color (case
830 insensitive match) or a 0xRRGGBB[AA] sequence, possibly followed by an
831 alpha specifier. The default value is "black".
832
833 @item frame_size
834 Specify the size of the sourced video, it may be a string of the form
835 @var{width}x@var{heigth}, or the name of a size abbreviation. The
836 default value is "320x240".
837
838 @item frame_rate
839 Specify the frame rate of the sourced video, as the number of frames
840 generated per second. It has to be a string in the format
841 @var{frame_rate_num}/@var{frame_rate_den}, an integer number, a float
842 number or a valid video frame rate abbreviation. The default value is
843 "25".
844
845 @end table
846
847 For example the following graph description will generate a red source
848 with an opacity of 0.2, with size "qcif" and a frame rate of 10
849 frames per second, which will be overlayed over the source connected
850 to the pad with identifier "in".
851
852 @example
853 "color=red@@0.2:qcif:10 [color]; [in][color] overlay [out]"
854 @end example
855
856 @section nullsrc
857
858 Null video source, never return images. It is mainly useful as a
859 template and to be employed in analysis / debugging tools.
860
861 It accepts as optional parameter a string of the form
862 @var{width}:@var{height}:@var{timebase}.
863
864 @var{width} and @var{height} specify the size of the configured
865 source. The default values of @var{width} and @var{height} are
866 respectively 352 and 288 (corresponding to the CIF size format).
867
868 @var{timebase} specifies an arithmetic expression representing a
869 timebase. The expression can contain the constants "PI", "E", "PHI",
870 "AVTB" (the default timebase), and defaults to the value "AVTB".
871
872 @c man end VIDEO SOURCES
873
874 @chapter Video Sinks
875 @c man begin VIDEO SINKS
876
877 Below is a description of the currently available video sinks.
878
879 @section nullsink
880
881 Null video sink, do absolutely nothing with the input video. It is
882 mainly useful as a template and to be employed in analysis / debugging
883 tools.
884
885 @c man end VIDEO SINKS
886