]> git.sesse.net Git - ffmpeg/blobdiff - doc/filters.texi
Merge commit '38f0c0781a6e099f11c0acec07f9b8be742190c4'
[ffmpeg] / doc / filters.texi
index 3b20c803e1ea0e9eca5d06b493ccc9b07eea52fc..d3777efc4f2f1e72f61bf57591fc6012027e05e9 100644 (file)
@@ -117,7 +117,7 @@ A filtergraph can be represented using a textual representation, which is
 recognized by the @option{-filter}/@option{-vf} and @option{-filter_complex}
 options in @command{ffmpeg} and @option{-vf} in @command{ffplay}, and by the
 @code{avfilter_graph_parse()}/@code{avfilter_graph_parse2()} function defined in
-@file{libavfilter/avfiltergraph.h}.
+@file{libavfilter/avfilter.h}.
 
 A filterchain consists of a sequence of connected filters, each one
 connected to the previous one in the sequence. A filterchain is
@@ -283,6 +283,8 @@ Below is a description of the currently available audio filters.
 
 Convert the input audio format to the specified formats.
 
+@emph{This filter is deprecated. Use @ref{aformat} instead.}
+
 The filter accepts a string of the form:
 "@var{sample_format}:@var{channel_layout}".
 
@@ -759,7 +761,7 @@ aformat=sample_fmts=u8|s16:channel_layouts=stereo
 
 Merge two or more audio streams into a single multi-channel stream.
 
-The filter accepts the following named options:
+The filter accepts the following options:
 
 @table @option
 
@@ -800,16 +802,9 @@ amovie=left.wav [l] ; amovie=right.mp3 [r] ; [l] [r] amerge
 @end example
 
 @item
-Multiple merges:
+Multiple merges assuming 1 video stream and 6 audio streams in @file{input.mkv}:
 @example
-ffmpeg -f lavfi -i "
-amovie=input.mkv:si=0 [a0];
-amovie=input.mkv:si=1 [a1];
-amovie=input.mkv:si=2 [a2];
-amovie=input.mkv:si=3 [a3];
-amovie=input.mkv:si=4 [a4];
-amovie=input.mkv:si=5 [a5];
-[a0][a1][a2][a3][a4][a5] amerge=inputs=6" -c:a pcm_s16le output.mkv
+ffmpeg -i input.mkv -filter_complex "[0:1][0:2][0:3][0:4][0:5][0:6] amerge=inputs=6" -c:a pcm_s16le output.mkv
 @end example
 @end itemize
 
@@ -902,8 +897,7 @@ The last output packet may contain a different number of samples, as
 the filter will flush all the remaining samples when the input audio
 signal its end.
 
-The filter accepts parameters as a list of @var{key}=@var{value} pairs,
-separated by ":".
+The filter accepts the following options:
 
 @table @option
 
@@ -1190,7 +1184,7 @@ silencedetect=n=-50dB:d=5
 Complete example with @command{ffmpeg} to detect silence with 0.0001 noise
 tolerance in @file{silence.mp3}:
 @example
-ffmpeg -f lavfi -i amovie=silence.mp3,silencedetect=noise=0.0001 -f null -
+ffmpeg -i silence.mp3 -af silencedetect=noise=0.0001 -f null -
 @end example
 @end itemize
 
@@ -1497,18 +1491,13 @@ This source accepts in input one or more expressions (one for each
 channel), which are evaluated and used to generate a corresponding
 audio signal.
 
-It accepts the syntax: @var{exprs}[::@var{options}].
-@var{exprs} is a list of expressions separated by ":", one for each
-separate channel. In case the @var{channel_layout} is not
-specified, the selected channel layout depends on the number of
-provided expressions.
-
-@var{options} is an optional sequence of @var{key}=@var{value} pairs,
-separated by ":".
-
-The description of the accepted options follows.
+This source accepts the following options:
 
 @table @option
+@item exprs
+Set the '|'-separated expressions list for each separate channel. In case the
+@option{channel_layout} option is not specified, the selected channel layout
+depends on the number of provided expressions.
 
 @item channel_layout, c
 Set the channel layout. The number of channels in the specified layout
