Make the ffmpeg and ffplay man pages show the list of lavfi filters,
authorStefano Sabatini <stefano.sabatini-lala@poste.it>
Mon, 21 Jun 2010 22:09:07 +0000 (22:09 +0000)
committerStefano Sabatini <stefano.sabatini-lala@poste.it>
Mon, 21 Jun 2010 22:09:07 +0000 (22:09 +0000)
sinks and sources, and document the -vf option.

Originally committed as revision 23689 to svn://svn.ffmpeg.org/ffmpeg/trunk

Makefile
doc/ffmpeg-doc.texi
doc/ffplay-doc.texi
doc/filters.texi [copied from doc/libavfilter.texi with 61% similarity]
doc/libavfilter.texi

index f83956f..b414d0c 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -108,6 +108,9 @@ documentation: $(addprefix doc/, developer.html faq.html general.html libavfilte
 
 $(HTMLPAGES) $(MANPAGES): doc/fftools-common-opts.texi
 
+doc/ffmpeg.pod doc/ffmpeg-doc.html: doc/filters.texi
+doc/ffplay.pod doc/ffplay-doc.html: doc/filters.texi
+
 doc/%.html: TAG = HTML
 doc/%.html: doc/%.texi
        $(M)cd doc && texi2html -monolithic -number $(<:doc/%=%)
index 342fe18..95e419d 100644 (file)
@@ -290,6 +290,12 @@ Add a new video stream to the current output stream.
 @item -vlang @var{code}
 Set the ISO 639 language code (3 letters) of the current video stream.
 
+@item -vf @var{filter_graph}
+@var{filter_graph} is a description of the filter graph to apply to
+the input video.
+Use the option "-filters" to show all the available filters (including
+also sources and sinks).
+
 @end table
 
 @section Advanced Video Options
@@ -946,6 +952,8 @@ options have to be specified immediately after the name of the output
 file to which you want to add them.
 @c man end EXAMPLES
 
+@include filters.texi
+
 @ignore
 
 @setfilename ffmpeg
index 41db3dc..49f4647 100644 (file)
@@ -56,6 +56,12 @@ Force format.
 Set window title (default is the input filename).
 @item -loop @var{number}
 Loops movie playback <number> times. 0 means forever.
+@item -vf @var{filter_graph}
+@var{filter_graph} is a description of the filter graph to apply to
+the input video.
+Use the option "-filters" to show all the available filters (including
+also sources and sinks).
+
 @end table
 
 @section Advanced options
@@ -141,6 +147,8 @@ Seek to percentage in file corresponding to fraction of width.
 
 @c man end
 
+@include filters.texi
+
 @ignore
 
 @setfilename ffplay
similarity index 61%
copy from doc/libavfilter.texi
copy to doc/filters.texi
index 6d8607d..9f77eee 100644 (file)
@@ -1,108 +1,8 @@
-\input texinfo @c -*- texinfo -*-
-
-@settitle Libavfilter Documentation
-@titlepage
-@sp 7
-@center @titlefont{Libavfilter Documentation}
-@sp 3
-@end titlepage
-
-
-@chapter Introduction
-
-Libavfilter is the filtering API of FFmpeg. It is the substitute of the
-now deprecated 'vhooks' and started as a Google Summer of Code project.
-
-Integrating libavfilter into the main FFmpeg repository is a work in
-progress. If you wish to try the unfinished development code of
-libavfilter then check it out from the libavfilter repository into
-some directory of your choice by:
-
-@example
-   svn checkout svn://svn.ffmpeg.org/soc/libavfilter
-@end example
-
-And then read the README file in the top directory to learn how to
-integrate it into ffmpeg and ffplay.
-
-But note that there may still be serious bugs in the code and its API
-and ABI should not be considered stable yet!
-
-@chapter Tutorial
-
-In libavfilter, it is possible for filters to have multiple inputs and
-multiple outputs.
-To illustrate the sorts of things that are possible, we can
-use a complex filter graph. For example, the following one:
-
-@example
-input --> split --> fifo -----------------------> overlay --> output
-            |                                        ^
-            |                                        |
-            +------> fifo --> crop --> vflip --------+
-@end example
-
-splits the stream in two streams, sends one stream through the crop filter
-and the vflip filter before merging it back with the other stream by
-overlaying it on top. You can use the following command to achieve this:
-
-@example
-./ffmpeg -i in.avi -s 240x320 -vf "[in] split [T1], fifo, [T2] overlay= 0:240 [out]; [T1] fifo, crop=0:0:-1:240, vflip [T2]
-@end example
-
-where input_video.avi has a vertical resolution of 480 pixels. The
-result will be that in output the top half of the video is mirrored
-onto the bottom half.
-
-Video filters are loaded using the @var{-vf} option passed to
-ffmpeg or to ffplay. Filters in the same linear chain are separated by
-commas. In our example, @var{split, fifo, overlay} are in one linear
-chain, and @var{fifo, crop, vflip} are in another. The points where
-the linear chains join are labeled by names enclosed in square
-brackets. In our example, that is @var{[T1]} and @var{[T2]}. The magic
-labels @var{[in]} and @var{[out]} are the points where video is input
-and output.
-
-Some filters take in input a list of parameters: they are specified
-after the filter name and an equal sign, and are separated each other
-by a semicolon.
-
-There exist so-called @var{source filters} that do not have a video
-input, and we expect in the future some @var{sink filters} that will
-not have video output.
-
-@chapter graph2dot
-
-The @file{graph2dot} program included in the FFmpeg @file{tools}
-directory can be used to parse a filter graph description and issue a
-corresponding textual representation in the dot language.
-
-Invoke the command:
-@example
-graph2dot -h
-@end example
-
-to see how to use @file{graph2dot}.
-
-You can then pass the dot description to the @file{dot} program (from
-the graphviz suite of programs) and obtain a graphical representation
-of the filter graph.
-
-For example the sequence of commands:
-@example
-echo @var{GRAPH_DESCRIPTION} | \
-tools/graph2dot -o graph.tmp && \
-dot -Tpng graph.tmp -o graph.png && \
-display graph.png
-@end example
-
-can be used to create and display an image representing the graph
-described by the @var{GRAPH_DESCRIPTION} string.
-
-@chapter Available video filters
+@chapter Video Filters
+@c man begin VIDEO FILTERS
 
 When you configure your FFmpeg build, you can disable any of the
-existing video filters.
+existing filters using --disable-filters.
 The configure output will show the video filters included in your
 build.
 
@@ -254,10 +154,11 @@ faster due to better use of the memory cache.
 
 @section unsharp
 
-Sharpen or blur the input video.
+Sharpen or blur the input video. It accepts the following parameters:
 
-It accepts the following parameters:
-@var{luma_msize_x}:@var{luma_msize_y}:@var{luma_amount}:@var{chroma_msize_x}:@var{chroma_msize_y}:@var{chroma_amount}
+Negative values for the amount will blur the input video, while positive
+values will sharpen. All parameters are optional and default to the
+equivalent of the string '5:5:1.0:0:0:0.0'.
 
 @table @option
 
@@ -281,16 +182,12 @@ and 13, default value is 0.
 Set the chroma matrix vertical size. It can be an integer between 3
 and 13, default value is 0.
 
-@item chroma_amount
+@item luma_amount
 Set the chroma effect strength. It can be a float number between -2.0
 and 5.0, default value is 0.0.
 
 @end table
 
-Negative values for the amount will blur the input video, while positive
-values will sharpen. All parameters are optional and default to the
-equivalent of the string '5:5:1.0:0:0:0.0'.
-
 @example
 # Strong luma sharpen effect parameters
 unsharp=7:7:2.5
@@ -310,7 +207,10 @@ Flip the input video vertically.
 ./ffmpeg -i in.avi -vf "vflip" out.avi
 @end example
 
-@chapter Available video sources
+@c man end VIDEO FILTERS
+
+@chapter Video Sources
+@c man begin VIDEO SOURCES
 
 Below is a description of the currently available video sources.
 
@@ -326,7 +226,10 @@ the configured source.
 The default values of @var{width} and @var{height} are respectively 352
 and 288 (corresponding to the CIF size format).
 
-@chapter Available video sinks
+@c man end VIDEO SOURCES
+
+@chapter Video Sinks
+@c man begin VIDEO SINKS
 
 Below is a description of the currently available video sinks.
 
@@ -336,4 +239,5 @@ Null video sink, do absolutely nothing with the input video. It is
 mainly useful as a template and to be employed in analysis / debugging
 tools.
 
-@bye
+@c man end VIDEO SINKS
+
dissimilarity index 64%
index 6d8607d..8745928 100644 (file)
-\input texinfo @c -*- texinfo -*-
-
-@settitle Libavfilter Documentation
-@titlepage
-@sp 7
-@center @titlefont{Libavfilter Documentation}
-@sp 3
-@end titlepage
-
-
-@chapter Introduction
-
-Libavfilter is the filtering API of FFmpeg. It is the substitute of the
-now deprecated 'vhooks' and started as a Google Summer of Code project.
-
-Integrating libavfilter into the main FFmpeg repository is a work in
-progress. If you wish to try the unfinished development code of
-libavfilter then check it out from the libavfilter repository into
-some directory of your choice by:
-
-@example
-   svn checkout svn://svn.ffmpeg.org/soc/libavfilter
-@end example
-
-And then read the README file in the top directory to learn how to
-integrate it into ffmpeg and ffplay.
-
-But note that there may still be serious bugs in the code and its API
-and ABI should not be considered stable yet!
-
-@chapter Tutorial
-
-In libavfilter, it is possible for filters to have multiple inputs and
-multiple outputs.
-To illustrate the sorts of things that are possible, we can
-use a complex filter graph. For example, the following one:
-
-@example
-input --> split --> fifo -----------------------> overlay --> output
-            |                                        ^
-            |                                        |
-            +------> fifo --> crop --> vflip --------+
-@end example
-
-splits the stream in two streams, sends one stream through the crop filter
-and the vflip filter before merging it back with the other stream by
-overlaying it on top. You can use the following command to achieve this:
-
-@example
-./ffmpeg -i in.avi -s 240x320 -vf "[in] split [T1], fifo, [T2] overlay= 0:240 [out]; [T1] fifo, crop=0:0:-1:240, vflip [T2]
-@end example
-
-where input_video.avi has a vertical resolution of 480 pixels. The
-result will be that in output the top half of the video is mirrored
-onto the bottom half.
-
-Video filters are loaded using the @var{-vf} option passed to
-ffmpeg or to ffplay. Filters in the same linear chain are separated by
-commas. In our example, @var{split, fifo, overlay} are in one linear
-chain, and @var{fifo, crop, vflip} are in another. The points where
-the linear chains join are labeled by names enclosed in square
-brackets. In our example, that is @var{[T1]} and @var{[T2]}. The magic
-labels @var{[in]} and @var{[out]} are the points where video is input
-and output.
-
-Some filters take in input a list of parameters: they are specified
-after the filter name and an equal sign, and are separated each other
-by a semicolon.
-
-There exist so-called @var{source filters} that do not have a video
-input, and we expect in the future some @var{sink filters} that will
-not have video output.
-
-@chapter graph2dot
-
-The @file{graph2dot} program included in the FFmpeg @file{tools}
-directory can be used to parse a filter graph description and issue a
-corresponding textual representation in the dot language.
-
-Invoke the command:
-@example
-graph2dot -h
-@end example
-
-to see how to use @file{graph2dot}.
-
-You can then pass the dot description to the @file{dot} program (from
-the graphviz suite of programs) and obtain a graphical representation
-of the filter graph.
-
-For example the sequence of commands:
-@example
-echo @var{GRAPH_DESCRIPTION} | \
-tools/graph2dot -o graph.tmp && \
-dot -Tpng graph.tmp -o graph.png && \
-display graph.png
-@end example
-
-can be used to create and display an image representing the graph
-described by the @var{GRAPH_DESCRIPTION} string.
-
-@chapter Available video filters
-
-When you configure your FFmpeg build, you can disable any of the
-existing video filters.
-The configure output will show the video filters included in your
-build.
-
-Below is a description of the currently available video filters.
-
-@section crop
-
-Crop the input video to @var{x}:@var{y}:@var{width}:@var{height}.
-
-@example
-./ffmpeg -i in.avi -vf "crop=0:0:0:240" out.avi
-@end example
-
-@var{x} and @var{y} specify the position of the top-left corner of the
-output (non-cropped) area.
-
-The default value of @var{x} and @var{y} is 0.
-
-The @var{width} and @var{height} parameters specify the width and height
-of the output (non-cropped) area.
-
-A value of 0 is interpreted as the maximum possible size contained in
-the area delimited by the top-left corner at position x:y.
-
-For example the parameters:
-
-@example
-"crop=100:100:0:0"
-@end example
-
-will delimit the rectangle with the top-left corner placed at position
-100:100 and the right-bottom corner corresponding to the right-bottom
-corner of the input image.
-
-The default value of @var{width} and @var{height} is 0.
-
-@section format
-
-Convert the input video to one of the specified pixel formats.
-Libavfilter will try to pick one that is supported for the input to
-the next filter.
-
-The filter accepts a list of pixel format names, separated by ``:'',
-for example ``yuv420p:monow:rgb24''.
-
-The following command:
-
-@example
-./ffmpeg -i in.avi -vf "format=yuv420p" out.avi
-@end example
-
-will convert the input video to the format ``yuv420p''.
-
-@section noformat
-
-Force libavfilter not to use any of the specified pixel formats for the
-input to the next filter.
-
-The filter accepts a list of pixel format names, separated by ``:'',
-for example ``yuv420p:monow:rgb24''.
-
-The following command:
-
-@example
-./ffmpeg -i in.avi -vf "noformat=yuv420p, vflip" out.avi
-@end example
-
-will make libavfilter use a format different from ``yuv420p'' for the
-input to the vflip filter.
-
-@section null
-
-Pass the source unchanged to the output.
-
-@section pad
-
-Add paddings to the input image, and places the original input at the
-given coordinates @var{x}, @var{y}.
-
-It accepts the following parameters:
-@var{width}:@var{height}:@var{x}:@var{y}:@var{color}.
-
-Follows the description of the accepted parameters.
-
-@table @option
-@item width, height
-
-Specify the size of the output image with the paddings added. If the
-value for @var{width} or @var{height} is 0, the corresponding input size
-is used for the output.
-
-The default value of @var{width} and @var{height} is 0.
-
-@item x, y
-
-Specify the offsets where to place the input image in the padded area
-with respect to the top/left border of the output image.
-
-The default value of @var{x} and @var{y} is 0.
-
-@item color
-
-Specify the color of the padded area, it can be the name of a color
-(case insensitive match) or a 0xRRGGBB[AA] sequence.
-
-The default value of @var{color} is ``black''.
-
-@end table
-
-@section scale
-
-Scale the input video to @var{width}:@var{height} and/or convert the image format.
-
-For example the command:
-
-@example
-./ffmpeg -i in.avi -vf "scale=200:100" out.avi
-@end example
-
-will scale the input video to a size of 200x100.
-
-If the input image format is different from the format requested by
-the next filter, the scale filter will convert the input to the
-requested format.
-
-If the value for @var{width} or @var{height} is 0, the respective input
-size is used for the output.
-
-If the value for @var{width} or @var{height} is -1, the scale filter will
-use, for the respective output size, a value that maintains the aspect
-ratio of the input image.
-
-The default value of @var{width} and @var{height} is 0.
-
-@section slicify
-
-Pass the images of input video on to next video filter as multiple
-slices.
-
-@example
-./ffmpeg -i in.avi -vf "slicify=32" out.avi
-@end example
-
-The filter accepts the slice height as parameter. If the parameter is
-not specified it will use the default value of 16.
-
-Adding this in the beginning of filter chains should make filtering
-faster due to better use of the memory cache.
-
-@section unsharp
-
-Sharpen or blur the input video.
-
-It accepts the following parameters:
-@var{luma_msize_x}:@var{luma_msize_y}:@var{luma_amount}:@var{chroma_msize_x}:@var{chroma_msize_y}:@var{chroma_amount}
-
-@table @option
-
-@item luma_msize_x
-Set the luma matrix horizontal size. It can be an integer between 3
-and 13, default value is 5.
-
-@item luma_msize_y
-Set the luma matrix vertical size. It can be an integer between 3
-and 13, default value is 5.
-
-@item luma_amount
-Set the luma effect strength. It can be a float number between -2.0
-and 5.0, default value is 1.0.
-
-@item chroma_msize_x
-Set the chroma matrix horizontal size. It can be an integer between 3
-and 13, default value is 0.
-
-@item chroma_msize_y
-Set the chroma matrix vertical size. It can be an integer between 3
-and 13, default value is 0.
-
-@item chroma_amount
-Set the chroma effect strength. It can be a float number between -2.0
-and 5.0, default value is 0.0.
-
-@end table
-
-Negative values for the amount will blur the input video, while positive
-values will sharpen. All parameters are optional and default to the
-equivalent of the string '5:5:1.0:0:0:0.0'.
-
-@example
-# Strong luma sharpen effect parameters
-unsharp=7:7:2.5
-
-# Strong blur of both luma and chroma parameters
-unsharp=7:7:-2:7:7:-2
-
-# Use the default values with @command{ffmpeg}
-./ffmpeg -i in.avi -vf "unsharp" out.mp4
-@end example
-
-@section vflip
-
-Flip the input video vertically.
-
-@example
-./ffmpeg -i in.avi -vf "vflip" out.avi
-@end example
-
-@chapter Available video sources
-
-Below is a description of the currently available video sources.
-
-@section nullsrc
-
-Null video source, never return images. It is mainly useful as a
-template and to be employed in analysis / debugging tools.
-
-It accepts as optional parameter a string of the form
-@var{width}:@var{height}, where @var{width} and @var{height} specify the size of
-the configured source.
-
-The default values of @var{width} and @var{height} are respectively 352
-and 288 (corresponding to the CIF size format).
-
-@chapter Available video sinks
-
-Below is a description of the currently available video sinks.
-
-@section nullsink
-
-Null video sink, do absolutely nothing with the input video. It is
-mainly useful as a template and to be employed in analysis / debugging
-tools.
-
-@bye
+\input texinfo @c -*- texinfo -*-
+
+@settitle Libavfilter Documentation
+@titlepage
+@sp 7
+@center @titlefont{Libavfilter Documentation}
+@sp 3
+@end titlepage
+
+
+@chapter Introduction
+
+Libavfilter is the filtering API of FFmpeg. It is the substitute of the
+now deprecated 'vhooks' and started as a Google Summer of Code project.
+
+Integrating libavfilter into the main FFmpeg repository is a work in
+progress. If you wish to try the unfinished development code of
+libavfilter then check it out from the libavfilter repository into
+some directory of your choice by:
+
+@example
+   svn checkout svn://svn.ffmpeg.org/soc/libavfilter
+@end example
+
+And then read the README file in the top directory to learn how to
+integrate it into ffmpeg and ffplay.
+
+But note that there may still be serious bugs in the code and its API
+and ABI should not be considered stable yet!
+
+@chapter Tutorial
+
+In libavfilter, it is possible for filters to have multiple inputs and
+multiple outputs.
+To illustrate the sorts of things that are possible, we can
+use a complex filter graph. For example, the following one:
+
+@example
+input --> split --> fifo -----------------------> overlay --> output
+            |                                        ^
+            |                                        |
+            +------> fifo --> crop --> vflip --------+
+@end example
+
+splits the stream in two streams, sends one stream through the crop filter
+and the vflip filter before merging it back with the other stream by
+overlaying it on top. You can use the following command to achieve this:
+
+@example
+./ffmpeg -i in.avi -s 240x320 -vf "[in] split [T1], fifo, [T2] overlay= 0:240 [out]; [T1] fifo, crop=0:0:-1:240, vflip [T2]
+@end example
+
+where input_video.avi has a vertical resolution of 480 pixels. The
+result will be that in output the top half of the video is mirrored
+onto the bottom half.
+
+Video filters are loaded using the @var{-vf} option passed to
+ffmpeg or to ffplay. Filters in the same linear chain are separated by
+commas. In our example, @var{split, fifo, overlay} are in one linear
+chain, and @var{fifo, crop, vflip} are in another. The points where
+the linear chains join are labeled by names enclosed in square
+brackets. In our example, that is @var{[T1]} and @var{[T2]}. The magic
+labels @var{[in]} and @var{[out]} are the points where video is input
+and output.
+
+Some filters take in input a list of parameters: they are specified
+after the filter name and an equal sign, and are separated each other
+by a semicolon.
+
+There exist so-called @var{source filters} that do not have a video
+input, and we expect in the future some @var{sink filters} that will
+not have video output.
+
+@chapter graph2dot
+
+The @file{graph2dot} program included in the FFmpeg @file{tools}
+directory can be used to parse a filter graph description and issue a
+corresponding textual representation in the dot language.
+
+Invoke the command:
+@example
+graph2dot -h
+@end example
+
+to see how to use @file{graph2dot}.
+
+You can then pass the dot description to the @file{dot} program (from
+the graphviz suite of programs) and obtain a graphical representation
+of the filter graph.
+
+For example the sequence of commands:
+@example
+echo @var{GRAPH_DESCRIPTION} | \
+tools/graph2dot -o graph.tmp && \
+dot -Tpng graph.tmp -o graph.png && \
+display graph.png
+@end example
+
+can be used to create and display an image representing the graph
+described by the @var{GRAPH_DESCRIPTION} string.
+
+@include filters.texi
+
+@bye