summaryrefslogtreecommitdiff
path: root/doc/libavfilter.texi
diff options
context:
space:
mode:
authorStefano Sabatini <stefano.sabatini-lala@poste.it>2009-10-21 18:22:20 +0000
committerStefano Sabatini <stefano.sabatini-lala@poste.it>2009-10-21 18:22:20 +0000
commitdba755faccc8903affd81502a692ce7f483454a9 (patch)
tree7b02556531aa76cd93e9076f4485485a2aafb476 /doc/libavfilter.texi
parenta3faf694a2df8a2f1b4d39042ed7a5ef5b351b22 (diff)
Rename vfilters.texi to libavfilter.texi, as the file is meant to
document libavfilter and not only its video filtering facilities. Originally committed as revision 20338 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'doc/libavfilter.texi')
-rw-r--r--doc/libavfilter.texi87
1 files changed, 87 insertions, 0 deletions
diff --git a/doc/libavfilter.texi b/doc/libavfilter.texi
new file mode 100644
index 0000000000..f8189f1c38
--- /dev/null
+++ b/doc/libavfilter.texi
@@ -0,0 +1,87 @@
+\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 -vfilters "[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{-vfilters} 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 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 null
+
+Pass the source unchanged to the output.
+
+@bye