Statistics
| Branch: | Revision:

ffmpeg / doc / filters.texi @ a4dc7aa5

History | View | Annotate | Download (24.9 KB)

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