@@ -1559,14 +1548,14 @@ aevalsrc=0
 Generate a sin signal with frequency of 440 Hz, set sample rate to
 8000 Hz:
 @example
-aevalsrc="sin(440*2*PI*t)::s=8000"
+aevalsrc="sin(440*2*PI*t):s=8000"
 @end example
 
 @item
 Generate a two channels signal, specify the channel layout (Front
 Center + Back Center) explicitly:
 @example
-aevalsrc="sin(420*2*PI*t):cos(430*2*PI*t)::c=FC|BC"
+aevalsrc="sin(420*2*PI*t)|cos(430*2*PI*t):c=FC|BC"
 @end example
 
 @item
@@ -1584,7 +1573,7 @@ aevalsrc="sin(10*2*PI*t)*sin(880*2*PI*t)"
 @item
 Generate 2.5 Hz binaural beats on a 360 Hz carrier:
 @example
-aevalsrc="0.1*sin(2*PI*(360-2.5/2)*t) : 0.1*sin(2*PI*(360+2.5/2)*t)"
+aevalsrc="0.1*sin(2*PI*(360-2.5/2)*t) | 0.1*sin(2*PI*(360+2.5/2)*t)"
 @end example
 
 @end itemize
@@ -1670,10 +1659,7 @@ To enable compilation of this filter you need to configure FFmpeg with
 
 Note that the flite library is not thread-safe.
 
-The source accepts parameters as a list of @var{key}=@var{value} pairs,
-separated by ":".
-
-The description of the accepted parameters follows.
+The filter accepts the following options:
 
 @table @option
 
@@ -3659,24 +3645,27 @@ a float number which specifies chroma temporal strength, defaults to
 
 Modify the hue and/or the saturation of the input.
 
-This filter accepts the following optional named options:
+This filter accepts the following options:
 
 @table @option
 @item h
-Specify the hue angle as a number of degrees. It accepts a float
-number or an expression, and defaults to 0.0.
-
-@item H
-Specify the hue angle as a number of radians. It accepts a float
-number or an expression, and defaults to 0.0.
+Specify the hue angle as a number of degrees. It accepts an expression,
+and defaults to "0".
 
 @item s
 Specify the saturation in the [-10,10] range. It accepts a float number and
-defaults to 1.0.
+defaults to "1".
+
+@item H
+Specify the hue angle as a number of radians. It accepts a float
+number or an expression, and defaults to "0".
 @end table
 
-The @var{h}, @var{H} and @var{s} parameters are expressions containing the
-following constants:
+@option{h} and @option{H} are mutually exclusive, and can't be
+specified at the same time.
+
+The @option{h}, @option{H} and @option{s} option values are
+expressions containing the following constants:
 
 @table @option
 @item n
@@ -3695,10 +3684,6 @@ timestamp expressed in seconds, NAN if the input timestamp is unknown
 time base of the input video
 @end table
 
-The options can also be set using the syntax: @var{hue}:@var{saturation}
-
-In this case @var{hue} is expressed in degrees.
-
 @subsection Examples
 
 @itemize
@@ -3714,19 +3699,6 @@ Same command but expressing the hue in radians:
 hue=H=PI/2:s=1
 @end example
 
-@item
-Same command without named options, hue must be expressed in degrees:
-@example
-hue=90:1
-@end example
-
-@item
-Note that "h:s" syntax does not support expressions for the values of
-h and s, so the following example will issue an error:
-@example
-hue=PI/2:1
-@end example
-
 @item
 Rotate hue and make the saturation swing between 0
 and 2 over a period of 1 second:
@@ -3762,12 +3734,15 @@ hue="s=max(0\, min(1\, (START+DURATION-t)/DURATION))"
 
 This filter supports the following command:
 @table @option
-@item reinit
+@item s
+@item h
+@item H
 Modify the hue and/or the saturation of the input video.
-The command accepts the same named options and syntax than when calling the
-filter from the command-line.
+The command accepts the same options and syntax of the corresponding
+options.
 
