<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on May 18, 2011 by texi2html 1.82
+<!-- Created on June 10, 2011 by texi2html 1.82
texi2html was written by:
Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
<ul class="toc">
<li><a name="toc-Synopsis" href="#Synopsis">1. Synopsis</a></li>
<li><a name="toc-Description" href="#Description">2. Description</a></li>
- <li><a name="toc-Options" href="#Options">3. Options</a>
+ <li><a name="toc-Options-2" href="#Options-2">3. Options</a>
<ul class="toc">
<li><a name="toc-Generic-options" href="#Generic-options">3.1 Generic options</a></li>
<li><a name="toc-Main-options" href="#Main-options">3.2 Main options</a></li>
<li><a name="toc-While-playing" href="#While-playing">3.4 While playing</a></li>
</ul></li>
<li><a name="toc-Expression-Evaluation" href="#Expression-Evaluation">4. Expression Evaluation</a></li>
- <li><a name="toc-Demuxers" href="#Demuxers">5. Demuxers</a>
+ <li><a name="toc-Decoders" href="#Decoders">5. Decoders</a></li>
+ <li><a name="toc-Video-Decoders" href="#Video-Decoders">6. Video Decoders</a>
<ul class="toc">
- <li><a name="toc-image2" href="#image2">5.1 image2</a></li>
- <li><a name="toc-applehttp-1" href="#applehttp-1">5.2 applehttp</a></li>
+ <li><a name="toc-rawvideo" href="#rawvideo">6.1 rawvideo</a>
+ <ul class="toc">
+ <li><a name="toc-Options-1" href="#Options-1">6.1.1 Options</a></li>
+ </ul>
+</li>
</ul></li>
- <li><a name="toc-Muxers" href="#Muxers">6. Muxers</a>
+ <li><a name="toc-Demuxers" href="#Demuxers">7. Demuxers</a>
<ul class="toc">
- <li><a name="toc-crc-1" href="#crc-1">6.1 crc</a></li>
- <li><a name="toc-framecrc-1" href="#framecrc-1">6.2 framecrc</a></li>
- <li><a name="toc-image2-1" href="#image2-1">6.3 image2</a></li>
- <li><a name="toc-mpegts" href="#mpegts">6.4 mpegts</a></li>
- <li><a name="toc-null-1" href="#null-1">6.5 null</a></li>
+ <li><a name="toc-image2-1" href="#image2-1">7.1 image2</a></li>
+ <li><a name="toc-applehttp" href="#applehttp">7.2 applehttp</a></li>
</ul></li>
- <li><a name="toc-Input-Devices" href="#Input-Devices">7. Input Devices</a>
+ <li><a name="toc-Muxers" href="#Muxers">8. Muxers</a>
<ul class="toc">
- <li><a name="toc-alsa-1" href="#alsa-1">7.1 alsa</a></li>
- <li><a name="toc-bktr" href="#bktr">7.2 bktr</a></li>
- <li><a name="toc-dv1394" href="#dv1394">7.3 dv1394</a></li>
- <li><a name="toc-fbdev" href="#fbdev">7.4 fbdev</a></li>
- <li><a name="toc-jack" href="#jack">7.5 jack</a></li>
- <li><a name="toc-libdc1394" href="#libdc1394">7.6 libdc1394</a></li>
- <li><a name="toc-oss-1" href="#oss-1">7.7 oss</a></li>
- <li><a name="toc-sndio-1" href="#sndio-1">7.8 sndio</a></li>
- <li><a name="toc-video4linux-and-video4linux2" href="#video4linux-and-video4linux2">7.9 video4linux and video4linux2</a></li>
- <li><a name="toc-vfwcap" href="#vfwcap">7.10 vfwcap</a></li>
- <li><a name="toc-x11grab" href="#x11grab">7.11 x11grab</a></li>
+ <li><a name="toc-crc-1" href="#crc-1">8.1 crc</a></li>
+ <li><a name="toc-framecrc-1" href="#framecrc-1">8.2 framecrc</a></li>
+ <li><a name="toc-image2" href="#image2">8.3 image2</a></li>
+ <li><a name="toc-mpegts" href="#mpegts">8.4 mpegts</a></li>
+ <li><a name="toc-null" href="#null">8.5 null</a></li>
+ <li><a name="toc-matroska" href="#matroska">8.6 matroska</a></li>
</ul></li>
- <li><a name="toc-Output-Devices" href="#Output-Devices">8. Output Devices</a>
+ <li><a name="toc-Input-Devices" href="#Input-Devices">9. Input Devices</a>
<ul class="toc">
- <li><a name="toc-alsa" href="#alsa">8.1 alsa</a></li>
- <li><a name="toc-oss" href="#oss">8.2 oss</a></li>
- <li><a name="toc-sndio" href="#sndio">8.3 sndio</a></li>
+ <li><a name="toc-alsa" href="#alsa">9.1 alsa</a></li>
+ <li><a name="toc-bktr" href="#bktr">9.2 bktr</a></li>
+ <li><a name="toc-dv1394" href="#dv1394">9.3 dv1394</a></li>
+ <li><a name="toc-fbdev" href="#fbdev">9.4 fbdev</a></li>
+ <li><a name="toc-jack" href="#jack">9.5 jack</a></li>
+ <li><a name="toc-libdc1394" href="#libdc1394">9.6 libdc1394</a></li>
+ <li><a name="toc-oss" href="#oss">9.7 oss</a></li>
+ <li><a name="toc-sndio" href="#sndio">9.8 sndio</a></li>
+ <li><a name="toc-video4linux-and-video4linux2" href="#video4linux-and-video4linux2">9.9 video4linux and video4linux2</a></li>
+ <li><a name="toc-vfwcap" href="#vfwcap">9.10 vfwcap</a></li>
+ <li><a name="toc-x11grab" href="#x11grab">9.11 x11grab</a></li>
</ul></li>
- <li><a name="toc-Protocols" href="#Protocols">9. Protocols</a>
+ <li><a name="toc-Output-Devices" href="#Output-Devices">10. Output Devices</a>
<ul class="toc">
- <li><a name="toc-applehttp" href="#applehttp">9.1 applehttp</a></li>
- <li><a name="toc-concat" href="#concat">9.2 concat</a></li>
- <li><a name="toc-file" href="#file">9.3 file</a></li>
- <li><a name="toc-gopher" href="#gopher">9.4 gopher</a></li>
- <li><a name="toc-http" href="#http">9.5 http</a></li>
- <li><a name="toc-mmst" href="#mmst">9.6 mmst</a></li>
- <li><a name="toc-mmsh" href="#mmsh">9.7 mmsh</a></li>
- <li><a name="toc-md5" href="#md5">9.8 md5</a></li>
- <li><a name="toc-pipe" href="#pipe">9.9 pipe</a></li>
- <li><a name="toc-rtmp" href="#rtmp">9.10 rtmp</a></li>
- <li><a name="toc-rtmp_002c-rtmpe_002c-rtmps_002c-rtmpt_002c-rtmpte" href="#rtmp_002c-rtmpe_002c-rtmps_002c-rtmpt_002c-rtmpte">9.11 rtmp, rtmpe, rtmps, rtmpt, rtmpte</a></li>
- <li><a name="toc-rtp" href="#rtp">9.12 rtp</a></li>
- <li><a name="toc-rtsp" href="#rtsp">9.13 rtsp</a></li>
- <li><a name="toc-sap" href="#sap">9.14 sap</a>
+ <li><a name="toc-alsa-1" href="#alsa-1">10.1 alsa</a></li>
+ <li><a name="toc-oss-1" href="#oss-1">10.2 oss</a></li>
+ <li><a name="toc-sdl" href="#sdl">10.3 sdl</a>
<ul class="toc">
- <li><a name="toc-Muxer" href="#Muxer">9.14.1 Muxer</a></li>
- <li><a name="toc-Demuxer" href="#Demuxer">9.14.2 Demuxer</a></li>
+ <li><a name="toc-Options" href="#Options">10.3.1 Options</a></li>
+ <li><a name="toc-Examples" href="#Examples">10.3.2 Examples</a></li>
</ul></li>
- <li><a name="toc-tcp" href="#tcp">9.15 tcp</a></li>
- <li><a name="toc-udp" href="#udp">9.16 udp</a></li>
+ <li><a name="toc-sndio-1" href="#sndio-1">10.4 sndio</a></li>
</ul></li>
- <li><a name="toc-Filtergraph-description" href="#Filtergraph-description">10. Filtergraph description</a>
+ <li><a name="toc-Protocols" href="#Protocols">11. Protocols</a>
<ul class="toc">
- <li><a name="toc-Filtergraph-syntax" href="#Filtergraph-syntax">10.1 Filtergraph syntax</a></li>
+ <li><a name="toc-applehttp-1" href="#applehttp-1">11.1 applehttp</a></li>
+ <li><a name="toc-concat" href="#concat">11.2 concat</a></li>
+ <li><a name="toc-file" href="#file">11.3 file</a></li>
+ <li><a name="toc-gopher" href="#gopher">11.4 gopher</a></li>
+ <li><a name="toc-http" href="#http">11.5 http</a></li>
+ <li><a name="toc-mmst" href="#mmst">11.6 mmst</a></li>
+ <li><a name="toc-mmsh" href="#mmsh">11.7 mmsh</a></li>
+ <li><a name="toc-md5" href="#md5">11.8 md5</a></li>
+ <li><a name="toc-pipe" href="#pipe">11.9 pipe</a></li>
+ <li><a name="toc-rtmp" href="#rtmp">11.10 rtmp</a></li>
+ <li><a name="toc-rtmp_002c-rtmpe_002c-rtmps_002c-rtmpt_002c-rtmpte" href="#rtmp_002c-rtmpe_002c-rtmps_002c-rtmpt_002c-rtmpte">11.11 rtmp, rtmpe, rtmps, rtmpt, rtmpte</a></li>
+ <li><a name="toc-rtp" href="#rtp">11.12 rtp</a></li>
+ <li><a name="toc-rtsp" href="#rtsp">11.13 rtsp</a></li>
+ <li><a name="toc-sap" href="#sap">11.14 sap</a>
+ <ul class="toc">
+ <li><a name="toc-Muxer" href="#Muxer">11.14.1 Muxer</a></li>
+ <li><a name="toc-Demuxer" href="#Demuxer">11.14.2 Demuxer</a></li>
+ </ul></li>
+ <li><a name="toc-tcp" href="#tcp">11.15 tcp</a></li>
+ <li><a name="toc-udp" href="#udp">11.16 udp</a></li>
</ul></li>
- <li><a name="toc-Audio-Filters" href="#Audio-Filters">11. Audio Filters</a>
+ <li><a name="toc-Filtergraph-description" href="#Filtergraph-description">12. Filtergraph description</a>
<ul class="toc">
- <li><a name="toc-anull" href="#anull">11.1 anull</a></li>
+ <li><a name="toc-Filtergraph-syntax" href="#Filtergraph-syntax">12.1 Filtergraph syntax</a></li>
</ul></li>
- <li><a name="toc-Audio-Sources" href="#Audio-Sources">12. Audio Sources</a>
+ <li><a name="toc-Audio-Filters" href="#Audio-Filters">13. Audio Filters</a>
<ul class="toc">
- <li><a name="toc-anullsrc" href="#anullsrc">12.1 anullsrc</a></li>
+ <li><a name="toc-anull" href="#anull">13.1 anull</a></li>
</ul></li>
- <li><a name="toc-Audio-Sinks" href="#Audio-Sinks">13. Audio Sinks</a>
+ <li><a name="toc-Audio-Sources" href="#Audio-Sources">14. Audio Sources</a>
<ul class="toc">
- <li><a name="toc-anullsink" href="#anullsink">13.1 anullsink</a></li>
+ <li><a name="toc-anullsrc" href="#anullsrc">14.1 anullsrc</a></li>
</ul></li>
- <li><a name="toc-Video-Filters" href="#Video-Filters">14. Video Filters</a>
+ <li><a name="toc-Audio-Sinks" href="#Audio-Sinks">15. Audio Sinks</a>
<ul class="toc">
- <li><a name="toc-blackframe" href="#blackframe">14.1 blackframe</a></li>
- <li><a name="toc-copy" href="#copy">14.2 copy</a></li>
- <li><a name="toc-crop" href="#crop">14.3 crop</a></li>
- <li><a name="toc-cropdetect" href="#cropdetect">14.4 cropdetect</a></li>
- <li><a name="toc-drawbox" href="#drawbox">14.5 drawbox</a></li>
- <li><a name="toc-drawtext" href="#drawtext">14.6 drawtext</a></li>
- <li><a name="toc-fade" href="#fade">14.7 fade</a></li>
- <li><a name="toc-fieldorder" href="#fieldorder">14.8 fieldorder</a></li>
- <li><a name="toc-fifo" href="#fifo">14.9 fifo</a></li>
- <li><a name="toc-format" href="#format">14.10 format</a></li>
- <li><a name="toc-frei0r-1" href="#frei0r-1">14.11 frei0r</a></li>
- <li><a name="toc-gradfun" href="#gradfun">14.12 gradfun</a></li>
- <li><a name="toc-hflip" href="#hflip">14.13 hflip</a></li>
- <li><a name="toc-hqdn3d" href="#hqdn3d">14.14 hqdn3d</a></li>
- <li><a name="toc-mp" href="#mp">14.15 mp</a></li>
- <li><a name="toc-noformat" href="#noformat">14.16 noformat</a></li>
- <li><a name="toc-null" href="#null">14.17 null</a></li>
- <li><a name="toc-ocv" href="#ocv">14.18 ocv</a>
+ <li><a name="toc-anullsink" href="#anullsink">15.1 anullsink</a></li>
+ </ul></li>
+ <li><a name="toc-Video-Filters" href="#Video-Filters">16. Video Filters</a>
+ <ul class="toc">
+ <li><a name="toc-blackframe" href="#blackframe">16.1 blackframe</a></li>
+ <li><a name="toc-copy" href="#copy">16.2 copy</a></li>
+ <li><a name="toc-crop" href="#crop">16.3 crop</a></li>
+ <li><a name="toc-cropdetect" href="#cropdetect">16.4 cropdetect</a></li>
+ <li><a name="toc-drawbox" href="#drawbox">16.5 drawbox</a></li>
+ <li><a name="toc-drawtext" href="#drawtext">16.6 drawtext</a></li>
+ <li><a name="toc-fade" href="#fade">16.7 fade</a></li>
+ <li><a name="toc-fieldorder" href="#fieldorder">16.8 fieldorder</a></li>
+ <li><a name="toc-fifo" href="#fifo">16.9 fifo</a></li>
+ <li><a name="toc-format" href="#format">16.10 format</a></li>
+ <li><a name="toc-frei0r-1" href="#frei0r-1">16.11 frei0r</a></li>
+ <li><a name="toc-gradfun" href="#gradfun">16.12 gradfun</a></li>
+ <li><a name="toc-hflip" href="#hflip">16.13 hflip</a></li>
+ <li><a name="toc-hqdn3d" href="#hqdn3d">16.14 hqdn3d</a></li>
+ <li><a name="toc-mp" href="#mp">16.15 mp</a></li>
+ <li><a name="toc-noformat" href="#noformat">16.16 noformat</a></li>
+ <li><a name="toc-null-1" href="#null-1">16.17 null</a></li>
+ <li><a name="toc-ocv" href="#ocv">16.18 ocv</a>
<ul class="toc">
- <li><a name="toc-dilate-1" href="#dilate-1">14.18.1 dilate</a></li>
- <li><a name="toc-erode" href="#erode">14.18.2 erode</a></li>
- <li><a name="toc-smooth" href="#smooth">14.18.3 smooth</a></li>
+ <li><a name="toc-dilate-1" href="#dilate-1">16.18.1 dilate</a></li>
+ <li><a name="toc-erode" href="#erode">16.18.2 erode</a></li>
+ <li><a name="toc-smooth" href="#smooth">16.18.3 smooth</a></li>
</ul></li>
- <li><a name="toc-overlay" href="#overlay">14.19 overlay</a></li>
- <li><a name="toc-pad" href="#pad">14.20 pad</a></li>
- <li><a name="toc-pixdesctest" href="#pixdesctest">14.21 pixdesctest</a></li>
- <li><a name="toc-scale" href="#scale">14.22 scale</a></li>
- <li><a name="toc-setdar-1" href="#setdar-1">14.23 setdar</a></li>
- <li><a name="toc-setpts" href="#setpts">14.24 setpts</a></li>
- <li><a name="toc-setsar-1" href="#setsar-1">14.25 setsar</a></li>
- <li><a name="toc-settb" href="#settb">14.26 settb</a></li>
- <li><a name="toc-showinfo" href="#showinfo">14.27 showinfo</a></li>
- <li><a name="toc-slicify" href="#slicify">14.28 slicify</a></li>
- <li><a name="toc-transpose" href="#transpose">14.29 transpose</a></li>
- <li><a name="toc-unsharp" href="#unsharp">14.30 unsharp</a></li>
- <li><a name="toc-vflip" href="#vflip">14.31 vflip</a></li>
- <li><a name="toc-yadif" href="#yadif">14.32 yadif</a></li>
+ <li><a name="toc-overlay" href="#overlay">16.19 overlay</a></li>
+ <li><a name="toc-pad" href="#pad">16.20 pad</a></li>
+ <li><a name="toc-pixdesctest" href="#pixdesctest">16.21 pixdesctest</a></li>
+ <li><a name="toc-scale" href="#scale">16.22 scale</a></li>
+ <li><a name="toc-select" href="#select">16.23 select</a></li>
+ <li><a name="toc-setdar-1" href="#setdar-1">16.24 setdar</a></li>
+ <li><a name="toc-setpts" href="#setpts">16.25 setpts</a></li>
+ <li><a name="toc-setsar-1" href="#setsar-1">16.26 setsar</a></li>
+ <li><a name="toc-settb" href="#settb">16.27 settb</a></li>
+ <li><a name="toc-showinfo" href="#showinfo">16.28 showinfo</a></li>
+ <li><a name="toc-slicify" href="#slicify">16.29 slicify</a></li>
+ <li><a name="toc-split" href="#split">16.30 split</a></li>
+ <li><a name="toc-transpose" href="#transpose">16.31 transpose</a></li>
+ <li><a name="toc-unsharp" href="#unsharp">16.32 unsharp</a></li>
+ <li><a name="toc-vflip" href="#vflip">16.33 vflip</a></li>
+ <li><a name="toc-yadif" href="#yadif">16.34 yadif</a></li>
</ul></li>
- <li><a name="toc-Video-Sources" href="#Video-Sources">15. Video Sources</a>
+ <li><a name="toc-Video-Sources" href="#Video-Sources">17. Video Sources</a>
<ul class="toc">
- <li><a name="toc-buffer" href="#buffer">15.1 buffer</a></li>
- <li><a name="toc-color" href="#color">15.2 color</a></li>
- <li><a name="toc-movie" href="#movie">15.3 movie</a></li>
- <li><a name="toc-nullsrc" href="#nullsrc">15.4 nullsrc</a></li>
- <li><a name="toc-frei0r_005fsrc" href="#frei0r_005fsrc">15.5 frei0r_src</a></li>
+ <li><a name="toc-buffer" href="#buffer">17.1 buffer</a></li>
+ <li><a name="toc-color" href="#color">17.2 color</a></li>
+ <li><a name="toc-movie" href="#movie">17.3 movie</a></li>
+ <li><a name="toc-nullsrc" href="#nullsrc">17.4 nullsrc</a></li>
+ <li><a name="toc-frei0r_005fsrc" href="#frei0r_005fsrc">17.5 frei0r_src</a></li>
</ul></li>
- <li><a name="toc-Video-Sinks" href="#Video-Sinks">16. Video Sinks</a>
+ <li><a name="toc-Video-Sinks" href="#Video-Sinks">18. Video Sinks</a>
<ul class="toc">
- <li><a name="toc-nullsink" href="#nullsink">16.1 nullsink</a></li>
+ <li><a name="toc-nullsink" href="#nullsink">18.1 nullsink</a></li>
</ul>
</li>
</ul>
<a name="Synopsis"></a>
<h1 class="chapter"><a href="ffplay.html#toc-Synopsis">1. Synopsis</a></h1>
-<table><tr><td> </td><td><pre class="example">ffplay [options] ‘<tt>input_file</tt>’
+<table><tr><td> </td><td><pre class="example">ffplay [options] [‘<tt>input_file</tt>’]
</pre></td></tr></table>
<a name="Description"></a>
libraries and the SDL library. It is mostly used as a testbed for the
various FFmpeg APIs.
</p>
-<a name="Options"></a>
-<h1 class="chapter"><a href="ffplay.html#toc-Options">3. Options</a></h1>
+<a name="Options-2"></a>
+<h1 class="chapter"><a href="ffplay.html#toc-Options-2">3. Options</a></h1>
<p>All the numerical options, if not specified otherwise, accept in input
a string representing a number, which may contain one of the
also sources and sinks).
</p>
</dd>
+<dt> ‘<samp>-i <var>input_file</var></samp>’</dt>
+<dd><p>Read <var>input_file</var>.
+</p></dd>
</dl>
<a name="Advanced-options"></a>
<dd><p>Show the stream duration, the codec parameters, the current position in
the stream and the audio/video synchronisation drift.
</p></dd>
-<dt> ‘<samp>-debug</samp>’</dt>
-<dd><p>Print specific debug info.
-</p></dd>
<dt> ‘<samp>-bug</samp>’</dt>
<dd><p>Work around bugs.
</p></dd>
-<dt> ‘<samp>-vismv</samp>’</dt>
-<dd><p>Visualize motion vectors.
-</p></dd>
<dt> ‘<samp>-fast</samp>’</dt>
<dd><p>Non-spec-compliant optimizations.
</p></dd>
<dt> ‘<samp>sqrt(expr)</samp>’</dt>
<dd><p>Compute the square root of <var>expr</var>. This is equivalent to
"(<var>expr</var>)^.5".
+</p>
+</dd>
+<dt> ‘<samp>not(expr)</samp>’</dt>
+<dd><p>Return 1.0 if <var>expr</var> is zero, 0.0 otherwise.
+</p>
+</dd>
+<dt> ‘<samp>pow(x, y)</samp>’</dt>
+<dd><p>Compute the power of <var>x</var> elevated <var>y</var>, it is equivalent to
+"(<var>x</var>)^(<var>y</var>)".
</p></dd>
</dl>
</p><table><tr><td> </td><td><pre class="example">A*B + not(A)*C
</pre></td></tr></table>
-<p>When A evaluates to either 1 or 0, that is the same as
-</p><table><tr><td> </td><td><pre class="example">A*B + eq(A,0)*C
-</pre></td></tr></table>
-
<p>In your C code, you can extend the list of unary and binary functions,
and define recognized constants, so that they are available for your
expressions.
</p></dd>
</dl>
+<a name="Decoders"></a>
+<h1 class="chapter"><a href="ffplay.html#toc-Decoders">5. Decoders</a></h1>
+
+<p>Decoders are configured elements in FFmpeg which allow the decoding of
+multimedia streams.
+</p>
+<p>When you configure your FFmpeg build, all the supported native decoders
+are enabled by default. Decoders requiring an external library must be enabled
+manually via the corresponding <code>--enable-lib</code> option. You can list all
+available decoders using the configure option <code>--list-decoders</code>.
+</p>
+<p>You can disable all the decoders with the configure option
+<code>--disable-decoders</code> and selectively enable / disable single decoders
+with the options <code>--enable-decoder=<var>DECODER</var></code> /
+<code>--disable-decoder=<var>DECODER</var></code>.
+</p>
+<p>The option <code>-codecs</code> of the ff* tools will display the list of
+enabled decoders.
+</p>
+
+<a name="Video-Decoders"></a>
+<h1 class="chapter"><a href="ffplay.html#toc-Video-Decoders">6. Video Decoders</a></h1>
+
+<p>A description of some of the currently available video decoders
+follows.
+</p>
+<a name="rawvideo"></a>
+<h2 class="section"><a href="ffplay.html#toc-rawvideo">6.1 rawvideo</a></h2>
+
+<p>Rawvideo decoder.
+</p>
+<p>This decoder decodes rawvideo streams.
+</p>
+<a name="Options-1"></a>
+<h3 class="subsection"><a href="ffplay.html#toc-Options-1">6.1.1 Options</a></h3>
+
+<dl compact="compact">
+<dt> ‘<samp>top <var>top_field_first</var></samp>’</dt>
+<dd><p>Specify the assumed field type of the input video.
+</p><dl compact="compact">
+<dt> ‘<samp>-1</samp>’</dt>
+<dd><p>the video is assumed to be progressive (default)
+</p></dd>
+<dt> ‘<samp>0</samp>’</dt>
+<dd><p>bottom-field-first is assumed
+</p></dd>
+<dt> ‘<samp>1</samp>’</dt>
+<dd><p>top-field-first is assumed
+</p></dd>
+</dl>
+
+</dd>
+</dl>
+
<a name="Demuxers"></a>
-<h1 class="chapter"><a href="ffplay.html#toc-Demuxers">5. Demuxers</a></h1>
+<h1 class="chapter"><a href="ffplay.html#toc-Demuxers">7. Demuxers</a></h1>
<p>Demuxers are configured elements in FFmpeg which allow to read the
multimedia streams from a particular type of file.
</p>
<p>The description of some of the currently available demuxers follows.
</p>
-<a name="image2"></a>
-<h2 class="section"><a href="ffplay.html#toc-image2">5.1 image2</a></h2>
+<a name="image2-1"></a>
+<h2 class="section"><a href="ffplay.html#toc-image2-1">7.1 image2</a></h2>
<p>Image file demuxer.
</p>
</p><table><tr><td> </td><td><pre class="example">ffmpeg -f image2 -i img.jpeg img.png
</pre></td></tr></table>
-<a name="applehttp-1"></a>
-<h2 class="section"><a href="ffplay.html#toc-applehttp-1">5.2 applehttp</a></h2>
+<a name="applehttp"></a>
+<h2 class="section"><a href="ffplay.html#toc-applehttp">7.2 applehttp</a></h2>
<p>Apple HTTP Live Streaming demuxer.
</p>
available in a metadata key named "variant_bitrate".
</p>
<a name="Muxers"></a>
-<h1 class="chapter"><a href="ffplay.html#toc-Muxers">6. Muxers</a></h1>
+<h1 class="chapter"><a href="ffplay.html#toc-Muxers">8. Muxers</a></h1>
<p>Muxers are configured elements in FFmpeg which allow writing
multimedia streams to a particular type of file.
</p>
<p><a name="crc"></a>
</p><a name="crc-1"></a>
-<h2 class="section"><a href="ffplay.html#toc-crc-1">6.1 crc</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-crc-1">8.1 crc</a></h2>
<p>CRC (Cyclic Redundancy Check) testing format.
</p>
</p>
<p><a name="framecrc"></a>
</p><a name="framecrc-1"></a>
-<h2 class="section"><a href="ffplay.html#toc-framecrc-1">6.2 framecrc</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-framecrc-1">8.2 framecrc</a></h2>
<p>Per-frame CRC (Cyclic Redundancy Check) testing format.
</p>
<p>See also the <code>crc</code> muxer (see <a href="#crc">crc</a>).
</p>
-<a name="image2-1"></a>
-<h2 class="section"><a href="ffplay.html#toc-image2-1">6.3 image2</a></h2>
+<a name="image2"></a>
+<h2 class="section"><a href="ffplay.html#toc-image2">8.3 image2</a></h2>
<p>Image file muxer.
</p>
’.U’ and ’.V’ files as required.
</p>
<a name="mpegts"></a>
-<h2 class="section"><a href="ffplay.html#toc-mpegts">6.4 mpegts</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-mpegts">8.4 mpegts</a></h2>
<p>MPEG transport stream muxer.
</p>
-y out.ts
</pre></td></tr></table>
-<a name="null-1"></a>
-<h2 class="section"><a href="ffplay.html#toc-null-1">6.5 null</a></h2>
+<a name="null"></a>
+<h2 class="section"><a href="ffplay.html#toc-null">8.5 null</a></h2>
<p>Null muxer.
</p>
</p><table><tr><td> </td><td><pre class="example">ffmpeg -benchmark -i INPUT -f null -
</pre></td></tr></table>
+<a name="matroska"></a>
+<h2 class="section"><a href="ffplay.html#toc-matroska">8.6 matroska</a></h2>
+
+<p>Matroska container muxer.
+</p>
+<p>This muxer implements the matroska and webm container specs.
+</p>
+<p>The recognized metadata settings in this muxer are:
+</p>
+<dl compact="compact">
+<dt> ‘<samp>title=<var>title name</var></samp>’</dt>
+<dd><p>Name provided to a single track
+</p></dd>
+</dl>
+
+<dl compact="compact">
+<dt> ‘<samp>language=<var>language name</var></samp>’</dt>
+<dd><p>Specifies the language of the track in the Matroska languages form
+</p></dd>
+</dl>
+
+<dl compact="compact">
+<dt> ‘<samp>stereo_mode=<var>mode</var></samp>’</dt>
+<dd><p>Stereo 3D video layout of two views in a single video track
+</p><dl compact="compact">
+<dt> ‘<samp>mono</samp>’</dt>
+<dd><p>video is not stereo
+</p></dd>
+<dt> ‘<samp>left_right</samp>’</dt>
+<dd><p>Both views are arranged side by side, Left-eye view is on the left
+</p></dd>
+<dt> ‘<samp>bottom_top</samp>’</dt>
+<dd><p>Both views are arranged in top-bottom orientation, Left-eye view is at bottom
+</p></dd>
+<dt> ‘<samp>top_bottom</samp>’</dt>
+<dd><p>Both views are arranged in top-bottom orientation, Left-eye view is on top
+</p></dd>
+<dt> ‘<samp>checkerboard_rl</samp>’</dt>
+<dd><p>Each view is arranged in a checkerboard interleaved pattern, Left-eye view being first
+</p></dd>
+<dt> ‘<samp>checkerboard_lr</samp>’</dt>
+<dd><p>Each view is arranged in a checkerboard interleaved pattern, Right-eye view being first
+</p></dd>
+<dt> ‘<samp>row_interleaved_rl</samp>’</dt>
+<dd><p>Each view is constituted by a row based interleaving, Right-eye view is first row
+</p></dd>
+<dt> ‘<samp>row_interleaved_lr</samp>’</dt>
+<dd><p>Each view is constituted by a row based interleaving, Left-eye view is first row
+</p></dd>
+<dt> ‘<samp>col_interleaved_rl</samp>’</dt>
+<dd><p>Both views are arranged in a column based interleaving manner, Right-eye view is first column
+</p></dd>
+<dt> ‘<samp>col_interleaved_lr</samp>’</dt>
+<dd><p>Both views are arranged in a column based interleaving manner, Left-eye view is first column
+</p></dd>
+<dt> ‘<samp>anaglyph_cyan_red</samp>’</dt>
+<dd><p>All frames are in anaglyph format viewable through red-cyan filters
+</p></dd>
+<dt> ‘<samp>right_left</samp>’</dt>
+<dd><p>Both views are arranged side by side, Right-eye view is on the left
+</p></dd>
+<dt> ‘<samp>anaglyph_green_magenta</samp>’</dt>
+<dd><p>All frames are in anaglyph format viewable through green-magenta filters
+</p></dd>
+<dt> ‘<samp>block_lr</samp>’</dt>
+<dd><p>Both eyes laced in one Block, Left-eye view is first
+</p></dd>
+<dt> ‘<samp>block_rl</samp>’</dt>
+<dd><p>Both eyes laced in one Block, Right-eye view is first
+</p></dd>
+</dl>
+</dd>
+</dl>
+
+<p>For example a 3D WebM clip can be created using the following command line:
+</p><table><tr><td> </td><td><pre class="example">ffmpeg -i sample_left_right_clip.mpg -an -vcodec libvpx -metadata stereo_mode=left_right -y stereo_clip.webm
+</pre></td></tr></table>
+
<a name="Input-Devices"></a>
-<h1 class="chapter"><a href="ffplay.html#toc-Input-Devices">7. Input Devices</a></h1>
+<h1 class="chapter"><a href="ffplay.html#toc-Input-Devices">9. Input Devices</a></h1>
<p>Input devices are configured elements in FFmpeg which allow to access
the data coming from a multimedia device attached to your system.
</p>
<p>A description of the currently available input devices follows.
</p>
-<a name="alsa-1"></a>
-<h2 class="section"><a href="ffplay.html#toc-alsa-1">7.1 alsa</a></h2>
+<a name="alsa"></a>
+<h2 class="section"><a href="ffplay.html#toc-alsa">9.1 alsa</a></h2>
<p>ALSA (Advanced Linux Sound Architecture) input device.
</p>
<a href="http://www.alsa-project.org/alsa-doc/alsa-lib/pcm.html">http://www.alsa-project.org/alsa-doc/alsa-lib/pcm.html</a>
</p>
<a name="bktr"></a>
-<h2 class="section"><a href="ffplay.html#toc-bktr">7.2 bktr</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-bktr">9.2 bktr</a></h2>
<p>BSD video input device.
</p>
<a name="dv1394"></a>
-<h2 class="section"><a href="ffplay.html#toc-dv1394">7.3 dv1394</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-dv1394">9.3 dv1394</a></h2>
<p>Linux DV 1394 input device.
</p>
<a name="fbdev"></a>
-<h2 class="section"><a href="ffplay.html#toc-fbdev">7.4 fbdev</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-fbdev">9.4 fbdev</a></h2>
<p>Linux framebuffer input device.
</p>
<p>See also <a href="http://linux-fbdev.sourceforge.net/">http://linux-fbdev.sourceforge.net/</a>, and fbset(1).
</p>
<a name="jack"></a>
-<h2 class="section"><a href="ffplay.html#toc-jack">7.5 jack</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-jack">9.5 jack</a></h2>
<p>JACK input device.
</p>
<a href="http://jackaudio.org/">http://jackaudio.org/</a>
</p>
<a name="libdc1394"></a>
-<h2 class="section"><a href="ffplay.html#toc-libdc1394">7.6 libdc1394</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-libdc1394">9.6 libdc1394</a></h2>
<p>IIDC1394 input device, based on libdc1394 and libraw1394.
</p>
-<a name="oss-1"></a>
-<h2 class="section"><a href="ffplay.html#toc-oss-1">7.7 oss</a></h2>
+<a name="oss"></a>
+<h2 class="section"><a href="ffplay.html#toc-oss">9.7 oss</a></h2>
<p>Open Sound System input device.
</p>
<p>For more information about OSS see:
<a href="http://manuals.opensound.com/usersguide/dsp.html">http://manuals.opensound.com/usersguide/dsp.html</a>
</p>
-<a name="sndio-1"></a>
-<h2 class="section"><a href="ffplay.html#toc-sndio-1">7.8 sndio</a></h2>
+<a name="sndio"></a>
+<h2 class="section"><a href="ffplay.html#toc-sndio">9.8 sndio</a></h2>
<p>sndio input device.
</p>
</pre></td></tr></table>
<a name="video4linux-and-video4linux2"></a>
-<h2 class="section"><a href="ffplay.html#toc-video4linux-and-video4linux2">7.9 video4linux and video4linux2</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-video4linux-and-video4linux2">9.9 video4linux and video4linux2</a></h2>
<p>Video4Linux and Video4Linux2 input video devices.
</p>
</pre></td></tr></table>
<a name="vfwcap"></a>
-<h2 class="section"><a href="ffplay.html#toc-vfwcap">7.10 vfwcap</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-vfwcap">9.10 vfwcap</a></h2>
<p>VfW (Video for Windows) capture input device.
</p>
other filename will be interpreted as device number 0.
</p>
<a name="x11grab"></a>
-<h2 class="section"><a href="ffplay.html#toc-x11grab">7.11 x11grab</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-x11grab">9.11 x11grab</a></h2>
<p>X11 video input device.
</p>
</pre></td></tr></table>
<a name="Output-Devices"></a>
-<h1 class="chapter"><a href="ffplay.html#toc-Output-Devices">8. Output Devices</a></h1>
+<h1 class="chapter"><a href="ffplay.html#toc-Output-Devices">10. Output Devices</a></h1>
<p>Output devices are configured elements in FFmpeg which allow to write
multimedia data to an output device attached to your system.
</p>
<p>A description of the currently available output devices follows.
</p>
-<a name="alsa"></a>
-<h2 class="section"><a href="ffplay.html#toc-alsa">8.1 alsa</a></h2>
+<a name="alsa-1"></a>
+<h2 class="section"><a href="ffplay.html#toc-alsa-1">10.1 alsa</a></h2>
<p>ALSA (Advanced Linux Sound Architecture) output device.
</p>
-<a name="oss"></a>
-<h2 class="section"><a href="ffplay.html#toc-oss">8.2 oss</a></h2>
+<a name="oss-1"></a>
+<h2 class="section"><a href="ffplay.html#toc-oss-1">10.2 oss</a></h2>
<p>OSS (Open Sound System) output device.
</p>
-<a name="sndio"></a>
-<h2 class="section"><a href="ffplay.html#toc-sndio">8.3 sndio</a></h2>
+<a name="sdl"></a>
+<h2 class="section"><a href="ffplay.html#toc-sdl">10.3 sdl</a></h2>
+
+<p>SDL (Simple Directmedia Layer) output device.
+</p>
+<p>This output devices allows to show a video stream in an SDL
+window. Only one SDL window is allowed per application, so you can
+have only one instance of this output device in an application.
+</p>
+<p>To enable this output device you need libsdl installed on your system
+when configuring your build.
+</p>
+<p>For more information about SDL, check:
+<a href="http://www.libsdl.org/">http://www.libsdl.org/</a>
+</p>
+<a name="Options"></a>
+<h3 class="subsection"><a href="ffplay.html#toc-Options">10.3.1 Options</a></h3>
+
+<dl compact="compact">
+<dt> ‘<samp>window_title</samp>’</dt>
+<dd><p>Set the SDL window title, if not specified default to the filename
+specified for the output device.
+</p>
+</dd>
+<dt> ‘<samp>icon_title</samp>’</dt>
+<dd><p>Set the name of the iconified SDL window, if not specified it is set
+to the same value of <var>window_title</var>.
+</p>
+</dd>
+<dt> ‘<samp>window_size</samp>’</dt>
+<dd><p>Set the SDL window size, can be a string of the form
+<var>width</var>x<var>height</var> or a video size abbreviation.
+If not specified it defaults to the size of the input video.
+</p></dd>
+</dl>
+
+<a name="Examples"></a>
+<h3 class="subsection"><a href="ffplay.html#toc-Examples">10.3.2 Examples</a></h3>
+
+<p>The following command shows the ‘<tt>ffmpeg</tt>’ output is an
+SDL window, forcing its size to the qcif format:
+</p><table><tr><td> </td><td><pre class="example">ffmpeg -i INPUT -vcodec rawvideo -pix_fmt yuv420p -window_size qcif -f sdl "SDL output"
+</pre></td></tr></table>
+
+<a name="sndio-1"></a>
+<h2 class="section"><a href="ffplay.html#toc-sndio-1">10.4 sndio</a></h2>
<p>sndio audio output device.
</p>
<a name="Protocols"></a>
-<h1 class="chapter"><a href="ffplay.html#toc-Protocols">9. Protocols</a></h1>
+<h1 class="chapter"><a href="ffplay.html#toc-Protocols">11. Protocols</a></h1>
<p>Protocols are configured elements in FFmpeg which allow to access
resources which require the use of a particular protocol.
</p>
<p>A description of the currently available protocols follows.
</p>
-<a name="applehttp"></a>
-<h2 class="section"><a href="ffplay.html#toc-applehttp">9.1 applehttp</a></h2>
+<a name="applehttp-1"></a>
+<h2 class="section"><a href="ffplay.html#toc-applehttp-1">11.1 applehttp</a></h2>
<p>Read Apple HTTP Live Streaming compliant segmented stream as
a uniform one. The M3U8 playlists describing the segments can be
</pre></td></tr></table>
<a name="concat"></a>
-<h2 class="section"><a href="ffplay.html#toc-concat">9.2 concat</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-concat">11.2 concat</a></h2>
<p>Physical concatenation protocol.
</p>
many shells.
</p>
<a name="file"></a>
-<h2 class="section"><a href="ffplay.html#toc-file">9.3 file</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-file">11.3 file</a></h2>
<p>File access protocol.
</p>
"file:FILE.mpeg".
</p>
<a name="gopher"></a>
-<h2 class="section"><a href="ffplay.html#toc-gopher">9.4 gopher</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-gopher">11.4 gopher</a></h2>
<p>Gopher protocol.
</p>
<a name="http"></a>
-<h2 class="section"><a href="ffplay.html#toc-http">9.5 http</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-http">11.5 http</a></h2>
<p>HTTP (Hyper Text Transfer Protocol).
</p>
<a name="mmst"></a>
-<h2 class="section"><a href="ffplay.html#toc-mmst">9.6 mmst</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-mmst">11.6 mmst</a></h2>
<p>MMS (Microsoft Media Server) protocol over TCP.
</p>
<a name="mmsh"></a>
-<h2 class="section"><a href="ffplay.html#toc-mmsh">9.7 mmsh</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-mmsh">11.7 mmsh</a></h2>
<p>MMS (Microsoft Media Server) protocol over HTTP.
</p>
</pre></td></tr></table>
<a name="md5"></a>
-<h2 class="section"><a href="ffplay.html#toc-md5">9.8 md5</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-md5">11.8 md5</a></h2>
<p>MD5 output protocol.
</p>
be seekable, so they will fail with the MD5 output protocol.
</p>
<a name="pipe"></a>
-<h2 class="section"><a href="ffplay.html#toc-pipe">9.9 pipe</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-pipe">11.9 pipe</a></h2>
<p>UNIX pipe access protocol.
</p>
be seekable, so they will fail with the pipe output protocol.
</p>
<a name="rtmp"></a>
-<h2 class="section"><a href="ffplay.html#toc-rtmp">9.10 rtmp</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-rtmp">11.10 rtmp</a></h2>
<p>Real-Time Messaging Protocol.
</p>
</pre></td></tr></table>
<a name="rtmp_002c-rtmpe_002c-rtmps_002c-rtmpt_002c-rtmpte"></a>
-<h2 class="section"><a href="ffplay.html#toc-rtmp_002c-rtmpe_002c-rtmps_002c-rtmpt_002c-rtmpte">9.11 rtmp, rtmpe, rtmps, rtmpt, rtmpte</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-rtmp_002c-rtmpe_002c-rtmps_002c-rtmpt_002c-rtmpte">11.11 rtmp, rtmpe, rtmps, rtmpt, rtmpte</a></h2>
<p>Real-Time Messaging Protocol and its variants supported through
librtmp.
</pre></td></tr></table>
<a name="rtp"></a>
-<h2 class="section"><a href="ffplay.html#toc-rtp">9.12 rtp</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-rtp">11.12 rtp</a></h2>
<p>Real-Time Protocol.
</p>
<a name="rtsp"></a>
-<h2 class="section"><a href="ffplay.html#toc-rtsp">9.13 rtsp</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-rtsp">11.13 rtsp</a></h2>
<p>RTSP is not technically a protocol handler in libavformat, it is a demuxer
and muxer. The demuxer supports both normal RTSP (with data transferred
</pre></td></tr></table>
<a name="sap"></a>
-<h2 class="section"><a href="ffplay.html#toc-sap">9.14 sap</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-sap">11.14 sap</a></h2>
<p>Session Announcement Protocol (RFC 2974). This is not technically a
protocol handler in libavformat, it is a muxer and demuxer.
streams regularly on a separate port.
</p>
<a name="Muxer"></a>
-<h3 class="subsection"><a href="ffplay.html#toc-Muxer">9.14.1 Muxer</a></h3>
+<h3 class="subsection"><a href="ffplay.html#toc-Muxer">11.14.1 Muxer</a></h3>
<p>The syntax for a SAP url given to the muxer is:
</p><table><tr><td> </td><td><pre class="example">sap://<var>destination</var>[:<var>port</var>][?<var>options</var>]
</pre></td></tr></table>
<a name="Demuxer"></a>
-<h3 class="subsection"><a href="ffplay.html#toc-Demuxer">9.14.2 Demuxer</a></h3>
+<h3 class="subsection"><a href="ffplay.html#toc-Demuxer">11.14.2 Demuxer</a></h3>
<p>The syntax for a SAP url given to the demuxer is:
</p><table><tr><td> </td><td><pre class="example">sap://[<var>address</var>][:<var>port</var>]
</pre></td></tr></table>
<a name="tcp"></a>
-<h2 class="section"><a href="ffplay.html#toc-tcp">9.15 tcp</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-tcp">11.15 tcp</a></h2>
<p>Trasmission Control Protocol.
</p>
</dl>
<a name="udp"></a>
-<h2 class="section"><a href="ffplay.html#toc-udp">9.16 udp</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-udp">11.16 udp</a></h2>
<p>User Datagram Protocol.
</p>
</pre></td></tr></table>
<a name="Filtergraph-description"></a>
-<h1 class="chapter"><a href="ffplay.html#toc-Filtergraph-description">10. Filtergraph description</a></h1>
+<h1 class="chapter"><a href="ffplay.html#toc-Filtergraph-description">12. Filtergraph description</a></h1>
<p>A filtergraph is a directed graph of connected filters. It can contain
cycles, and there can be multiple links between a pair of
output pads is called a "sink".
</p>
<a name="Filtergraph-syntax"></a>
-<h2 class="section"><a href="ffplay.html#toc-Filtergraph-syntax">10.1 Filtergraph syntax</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-Filtergraph-syntax">12.1 Filtergraph syntax</a></h2>
<p>A filtergraph can be represented using a textual representation, which
is recognized by the <code>-vf</code> and <code>-af</code> options of the ff*
<a name="Audio-Filters"></a>
-<h1 class="chapter"><a href="ffplay.html#toc-Audio-Filters">11. Audio Filters</a></h1>
+<h1 class="chapter"><a href="ffplay.html#toc-Audio-Filters">13. Audio Filters</a></h1>
<p>When you configure your FFmpeg build, you can disable any of the
existing filters using –disable-filters.
<p>Below is a description of the currently available audio filters.
</p>
<a name="anull"></a>
-<h2 class="section"><a href="ffplay.html#toc-anull">11.1 anull</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-anull">13.1 anull</a></h2>
<p>Pass the audio source unchanged to the output.
</p>
<a name="Audio-Sources"></a>
-<h1 class="chapter"><a href="ffplay.html#toc-Audio-Sources">12. Audio Sources</a></h1>
+<h1 class="chapter"><a href="ffplay.html#toc-Audio-Sources">14. Audio Sources</a></h1>
<p>Below is a description of the currently available audio sources.
</p>
<a name="anullsrc"></a>
-<h2 class="section"><a href="ffplay.html#toc-anullsrc">12.1 anullsrc</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-anullsrc">14.1 anullsrc</a></h2>
<p>Null audio source, never return audio frames. It is mainly useful as a
template and to be employed in analysis / debugging tools.
<a name="Audio-Sinks"></a>
-<h1 class="chapter"><a href="ffplay.html#toc-Audio-Sinks">13. Audio Sinks</a></h1>
+<h1 class="chapter"><a href="ffplay.html#toc-Audio-Sinks">15. Audio Sinks</a></h1>
<p>Below is a description of the currently available audio sinks.
</p>
<a name="anullsink"></a>
-<h2 class="section"><a href="ffplay.html#toc-anullsink">13.1 anullsink</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-anullsink">15.1 anullsink</a></h2>
<p>Null audio sink, do absolutely nothing with the input audio. It is
mainly useful as a template and to be employed in analysis / debugging
</p>
<a name="Video-Filters"></a>
-<h1 class="chapter"><a href="ffplay.html#toc-Video-Filters">14. Video Filters</a></h1>
+<h1 class="chapter"><a href="ffplay.html#toc-Video-Filters">16. Video Filters</a></h1>
<p>When you configure your FFmpeg build, you can disable any of the
existing filters using –disable-filters.
<p>Below is a description of the currently available video filters.
</p>
<a name="blackframe"></a>
-<h2 class="section"><a href="ffplay.html#toc-blackframe">14.1 blackframe</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-blackframe">16.1 blackframe</a></h2>
<p>Detect frames that are (almost) completely black. Can be useful to
detect chapter transitions or commercials. Output lines consist of
considered black, and defaults to 32.
</p>
<a name="copy"></a>
-<h2 class="section"><a href="ffplay.html#toc-copy">14.2 copy</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-copy">16.2 copy</a></h2>
<p>Copy the input source unchanged to the output. Mainly useful for
testing purposes.
</p>
<a name="crop"></a>
-<h2 class="section"><a href="ffplay.html#toc-crop">14.3 crop</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-crop">16.3 crop</a></h2>
<p>Crop the input video to <var>out_w</var>:<var>out_h</var>:<var>x</var>:<var>y</var>.
</p>
</pre></td></tr></table>
<a name="cropdetect"></a>
-<h2 class="section"><a href="ffplay.html#toc-cropdetect">14.4 cropdetect</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-cropdetect">16.4 cropdetect</a></h2>
<p>Auto-detect crop size.
</p>
</dl>
<a name="drawbox"></a>
-<h2 class="section"><a href="ffplay.html#toc-drawbox">14.5 drawbox</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-drawbox">16.5 drawbox</a></h2>
<p>Draw a colored box on the input image.
</p>
</pre></td></tr></table>
<a name="drawtext"></a>
-<h2 class="section"><a href="ffplay.html#toc-drawtext">14.6 drawtext</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-drawtext">16.6 drawtext</a></h2>
<p>Draw text string or text from specified file on top of video using the
libfreetype library.
<a href="http://www.freetype.org/">http://www.freetype.org/</a>.
</p>
<a name="fade"></a>
-<h2 class="section"><a href="ffplay.html#toc-fade">14.7 fade</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-fade">16.7 fade</a></h2>
<p>Apply fade-in/out effect to input video.
</p>
</pre></td></tr></table>
<a name="fieldorder"></a>
-<h2 class="section"><a href="ffplay.html#toc-fieldorder">14.8 fieldorder</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-fieldorder">16.8 fieldorder</a></h2>
<p>Transform the field order of the input video.
</p>
</pre></td></tr></table>
<a name="fifo"></a>
-<h2 class="section"><a href="ffplay.html#toc-fifo">14.9 fifo</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-fifo">16.9 fifo</a></h2>
<p>Buffer input images and send them when they are requested.
</p>
<p>The filter does not take parameters.
</p>
<a name="format"></a>
-<h2 class="section"><a href="ffplay.html#toc-format">14.10 format</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-format">16.10 format</a></h2>
<p>Convert the input video to one of the specified pixel formats.
Libavfilter will try to pick one that is supported for the input to
<p><a name="frei0r"></a>
</p><a name="frei0r-1"></a>
-<h2 class="section"><a href="ffplay.html#toc-frei0r-1">14.11 frei0r</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-frei0r-1">16.11 frei0r</a></h2>
<p>Apply a frei0r effect to the input video.
</p>
<a href="http://piksel.org/frei0r">http://piksel.org/frei0r</a>
</p>
<a name="gradfun"></a>
-<h2 class="section"><a href="ffplay.html#toc-gradfun">14.12 gradfun</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-gradfun">16.12 gradfun</a></h2>
<p>Fix the banding artifacts that are sometimes introduced into nearly flat
regions by truncation to 8bit colordepth.
</pre></td></tr></table>
<a name="hflip"></a>
-<h2 class="section"><a href="ffplay.html#toc-hflip">14.13 hflip</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-hflip">16.13 hflip</a></h2>
<p>Flip the input video horizontally.
</p>
</pre></td></tr></table>
<a name="hqdn3d"></a>
-<h2 class="section"><a href="ffplay.html#toc-hqdn3d">14.14 hqdn3d</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-hqdn3d">16.14 hqdn3d</a></h2>
<p>High precision/quality 3d denoise filter. This filter aims to reduce
image noise producing smooth images and making still images really
</dl>
<a name="mp"></a>
-<h2 class="section"><a href="ffplay.html#toc-mp">14.15 mp</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-mp">16.15 mp</a></h2>
<p>Apply an MPlayer filter to the input video.
</p>
<dt> <var>pullup</var></dt>
<dt> <var>qp</var></dt>
<dt> <var>rectangle</var></dt>
-<dt> <var>remove_logo</var></dt>
+<dt> <var>remove-logo</var></dt>
<dt> <var>rgbtest</var></dt>
<dt> <var>rotate</var></dt>
<dt> <var>sab</var></dt>
<p>See also mplayer(1), <a href="http://www.mplayerhq.hu/">http://www.mplayerhq.hu/</a>.
</p>
<a name="noformat"></a>
-<h2 class="section"><a href="ffplay.html#toc-noformat">14.16 noformat</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-noformat">16.16 noformat</a></h2>
<p>Force libavfilter not to use any of the specified pixel formats for the
input to the next filter.
noformat=yuv420p:yuv444p:yuv410p
</pre></td></tr></table>
-<a name="null"></a>
-<h2 class="section"><a href="ffplay.html#toc-null">14.17 null</a></h2>
+<a name="null-1"></a>
+<h2 class="section"><a href="ffplay.html#toc-null-1">16.17 null</a></h2>
<p>Pass the video source unchanged to the output.
</p>
<a name="ocv"></a>
-<h2 class="section"><a href="ffplay.html#toc-ocv">14.18 ocv</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-ocv">16.18 ocv</a></h2>
<p>Apply video transform using libopencv.
</p>
</p>
<p><a name="dilate"></a>
</p><a name="dilate-1"></a>
-<h3 class="subsection"><a href="ffplay.html#toc-dilate-1">14.18.1 dilate</a></h3>
+<h3 class="subsection"><a href="ffplay.html#toc-dilate-1">16.18.1 dilate</a></h3>
<p>Dilate an image by using a specific structuring element.
This filter corresponds to the libopencv function <code>cvDilate</code>.
</pre></td></tr></table>
<a name="erode"></a>
-<h3 class="subsection"><a href="ffplay.html#toc-erode">14.18.2 erode</a></h3>
+<h3 class="subsection"><a href="ffplay.html#toc-erode">16.18.2 erode</a></h3>
<p>Erode an image by using a specific structuring element.
This filter corresponds to the libopencv function <code>cvErode</code>.
(see <a href="#dilate">dilate</a>).
</p>
<a name="smooth"></a>
-<h3 class="subsection"><a href="ffplay.html#toc-smooth">14.18.3 smooth</a></h3>
+<h3 class="subsection"><a href="ffplay.html#toc-smooth">16.18.3 smooth</a></h3>
<p>Smooth the input video.
</p>
libopencv function <code>cvSmooth</code>.
</p>
<a name="overlay"></a>
-<h2 class="section"><a href="ffplay.html#toc-overlay">14.19 overlay</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-overlay">16.19 overlay</a></h2>
<p>Overlay one video on top of another.
</p>
approach is yet to be tested.
</p>
<a name="pad"></a>
-<h2 class="section"><a href="ffplay.html#toc-pad">14.20 pad</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-pad">16.20 pad</a></h2>
<p>Add paddings to the input image, and places the original input at the
given coordinates <var>x</var>, <var>y</var>.
</pre></td></tr></table>
<a name="pixdesctest"></a>
-<h2 class="section"><a href="ffplay.html#toc-pixdesctest">14.21 pixdesctest</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-pixdesctest">16.21 pixdesctest</a></h2>
<p>Pixel format descriptor test filter, mainly useful for internal
testing. The output video should be equal to the input video.
<p>can be used to test the monowhite pixel format descriptor definition.
</p>
<a name="scale"></a>
-<h2 class="section"><a href="ffplay.html#toc-scale">14.22 scale</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-scale">16.22 scale</a></h2>
<p>Scale the input video to <var>width</var>:<var>height</var> and/or convert the image format.
</p>
scale='min(500\, iw*3/2):-1'
</pre></td></tr></table>
+<a name="select"></a>
+<h2 class="section"><a href="ffplay.html#toc-select">16.23 select</a></h2>
+<p>Select frames to pass in output.
+</p>
+<p>It accepts in input an expression, which is evaluated for each input
+frame. If the expression is evaluated to a non-zero value, the frame
+is selected and passed to the output, otherwise it is discarded.
+</p>
+<p>The expression can contain the following constants:
+</p>
+<dl compact="compact">
+<dt> ‘<samp>PI</samp>’</dt>
+<dd><p>Greek PI
+</p>
+</dd>
+<dt> ‘<samp>PHI</samp>’</dt>
+<dd><p>golden ratio
+</p>
+</dd>
+<dt> ‘<samp>E</samp>’</dt>
+<dd><p>Euler number
+</p>
+</dd>
+<dt> ‘<samp>n</samp>’</dt>
+<dd><p>the sequential number of the filtered frame, starting from 0
+</p>
+</dd>
+<dt> ‘<samp>selected_n</samp>’</dt>
+<dd><p>the sequential number of the selected frame, starting from 0
+</p>
+</dd>
+<dt> ‘<samp>prev_selected_n</samp>’</dt>
+<dd><p>the sequential number of the last selected frame, NAN if undefined
+</p>
+</dd>
+<dt> ‘<samp>TB</samp>’</dt>
+<dd><p>timebase of the input timestamps
+</p>
+</dd>
+<dt> ‘<samp>pts</samp>’</dt>
+<dd><p>the PTS (Presentation TimeStamp) of the filtered video frame,
+expressed in <var>TB</var> units, NAN if undefined
+</p>
+</dd>
+<dt> ‘<samp>t</samp>’</dt>
+<dd><p>the PTS (Presentation TimeStamp) of the filtered video frame,
+expressed in seconds, NAN if undefined
+</p>
+</dd>
+<dt> ‘<samp>prev_pts</samp>’</dt>
+<dd><p>the PTS of the previously filtered video frame, NAN if undefined
+</p>
+</dd>
+<dt> ‘<samp>prev_selected_pts</samp>’</dt>
+<dd><p>the PTS of the last previously filtered video frame, NAN if undefined
+</p>
+</dd>
+<dt> ‘<samp>prev_selected_t</samp>’</dt>
+<dd><p>the PTS of the last previously selected video frame, NAN if undefined
+</p>
+</dd>
+<dt> ‘<samp>start_pts</samp>’</dt>
+<dd><p>the PTS of the first video frame in the video, NAN if undefined
+</p>
+</dd>
+<dt> ‘<samp>start_t</samp>’</dt>
+<dd><p>the time of the first video frame in the video, NAN if undefined
+</p>
+</dd>
+<dt> ‘<samp>pict_type</samp>’</dt>
+<dd><p>the picture type of the filtered frame, can assume one of the following
+values:
+</p><dl compact="compact">
+<dt> ‘<samp>PICT_TYPE_I</samp>’</dt>
+<dt> ‘<samp>PICT_TYPE_P</samp>’</dt>
+<dt> ‘<samp>PICT_TYPE_B</samp>’</dt>
+<dt> ‘<samp>PICT_TYPE_S</samp>’</dt>
+<dt> ‘<samp>PICT_TYPE_SI</samp>’</dt>
+<dt> ‘<samp>PICT_TYPE_SP</samp>’</dt>
+<dt> ‘<samp>PICT_TYPE_BI</samp>’</dt>
+</dl>
+
+</dd>
+<dt> ‘<samp>interlace_type</samp>’</dt>
+<dd><p>the frame interlace type, can assume one of the following values:
+</p><dl compact="compact">
+<dt> ‘<samp>INTERLACE_TYPE_P</samp>’</dt>
+<dd><p>the frame is progressive (not interlaced)
+</p></dd>
+<dt> ‘<samp>INTERLACE_TYPE_T</samp>’</dt>
+<dd><p>the frame is top-field-first
+</p></dd>
+<dt> ‘<samp>INTERLACE_TYPE_B</samp>’</dt>
+<dd><p>the frame is bottom-field-first
+</p></dd>
+</dl>
+
+</dd>
+<dt> ‘<samp>key</samp>’</dt>
+<dd><p>1 if the filtered frame is a key-frame, 0 otherwise
+</p>
+</dd>
+<dt> ‘<samp>pos</samp>’</dt>
+<dd><p>the position in the file of the filtered frame, -1 if the information
+is not available (e.g. for synthetic video)
+</p></dd>
+</dl>
+
+<p>The default value of the select expression is "1".
+</p>
+<p>Some examples follow:
+</p>
+<table><tr><td> </td><td><pre class="example"># select all frames in input
+select
+
+# the above is the same as:
+select=1
+
+# skip all frames:
+select=0
+
+# select only I-frames
+select='eq(pict_type\,PICT_TYPE_I)'
+
+# select one frame every 100
+select='not(mod(n\,100))'
+
+# select only frames contained in the 10-20 time interval
+select='gte(t\,10)*lte(t\,20)'
+
+# select only I frames contained in the 10-20 time interval
+select='gte(t\,10)*lte(t\,20)*eq(pict_type\,PICT_TYPE_I)'
+
+# select frames with a minimum distance of 10 seconds
+select='isnan(prev_selected_t)+gte(t-prev_selected_t\,10)'
+</pre></td></tr></table>
+
<p><a name="setdar"></a>
</p><a name="setdar-1"></a>
-<h2 class="section"><a href="ffplay.html#toc-setdar-1">14.23 setdar</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-setdar-1">16.24 setdar</a></h2>
<p>Set the Display Aspect Ratio for the filter output video.
</p>
<p>See also the "setsar" filter documentation (see <a href="#setsar">setsar</a>).
</p>
<a name="setpts"></a>
-<h2 class="section"><a href="ffplay.html#toc-setpts">14.24 setpts</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-setpts">16.25 setpts</a></h2>
<p>Change the PTS (presentation timestamp) of the input video frames.
</p>
<p><a name="setsar"></a>
</p><a name="setsar-1"></a>
-<h2 class="section"><a href="ffplay.html#toc-setsar-1">14.25 setsar</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-setsar-1">16.26 setsar</a></h2>
<p>Set the Sample (aka Pixel) Aspect Ratio for the filter output video.
</p>
</pre></td></tr></table>
<a name="settb"></a>
-<h2 class="section"><a href="ffplay.html#toc-settb">14.26 settb</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-settb">16.27 settb</a></h2>
<p>Set the timebase to use for the output frames timestamps.
It is mainly useful for testing timebase configuration.
</pre></td></tr></table>
<a name="showinfo"></a>
-<h2 class="section"><a href="ffplay.html#toc-showinfo">14.27 showinfo</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-showinfo">16.28 showinfo</a></h2>
<p>Show a line containing various information for each input video frame.
The input video is not modified.
</dl>
<a name="slicify"></a>
-<h2 class="section"><a href="ffplay.html#toc-slicify">14.28 slicify</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-slicify">16.29 slicify</a></h2>
<p>Pass the images of input video on to next video filter as multiple
slices.
<p>Adding this in the beginning of filter chains should make filtering
faster due to better use of the memory cache.
</p>
+<a name="split"></a>
+<h2 class="section"><a href="ffplay.html#toc-split">16.30 split</a></h2>
+
+<p>Pass on the input video to two outputs. Both outputs are identical to
+the input video.
+</p>
+<p>For example:
+</p><table><tr><td> </td><td><pre class="example">[in] split [splitout1][splitout2];
+[splitout1] crop=100:100:0:0 [cropout];
+[splitout2] pad=200:200:100:100 [padout];
+</pre></td></tr></table>
+
+<p>will create two separate outputs from the same input, one cropped and
+one padded.
+</p>
<a name="transpose"></a>
-<h2 class="section"><a href="ffplay.html#toc-transpose">14.29 transpose</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-transpose">16.31 transpose</a></h2>
<p>Transpose rows with columns in the input video and optionally flip it.
</p>
</dl>
<a name="unsharp"></a>
-<h2 class="section"><a href="ffplay.html#toc-unsharp">14.30 unsharp</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-unsharp">16.32 unsharp</a></h2>
<p>Sharpen or blur the input video.
</p>
</pre></td></tr></table>
<a name="vflip"></a>
-<h2 class="section"><a href="ffplay.html#toc-vflip">14.31 vflip</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-vflip">16.33 vflip</a></h2>
<p>Flip the input video vertically.
</p>
</pre></td></tr></table>
<a name="yadif"></a>
-<h2 class="section"><a href="ffplay.html#toc-yadif">14.32 yadif</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-yadif">16.34 yadif</a></h2>
<p>Deinterlace the input video ("yadif" means "yet another deinterlacing
filter").
</p>
<a name="Video-Sources"></a>
-<h1 class="chapter"><a href="ffplay.html#toc-Video-Sources">15. Video Sources</a></h1>
+<h1 class="chapter"><a href="ffplay.html#toc-Video-Sources">17. Video Sources</a></h1>
<p>Below is a description of the currently available video sources.
</p>
<a name="buffer"></a>
-<h2 class="section"><a href="ffplay.html#toc-buffer">15.1 buffer</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-buffer">17.1 buffer</a></h2>
<p>Buffer video frames, and make them available to the filter chain.
</p>
through the interface defined in ‘<tt>libavfilter/vsrc_buffer.h</tt>’.
</p>
<p>It accepts the following parameters:
-<var>width</var>:<var>height</var>:<var>pix_fmt_string</var>:<var>timebase_num</var>:<var>timebase_den</var>:<var>sample_aspect_ratio_num</var>:<var>sample_aspect_ratio.den</var>
+<var>width</var>:<var>height</var>:<var>pix_fmt_string</var>:<var>timebase_num</var>:<var>timebase_den</var>:<var>sample_aspect_ratio_num</var>:<var>sample_aspect_ratio.den</var>:<var>scale_params</var>
</p>
-<p>All the parameters need to be explicitely defined.
+<p>All the parameters but <var>scale_params</var> need to be explicitely
+defined.
</p>
<p>Follows the list of the accepted parameters.
</p>
<dt> ‘<samp>sample_aspect_ratio.num, sample_aspect_ratio.den</samp>’</dt>
<dd><p>Specify numerator and denominator of the sample aspect ratio assumed
by the video frames.
+</p>
+</dd>
+<dt> ‘<samp>scale_params</samp>’</dt>
+<dd><p>Specify the optional parameters to be used for the scale filter which
+is automatically inserted when an input change is detected in the
+input size or format.
</p></dd>
</dl>
Since the pixel format with name "yuv410p" corresponds to the number 6
(check the enum PixelFormat definition in ‘<tt>libavutil/pixfmt.h</tt>’),
this example corresponds to:
-</p><table><tr><td> </td><td><pre class="example">buffer=320:240:6:1:24
+</p><table><tr><td> </td><td><pre class="example">buffer=320:240:6:1:24:1:1
</pre></td></tr></table>
<a name="color"></a>
-<h2 class="section"><a href="ffplay.html#toc-color">15.2 color</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-color">17.2 color</a></h2>
<p>Provide an uniformly colored input.
</p>
</pre></td></tr></table>
<a name="movie"></a>
-<h2 class="section"><a href="ffplay.html#toc-movie">15.3 movie</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-movie">17.3 movie</a></h2>
<p>Read a video stream from a movie container.
</p>
</pre></td></tr></table>
<a name="nullsrc"></a>
-<h2 class="section"><a href="ffplay.html#toc-nullsrc">15.4 nullsrc</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-nullsrc">17.4 nullsrc</a></h2>
<p>Null video source, never return images. It is mainly useful as a
template and to be employed in analysis / debugging tools.
"AVTB" (the default timebase), and defaults to the value "AVTB".
</p>
<a name="frei0r_005fsrc"></a>
-<h2 class="section"><a href="ffplay.html#toc-frei0r_005fsrc">15.5 frei0r_src</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-frei0r_005fsrc">17.5 frei0r_src</a></h2>
<p>Provide a frei0r source.
</p>
<a name="Video-Sinks"></a>
-<h1 class="chapter"><a href="ffplay.html#toc-Video-Sinks">16. Video Sinks</a></h1>
+<h1 class="chapter"><a href="ffplay.html#toc-Video-Sinks">18. Video Sinks</a></h1>
<p>Below is a description of the currently available video sinks.
</p>
<a name="nullsink"></a>
-<h2 class="section"><a href="ffplay.html#toc-nullsink">16.1 nullsink</a></h2>
+<h2 class="section"><a href="ffplay.html#toc-nullsink">18.1 nullsink</a></h2>
<p>Null video sink, do absolutely nothing with the input video. It is
mainly useful as a template and to be employed in analysis / debugging
<hr size="1">
<p>
<font size="-1">
- This document was generated by <em>Kyle Schwarz</em> on <em>May 18, 2011</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ This document was generated by <em>Kyle Schwarz</em> on <em>June 10, 2011</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
</font>
<br>