-If a parameter is omitted, it is kept at its current value.
+If the specified expression is not valid, it is kept at its current
+value.
 @end table
 
 @section idet
@@ -4806,10 +4781,14 @@ Suppress a TV station logo, using an image file to determine which
 pixels comprise the logo. It works by filling in the pixels that
 comprise the logo with neighboring pixels.
 
-This filter requires one argument which specifies the filter bitmap
-file, which can be any image format supported by libavformat. The
-width and height of the image file must match those of the video
-stream being processed.
+The filters accept the following options:
+
+@table @option
+@item filename, f
+Set the filter bitmap file, which can be any image format supported by
+libavformat. The width and height of the image file must match those of the
+video stream being processed.
+@end table
 
 Pixels in the provided bitmap image with a value of zero are not
 considered part of the logo, non-zero pixels are considered part of
@@ -5046,18 +5025,10 @@ Keep in mind that the sample aspect ratio set by the @code{setsar}
 filter may be changed by later filters in the filterchain, e.g. if
 another "setsar" or a "setdar" filter is applied.
 
-The @code{setdar} and @code{setsar} filters accept a string in the
-form @var{num}:@var{den} expressing an aspect ratio, or the following
-named options, expressed as a sequence of @var{key}=@var{value} pairs,
-separated by ":".
+The filters accept the following options:
 
 @table @option
-@item max
-Set the maximum integer value to use for expressing numerator and
-denominator when reducing the expressed aspect ratio to a rational.
-Default value is @code{100}.
-
-@item r, ratio, dar, sar:
+@item r, ratio, dar (@code{setdar} only), sar (@code{setsar} only)
 Set the aspect ratio used by the filter.
 
 The parameter can be a floating point number string, an expression, or
@@ -5066,33 +5037,41 @@ a string of the form @var{num}:@var{den}, where @var{num} and
 the parameter is not specified, it is assumed the value "0".
 In case the form "@var{num}:@var{den}" the @code{:} character should
 be escaped.
+
+@item max
+Set the maximum integer value to use for expressing numerator and
+denominator when reducing the expressed aspect ratio to a rational.
+Default value is @code{100}.
+
 @end table
 
-If the keys are omitted in the named options list, the specifed values
-are assumed to be @var{ratio} and @var{max} in that order.
+@subsection Examples
+
+@itemize
 
-For example to change the display aspect ratio to 16:9, specify:
+@item
+To change the display aspect ratio to 16:9, specify one of the following:
 @example
-setdar='16:9'
-# the above is equivalent to
-setdar=1.77777
+setdar=dar=1.77777
 setdar=dar=16/9
 setdar=dar=1.77777
 @end example
 
+@item
 To change the sample aspect ratio to 10:11, specify:
 @example
-setsar='10:11'
-# the above is equivalent to
-setsar='sar=10/11'
+setsar=sar=10/11
 @end example
 
+@item
 To set a display aspect ratio of 16:9, and specify a maximum integer value of
 1000 in the aspect ratio reduction, use the command:
 @example
-setdar=ratio='16:9':max=1000
+setdar=ratio=16/9:max=1000
 @end example
 
+@end itemize
+
 @anchor{setfield}
 @section setfield
 
@@ -6707,13 +6686,13 @@ Specify a list of drawtext and hue commands in a file.
          [leave] drawtext reinit 'fontfile=FreeSerif.ttf:text=';
 
 # desaturate the image in the interval 15-20
-15.0-20.0 [enter] hue reinit s=0,
+15.0-20.0 [enter] hue 0,
           [enter] drawtext reinit 'fontfile=FreeSerif.ttf:text=nocolor',
-          [leave] hue reinit s=1,
+          [leave] hue 1,
           [leave] drawtext reinit 'fontfile=FreeSerif.ttf:text=color';
 
 # apply an exponential saturation fade-out effect, starting from time 25
-25 [enter] hue s=exp(t-25)
+25 [enter] hue s exp(25-t)
 @end example
 
 A filtergraph allowing to read and process the above command list