\r
Zeranoe's FFmpeg Builds Home Page: http://ffmpeg.zeranoe.com/builds/\r
\r
-Built on May 18 2011 04:43:18\r
+Built on Jun 10 2011 22:11:19\r
\r
-FFmpeg version git-b4bcd1e\r
- libavutil 51. 2. 1 / 51. 2. 1\r
- libavcodec 53. 6. 0 / 53. 6. 0\r
- libavformat 53. 1. 0 / 53. 1. 0\r
- libavdevice 53. 0. 0 / 53. 0. 0\r
- libavfilter 2. 5. 0 / 2. 5. 0\r
- libswscale 0. 14. 0 / 0. 14. 0\r
+FFmpeg version git-39dbe9b\r
+ libavutil 51. 8. 0 / 51. 8. 0\r
+ libavcodec 53. 7. 0 / 53. 7. 0\r
+ libavformat 53. 3. 0 / 53. 3. 0\r
+ libavdevice 53. 1. 1 / 53. 1. 1\r
+ libavfilter 2. 15. 0 / 2. 15. 0\r
+ libswscale 0. 14. 1 / 0. 14. 1\r
libpostproc 51. 2. 0 / 51. 2. 0\r
\r
FFmpeg configured with:\r
Ubuntu Desktop 11.04: http://www.ubuntu.com/desktop\r
\r
The cross-compile toolchain used to compile this FFmpeg was:\r
- MinGW-w64 r4161: http://mingw-w64.sourceforge.net/\r
+ MinGW-w64 r4186: http://mingw-w64.sourceforge.net/\r
+ winpthreads (part of MinGW-w64)\r
\r
The GCC version used to compile this FFmpeg was:\r
GCC 4.5.3: http://gcc.gnu.org/\r
Theora 1.1.1 http://www.theora.org/\r
Vorbis 1.3.2 http://www.vorbis.com/\r
libvpx 0.9.6 http://www.webmproject.org/code/\r
- x264 git-b5a8ad7e http://www.videolan.org/developers/x264.html\r
+ x264 git-c1e60b90 http://www.videolan.org/developers/x264.html\r
XAVS r51 http://xavs.sourceforge.net/\r
- Xvid 1.3.1 http://www.xvid.org/\r
+ Xvid 1.3.2 http://www.xvid.org/\r
zlib 1.2.5 http://zlib.net/\r
\r
License for each library can be found in the licenses folder.\r
<!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>
improves readability.
</li><li>
Consider to add a regression test for your code.
+</li><li>
+ If you added YASM code please check that things still work with –disable-yasm
</li></ol>
<a name="Patch-review-process"></a>
<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>
<!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>
<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>
<!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-4" href="#Options-4">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-Video-and-Audio-file-format-conversion" href="#Video-and-Audio-file-format-conversion">5.3 Video and Audio file format conversion</a></li>
</ul></li>
<li><a name="toc-Expression-Evaluation" href="#Expression-Evaluation">6. Expression Evaluation</a></li>
- <li><a name="toc-Encoders" href="#Encoders">7. Encoders</a>
+ <li><a name="toc-Decoders" href="#Decoders">7. Decoders</a></li>
+ <li><a name="toc-Video-Decoders" href="#Video-Decoders">8. Video Decoders</a>
<ul class="toc">
- <li><a name="toc-Audio-Encoders" href="#Audio-Encoders">7.1 Audio Encoders</a>
+ <li><a name="toc-rawvideo" href="#rawvideo">8.1 rawvideo</a>
<ul class="toc">
- <li><a name="toc-ac3-and-ac3_005ffixed" href="#ac3-and-ac3_005ffixed">7.1.1 ac3 and ac3_fixed</a></li>
+ <li><a name="toc-Options" href="#Options">8.1.1 Options</a></li>
</ul>
</li>
</ul></li>
- <li><a name="toc-Demuxers" href="#Demuxers">8. Demuxers</a>
+ <li><a name="toc-Encoders" href="#Encoders">9. Encoders</a></li>
+ <li><a name="toc-Audio-Encoders" href="#Audio-Encoders">10. Audio Encoders</a>
<ul class="toc">
- <li><a name="toc-image2-1" href="#image2-1">8.1 image2</a></li>
- <li><a name="toc-applehttp-1" href="#applehttp-1">8.2 applehttp</a></li>
+ <li><a name="toc-ac3-and-ac3_005ffixed" href="#ac3-and-ac3_005ffixed">10.1 ac3 and ac3_fixed</a>
+ <ul class="toc">
+ <li><a name="toc-AC_002d3-Metadata" href="#AC_002d3-Metadata">10.1.1 AC-3 Metadata</a>
+ <ul class="toc">
+ <li><a name="toc-Metadata-Control-Options" href="#Metadata-Control-Options">10.1.1.1 Metadata Control Options</a></li>
+ <li><a name="toc-Downmix-Levels" href="#Downmix-Levels">10.1.1.2 Downmix Levels</a></li>
+ <li><a name="toc-Audio-Production-Information" href="#Audio-Production-Information">10.1.1.3 Audio Production Information</a></li>
+ <li><a name="toc-Other-Metadata-Options" href="#Other-Metadata-Options">10.1.1.4 Other Metadata Options</a></li>
+ </ul></li>
+ <li><a name="toc-Extended-Bitstream-Information" href="#Extended-Bitstream-Information">10.1.2 Extended Bitstream Information</a>
+ <ul class="toc">
+ <li><a name="toc-Extended-Bitstream-Information-_002d-Part-1" href="#Extended-Bitstream-Information-_002d-Part-1">10.1.2.1 Extended Bitstream Information - Part 1</a></li>
+ <li><a name="toc-Extended-Bitstream-Information-_002d-Part-2" href="#Extended-Bitstream-Information-_002d-Part-2">10.1.2.2 Extended Bitstream Information - Part 2</a></li>
+ </ul></li>
+ <li><a name="toc-Other-AC_002d3-Encoding-Options" href="#Other-AC_002d3-Encoding-Options">10.1.3 Other AC-3 Encoding Options</a></li>
+ <li><a name="toc-Floating_002dPoint_002dOnly-AC_002d3-Encoding-Options" href="#Floating_002dPoint_002dOnly-AC_002d3-Encoding-Options">10.1.4 Floating-Point-Only AC-3 Encoding Options</a></li>
+ </ul>
+</li>
</ul></li>
- <li><a name="toc-Muxers" href="#Muxers">9. Muxers</a>
+ <li><a name="toc-Video-Encoders" href="#Video-Encoders">11. Video Encoders</a>
<ul class="toc">
- <li><a name="toc-crc-1" href="#crc-1">9.1 crc</a></li>
- <li><a name="toc-framecrc-1" href="#framecrc-1">9.2 framecrc</a></li>
- <li><a name="toc-image2" href="#image2">9.3 image2</a></li>
- <li><a name="toc-mpegts" href="#mpegts">9.4 mpegts</a></li>
- <li><a name="toc-null" href="#null">9.5 null</a></li>
+ <li><a name="toc-libvpx" href="#libvpx">11.1 libvpx</a>
+ <ul class="toc">
+ <li><a name="toc-Options-1" href="#Options-1">11.1.1 Options</a></li>
+ </ul></li>
+ <li><a name="toc-libx264" href="#libx264">11.2 libx264</a>
+ <ul class="toc">
+ <li><a name="toc-Options-2" href="#Options-2">11.2.1 Options</a></li>
+ </ul>
+</li>
</ul></li>
- <li><a name="toc-Input-Devices" href="#Input-Devices">10. Input Devices</a>
+ <li><a name="toc-Demuxers" href="#Demuxers">12. Demuxers</a>
<ul class="toc">
- <li><a name="toc-alsa" href="#alsa">10.1 alsa</a></li>
- <li><a name="toc-bktr" href="#bktr">10.2 bktr</a></li>
- <li><a name="toc-dv1394" href="#dv1394">10.3 dv1394</a></li>
- <li><a name="toc-fbdev" href="#fbdev">10.4 fbdev</a></li>
- <li><a name="toc-jack" href="#jack">10.5 jack</a></li>
- <li><a name="toc-libdc1394" href="#libdc1394">10.6 libdc1394</a></li>
- <li><a name="toc-oss" href="#oss">10.7 oss</a></li>
- <li><a name="toc-sndio-1" href="#sndio-1">10.8 sndio</a></li>
- <li><a name="toc-video4linux-and-video4linux2" href="#video4linux-and-video4linux2">10.9 video4linux and video4linux2</a></li>
- <li><a name="toc-vfwcap" href="#vfwcap">10.10 vfwcap</a></li>
- <li><a name="toc-x11grab" href="#x11grab">10.11 x11grab</a></li>
+ <li><a name="toc-image2" href="#image2">12.1 image2</a></li>
+ <li><a name="toc-applehttp" href="#applehttp">12.2 applehttp</a></li>
</ul></li>
- <li><a name="toc-Output-Devices" href="#Output-Devices">11. Output Devices</a>
+ <li><a name="toc-Muxers" href="#Muxers">13. Muxers</a>
<ul class="toc">
- <li><a name="toc-alsa-1" href="#alsa-1">11.1 alsa</a></li>
- <li><a name="toc-oss-1" href="#oss-1">11.2 oss</a></li>
- <li><a name="toc-sndio" href="#sndio">11.3 sndio</a></li>
+ <li><a name="toc-crc-1" href="#crc-1">13.1 crc</a></li>
+ <li><a name="toc-framecrc-1" href="#framecrc-1">13.2 framecrc</a></li>
+ <li><a name="toc-image2-1" href="#image2-1">13.3 image2</a></li>
+ <li><a name="toc-mpegts" href="#mpegts">13.4 mpegts</a></li>
+ <li><a name="toc-null" href="#null">13.5 null</a></li>
+ <li><a name="toc-matroska" href="#matroska">13.6 matroska</a></li>
</ul></li>
- <li><a name="toc-Protocols" href="#Protocols">12. Protocols</a>
+ <li><a name="toc-Input-Devices" href="#Input-Devices">14. Input Devices</a>
<ul class="toc">
- <li><a name="toc-applehttp" href="#applehttp">12.1 applehttp</a></li>
- <li><a name="toc-concat" href="#concat">12.2 concat</a></li>
- <li><a name="toc-file" href="#file">12.3 file</a></li>
- <li><a name="toc-gopher" href="#gopher">12.4 gopher</a></li>
- <li><a name="toc-http" href="#http">12.5 http</a></li>
- <li><a name="toc-mmst" href="#mmst">12.6 mmst</a></li>
- <li><a name="toc-mmsh" href="#mmsh">12.7 mmsh</a></li>
- <li><a name="toc-md5" href="#md5">12.8 md5</a></li>
- <li><a name="toc-pipe" href="#pipe">12.9 pipe</a></li>
- <li><a name="toc-rtmp" href="#rtmp">12.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">12.11 rtmp, rtmpe, rtmps, rtmpt, rtmpte</a></li>
- <li><a name="toc-rtp" href="#rtp">12.12 rtp</a></li>
- <li><a name="toc-rtsp" href="#rtsp">12.13 rtsp</a></li>
- <li><a name="toc-sap" href="#sap">12.14 sap</a>
+ <li><a name="toc-alsa-1" href="#alsa-1">14.1 alsa</a></li>
+ <li><a name="toc-bktr" href="#bktr">14.2 bktr</a></li>
+ <li><a name="toc-dv1394" href="#dv1394">14.3 dv1394</a></li>
+ <li><a name="toc-fbdev" href="#fbdev">14.4 fbdev</a></li>
+ <li><a name="toc-jack" href="#jack">14.5 jack</a></li>
+ <li><a name="toc-libdc1394" href="#libdc1394">14.6 libdc1394</a></li>
+ <li><a name="toc-oss-1" href="#oss-1">14.7 oss</a></li>
+ <li><a name="toc-sndio" href="#sndio">14.8 sndio</a></li>
+ <li><a name="toc-video4linux-and-video4linux2" href="#video4linux-and-video4linux2">14.9 video4linux and video4linux2</a></li>
+ <li><a name="toc-vfwcap" href="#vfwcap">14.10 vfwcap</a></li>
+ <li><a name="toc-x11grab" href="#x11grab">14.11 x11grab</a></li>
+ </ul></li>
+ <li><a name="toc-Output-Devices" href="#Output-Devices">15. Output Devices</a>
+ <ul class="toc">
+ <li><a name="toc-alsa" href="#alsa">15.1 alsa</a></li>
+ <li><a name="toc-oss" href="#oss">15.2 oss</a></li>
+ <li><a name="toc-sdl" href="#sdl">15.3 sdl</a>
<ul class="toc">
- <li><a name="toc-Muxer" href="#Muxer">12.14.1 Muxer</a></li>
- <li><a name="toc-Demuxer" href="#Demuxer">12.14.2 Demuxer</a></li>
+ <li><a name="toc-Options-3" href="#Options-3">15.3.1 Options</a></li>
+ <li><a name="toc-Examples-1" href="#Examples-1">15.3.2 Examples</a></li>
</ul></li>
- <li><a name="toc-tcp" href="#tcp">12.15 tcp</a></li>
- <li><a name="toc-udp" href="#udp">12.16 udp</a></li>
+ <li><a name="toc-sndio-1" href="#sndio-1">15.4 sndio</a></li>
</ul></li>
- <li><a name="toc-Bitstream-Filters" href="#Bitstream-Filters">13. Bitstream Filters</a>
+ <li><a name="toc-Protocols" href="#Protocols">16. Protocols</a>
<ul class="toc">
- <li><a name="toc-aac_005fadtstoasc" href="#aac_005fadtstoasc">13.1 aac_adtstoasc</a></li>
- <li><a name="toc-chomp" href="#chomp">13.2 chomp</a></li>
- <li><a name="toc-dump_005fextradata" href="#dump_005fextradata">13.3 dump_extradata</a></li>
- <li><a name="toc-h264_005fmp4toannexb" href="#h264_005fmp4toannexb">13.4 h264_mp4toannexb</a></li>
- <li><a name="toc-imx_005fdump_005fheader" href="#imx_005fdump_005fheader">13.5 imx_dump_header</a></li>
- <li><a name="toc-mjpeg2jpeg" href="#mjpeg2jpeg">13.6 mjpeg2jpeg</a></li>
- <li><a name="toc-mjpega_005fdump_005fheader" href="#mjpega_005fdump_005fheader">13.7 mjpega_dump_header</a></li>
- <li><a name="toc-movsub" href="#movsub">13.8 movsub</a></li>
- <li><a name="toc-mp3_005fheader_005fcompress" href="#mp3_005fheader_005fcompress">13.9 mp3_header_compress</a></li>
- <li><a name="toc-mp3_005fheader_005fdecompress" href="#mp3_005fheader_005fdecompress">13.10 mp3_header_decompress</a></li>
- <li><a name="toc-noise" href="#noise">13.11 noise</a></li>
- <li><a name="toc-remove_005fextradata" href="#remove_005fextradata">13.12 remove_extradata</a></li>
+ <li><a name="toc-applehttp-1" href="#applehttp-1">16.1 applehttp</a></li>
+ <li><a name="toc-concat" href="#concat">16.2 concat</a></li>
+ <li><a name="toc-file" href="#file">16.3 file</a></li>
+ <li><a name="toc-gopher" href="#gopher">16.4 gopher</a></li>
+ <li><a name="toc-http" href="#http">16.5 http</a></li>
+ <li><a name="toc-mmst" href="#mmst">16.6 mmst</a></li>
+ <li><a name="toc-mmsh" href="#mmsh">16.7 mmsh</a></li>
+ <li><a name="toc-md5" href="#md5">16.8 md5</a></li>
+ <li><a name="toc-pipe" href="#pipe">16.9 pipe</a></li>
+ <li><a name="toc-rtmp" href="#rtmp">16.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">16.11 rtmp, rtmpe, rtmps, rtmpt, rtmpte</a></li>
+ <li><a name="toc-rtp" href="#rtp">16.12 rtp</a></li>
+ <li><a name="toc-rtsp" href="#rtsp">16.13 rtsp</a></li>
+ <li><a name="toc-sap" href="#sap">16.14 sap</a>
+ <ul class="toc">
+ <li><a name="toc-Muxer" href="#Muxer">16.14.1 Muxer</a></li>
+ <li><a name="toc-Demuxer" href="#Demuxer">16.14.2 Demuxer</a></li>
+ </ul></li>
+ <li><a name="toc-tcp" href="#tcp">16.15 tcp</a></li>
+ <li><a name="toc-udp" href="#udp">16.16 udp</a></li>
+ </ul></li>
+ <li><a name="toc-Bitstream-Filters" href="#Bitstream-Filters">17. Bitstream Filters</a>
+ <ul class="toc">
+ <li><a name="toc-aac_005fadtstoasc" href="#aac_005fadtstoasc">17.1 aac_adtstoasc</a></li>
+ <li><a name="toc-chomp" href="#chomp">17.2 chomp</a></li>
+ <li><a name="toc-dump_005fextradata" href="#dump_005fextradata">17.3 dump_extradata</a></li>
+ <li><a name="toc-h264_005fmp4toannexb" href="#h264_005fmp4toannexb">17.4 h264_mp4toannexb</a></li>
+ <li><a name="toc-imx_005fdump_005fheader" href="#imx_005fdump_005fheader">17.5 imx_dump_header</a></li>
+ <li><a name="toc-mjpeg2jpeg" href="#mjpeg2jpeg">17.6 mjpeg2jpeg</a></li>
+ <li><a name="toc-mjpega_005fdump_005fheader" href="#mjpega_005fdump_005fheader">17.7 mjpega_dump_header</a></li>
+ <li><a name="toc-movsub" href="#movsub">17.8 movsub</a></li>
+ <li><a name="toc-mp3_005fheader_005fcompress" href="#mp3_005fheader_005fcompress">17.9 mp3_header_compress</a></li>
+ <li><a name="toc-mp3_005fheader_005fdecompress" href="#mp3_005fheader_005fdecompress">17.10 mp3_header_decompress</a></li>
+ <li><a name="toc-noise" href="#noise">17.11 noise</a></li>
+ <li><a name="toc-remove_005fextradata" href="#remove_005fextradata">17.12 remove_extradata</a></li>
</ul></li>
- <li><a name="toc-Filtergraph-description" href="#Filtergraph-description">14. Filtergraph description</a>
+ <li><a name="toc-Filtergraph-description" href="#Filtergraph-description">18. Filtergraph description</a>
<ul class="toc">
- <li><a name="toc-Filtergraph-syntax" href="#Filtergraph-syntax">14.1 Filtergraph syntax</a></li>
+ <li><a name="toc-Filtergraph-syntax" href="#Filtergraph-syntax">18.1 Filtergraph syntax</a></li>
</ul></li>
- <li><a name="toc-Audio-Filters" href="#Audio-Filters">15. Audio Filters</a>
+ <li><a name="toc-Audio-Filters" href="#Audio-Filters">19. Audio Filters</a>
<ul class="toc">
- <li><a name="toc-anull" href="#anull">15.1 anull</a></li>
+ <li><a name="toc-anull" href="#anull">19.1 anull</a></li>
</ul></li>
- <li><a name="toc-Audio-Sources" href="#Audio-Sources">16. Audio Sources</a>
+ <li><a name="toc-Audio-Sources" href="#Audio-Sources">20. Audio Sources</a>
<ul class="toc">
- <li><a name="toc-anullsrc" href="#anullsrc">16.1 anullsrc</a></li>
+ <li><a name="toc-anullsrc" href="#anullsrc">20.1 anullsrc</a></li>
</ul></li>
- <li><a name="toc-Audio-Sinks" href="#Audio-Sinks">17. Audio Sinks</a>
+ <li><a name="toc-Audio-Sinks" href="#Audio-Sinks">21. Audio Sinks</a>
<ul class="toc">
- <li><a name="toc-anullsink" href="#anullsink">17.1 anullsink</a></li>
+ <li><a name="toc-anullsink" href="#anullsink">21.1 anullsink</a></li>
</ul></li>
- <li><a name="toc-Video-Filters" href="#Video-Filters">18. Video Filters</a>
+ <li><a name="toc-Video-Filters" href="#Video-Filters">22. Video Filters</a>
<ul class="toc">
- <li><a name="toc-blackframe" href="#blackframe">18.1 blackframe</a></li>
- <li><a name="toc-copy" href="#copy">18.2 copy</a></li>
- <li><a name="toc-crop" href="#crop">18.3 crop</a></li>
- <li><a name="toc-cropdetect" href="#cropdetect">18.4 cropdetect</a></li>
- <li><a name="toc-drawbox" href="#drawbox">18.5 drawbox</a></li>
- <li><a name="toc-drawtext" href="#drawtext">18.6 drawtext</a></li>
- <li><a name="toc-fade" href="#fade">18.7 fade</a></li>
- <li><a name="toc-fieldorder" href="#fieldorder">18.8 fieldorder</a></li>
- <li><a name="toc-fifo" href="#fifo">18.9 fifo</a></li>
- <li><a name="toc-format" href="#format">18.10 format</a></li>
- <li><a name="toc-frei0r-1" href="#frei0r-1">18.11 frei0r</a></li>
- <li><a name="toc-gradfun" href="#gradfun">18.12 gradfun</a></li>
- <li><a name="toc-hflip" href="#hflip">18.13 hflip</a></li>
- <li><a name="toc-hqdn3d" href="#hqdn3d">18.14 hqdn3d</a></li>
- <li><a name="toc-mp" href="#mp">18.15 mp</a></li>
- <li><a name="toc-noformat" href="#noformat">18.16 noformat</a></li>
- <li><a name="toc-null-1" href="#null-1">18.17 null</a></li>
- <li><a name="toc-ocv" href="#ocv">18.18 ocv</a>
+ <li><a name="toc-blackframe" href="#blackframe">22.1 blackframe</a></li>
+ <li><a name="toc-copy" href="#copy">22.2 copy</a></li>
+ <li><a name="toc-crop" href="#crop">22.3 crop</a></li>
+ <li><a name="toc-cropdetect" href="#cropdetect">22.4 cropdetect</a></li>
+ <li><a name="toc-drawbox" href="#drawbox">22.5 drawbox</a></li>
+ <li><a name="toc-drawtext" href="#drawtext">22.6 drawtext</a></li>
+ <li><a name="toc-fade" href="#fade">22.7 fade</a></li>
+ <li><a name="toc-fieldorder" href="#fieldorder">22.8 fieldorder</a></li>
+ <li><a name="toc-fifo" href="#fifo">22.9 fifo</a></li>
+ <li><a name="toc-format" href="#format">22.10 format</a></li>
+ <li><a name="toc-frei0r-1" href="#frei0r-1">22.11 frei0r</a></li>
+ <li><a name="toc-gradfun" href="#gradfun">22.12 gradfun</a></li>
+ <li><a name="toc-hflip" href="#hflip">22.13 hflip</a></li>
+ <li><a name="toc-hqdn3d" href="#hqdn3d">22.14 hqdn3d</a></li>
+ <li><a name="toc-mp" href="#mp">22.15 mp</a></li>
+ <li><a name="toc-noformat" href="#noformat">22.16 noformat</a></li>
+ <li><a name="toc-null-1" href="#null-1">22.17 null</a></li>
+ <li><a name="toc-ocv" href="#ocv">22.18 ocv</a>
<ul class="toc">
- <li><a name="toc-dilate-1" href="#dilate-1">18.18.1 dilate</a></li>
- <li><a name="toc-erode" href="#erode">18.18.2 erode</a></li>
- <li><a name="toc-smooth" href="#smooth">18.18.3 smooth</a></li>
+ <li><a name="toc-dilate-1" href="#dilate-1">22.18.1 dilate</a></li>
+ <li><a name="toc-erode" href="#erode">22.18.2 erode</a></li>
+ <li><a name="toc-smooth" href="#smooth">22.18.3 smooth</a></li>
</ul></li>
- <li><a name="toc-overlay" href="#overlay">18.19 overlay</a></li>
- <li><a name="toc-pad" href="#pad">18.20 pad</a></li>
- <li><a name="toc-pixdesctest" href="#pixdesctest">18.21 pixdesctest</a></li>
- <li><a name="toc-scale" href="#scale">18.22 scale</a></li>
- <li><a name="toc-setdar-1" href="#setdar-1">18.23 setdar</a></li>
- <li><a name="toc-setpts" href="#setpts">18.24 setpts</a></li>
- <li><a name="toc-setsar-1" href="#setsar-1">18.25 setsar</a></li>
- <li><a name="toc-settb" href="#settb">18.26 settb</a></li>
- <li><a name="toc-showinfo" href="#showinfo">18.27 showinfo</a></li>
- <li><a name="toc-slicify" href="#slicify">18.28 slicify</a></li>
- <li><a name="toc-transpose" href="#transpose">18.29 transpose</a></li>
- <li><a name="toc-unsharp" href="#unsharp">18.30 unsharp</a></li>
- <li><a name="toc-vflip" href="#vflip">18.31 vflip</a></li>
- <li><a name="toc-yadif" href="#yadif">18.32 yadif</a></li>
+ <li><a name="toc-overlay" href="#overlay">22.19 overlay</a></li>
+ <li><a name="toc-pad" href="#pad">22.20 pad</a></li>
+ <li><a name="toc-pixdesctest" href="#pixdesctest">22.21 pixdesctest</a></li>
+ <li><a name="toc-scale" href="#scale">22.22 scale</a></li>
+ <li><a name="toc-select" href="#select">22.23 select</a></li>
+ <li><a name="toc-setdar-1" href="#setdar-1">22.24 setdar</a></li>
+ <li><a name="toc-setpts" href="#setpts">22.25 setpts</a></li>
+ <li><a name="toc-setsar-1" href="#setsar-1">22.26 setsar</a></li>
+ <li><a name="toc-settb" href="#settb">22.27 settb</a></li>
+ <li><a name="toc-showinfo" href="#showinfo">22.28 showinfo</a></li>
+ <li><a name="toc-slicify" href="#slicify">22.29 slicify</a></li>
+ <li><a name="toc-split" href="#split">22.30 split</a></li>
+ <li><a name="toc-transpose" href="#transpose">22.31 transpose</a></li>
+ <li><a name="toc-unsharp" href="#unsharp">22.32 unsharp</a></li>
+ <li><a name="toc-vflip" href="#vflip">22.33 vflip</a></li>
+ <li><a name="toc-yadif" href="#yadif">22.34 yadif</a></li>
</ul></li>
- <li><a name="toc-Video-Sources" href="#Video-Sources">19. Video Sources</a>
+ <li><a name="toc-Video-Sources" href="#Video-Sources">23. Video Sources</a>
<ul class="toc">
- <li><a name="toc-buffer" href="#buffer">19.1 buffer</a></li>
- <li><a name="toc-color" href="#color">19.2 color</a></li>
- <li><a name="toc-movie" href="#movie">19.3 movie</a></li>
- <li><a name="toc-nullsrc" href="#nullsrc">19.4 nullsrc</a></li>
- <li><a name="toc-frei0r_005fsrc" href="#frei0r_005fsrc">19.5 frei0r_src</a></li>
+ <li><a name="toc-buffer" href="#buffer">23.1 buffer</a></li>
+ <li><a name="toc-color" href="#color">23.2 color</a></li>
+ <li><a name="toc-movie" href="#movie">23.3 movie</a></li>
+ <li><a name="toc-nullsrc" href="#nullsrc">23.4 nullsrc</a></li>
+ <li><a name="toc-frei0r_005fsrc" href="#frei0r_005fsrc">23.5 frei0r_src</a></li>
</ul></li>
- <li><a name="toc-Video-Sinks" href="#Video-Sinks">20. Video Sinks</a>
+ <li><a name="toc-Video-Sinks" href="#Video-Sinks">24. Video Sinks</a>
<ul class="toc">
- <li><a name="toc-nullsink" href="#nullsink">20.1 nullsink</a></li>
+ <li><a name="toc-nullsink" href="#nullsink">24.1 nullsink</a></li>
</ul></li>
- <li><a name="toc-Metadata" href="#Metadata">21. Metadata</a></li>
+ <li><a name="toc-Metadata" href="#Metadata">25. Metadata</a></li>
</ul>
</div>
specified for the inputs.
</p>
-<a name="Options"></a>
-<h1 class="chapter"><a href="ffmpeg.html#toc-Options">3. Options</a></h1>
+<a name="Options-4"></a>
+<h1 class="chapter"><a href="ffmpeg.html#toc-Options-4">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
</dd>
<dt> ‘<samp>-rc_override <var>override</var></samp>’</dt>
-<dd><p>rate control override for specific intervals
+<dd><p>Rate control override for specific intervals, formated as "int,int,int"
+list separated with slashes. Two first values are the beginning and
+end frame numbers, last one is quantizer to use if positive, or quality
+factor if negative.
</p></dd>
<dt> ‘<samp>-me_method <var>method</var></samp>’</dt>
<dd><p>Set motion estimation method to <var>method</var>.
<p>First ffmpeg searches for a file named <var>arg</var>.ffpreset in the
directories ‘<tt>$FFMPEG_DATADIR</tt>’ (if set), and ‘<tt>$HOME/.ffmpeg</tt>’, and in
the datadir defined at configuration time (usually ‘<tt>PREFIX/share/ffmpeg</tt>’)
+or in a ‘<tt>ffpresets</tt>’ folder along the executable on win32,
in that order. For example, if the argument is <code>libx264-max</code>, it will
search for the file ‘<tt>libx264-max.ffpreset</tt>’.
</p>
<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="ffmpeg.html#toc-Decoders">7. 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="ffmpeg.html#toc-Video-Decoders">8. 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="ffmpeg.html#toc-rawvideo">8.1 rawvideo</a></h2>
+
+<p>Rawvideo decoder.
+</p>
+<p>This decoder decodes rawvideo streams.
+</p>
+<a name="Options"></a>
+<h3 class="subsection"><a href="ffmpeg.html#toc-Options">8.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="Encoders"></a>
-<h1 class="chapter"><a href="ffmpeg.html#toc-Encoders">7. Encoders</a></h1>
+<h1 class="chapter"><a href="ffmpeg.html#toc-Encoders">9. Encoders</a></h1>
<p>Encoders are configured elements in FFmpeg which allow the encoding of
multimedia streams.
<p>The option <code>-codecs</code> of the ff* tools will display the list of
enabled encoders.
</p>
-<p>A description of some of the currently available encoders follows.
-</p>
+
<a name="Audio-Encoders"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-Audio-Encoders">7.1 Audio Encoders</a></h2>
+<h1 class="chapter"><a href="ffmpeg.html#toc-Audio-Encoders">10. Audio Encoders</a></h1>
+<p>A description of some of the currently available audio encoders
+follows.
+</p>
<a name="ac3-and-ac3_005ffixed"></a>
-<h3 class="subsection"><a href="ffmpeg.html#toc-ac3-and-ac3_005ffixed">7.1.1 ac3 and ac3_fixed</a></h3>
+<h2 class="section"><a href="ffmpeg.html#toc-ac3-and-ac3_005ffixed">10.1 ac3 and ac3_fixed</a></h2>
<p>AC-3 audio encoders.
</p>
using the option <code>-acodec ac3_fixed</code> in order to use it.
</p>
<a name="AC_002d3-Metadata"></a>
-<h3 class="subheading">AC-3 Metadata</h3>
+<h3 class="subsection"><a href="ffmpeg.html#toc-AC_002d3-Metadata">10.1.1 AC-3 Metadata</a></h3>
<p>The AC-3 metadata options are used to set parameters that describe the audio,
but in most cases do not affect the audio encoding itself. Some of the options
</li></ul>
<a name="Metadata-Control-Options"></a>
-<h4 class="subsubheading">Metadata Control Options</h4>
+<h4 class="subsubsection"><a href="ffmpeg.html#toc-Metadata-Control-Options">10.1.1.1 Metadata Control Options</a></h4>
<dl compact="compact">
<dt> ‘<samp>-per_frame_metadata <var>boolean</var></samp>’</dt>
</dl>
<a name="Downmix-Levels"></a>
-<h4 class="subsubheading">Downmix Levels</h4>
+<h4 class="subsubsection"><a href="ffmpeg.html#toc-Downmix-Levels">10.1.1.2 Downmix Levels</a></h4>
<dl compact="compact">
<dt> ‘<samp>-center_mixlev <var>level</var></samp>’</dt>
</dl>
<a name="Audio-Production-Information"></a>
-<h4 class="subsubheading">Audio Production Information</h4>
+<h4 class="subsubsection"><a href="ffmpeg.html#toc-Audio-Production-Information">10.1.1.3 Audio Production Information</a></h4>
<p>Audio Production Information is optional information describing the mixing
environment. Either none or both of the fields are written to the bitstream.
</p>
</dl>
<a name="Other-Metadata-Options"></a>
-<h4 class="subsubheading">Other Metadata Options</h4>
+<h4 class="subsubsection"><a href="ffmpeg.html#toc-Other-Metadata-Options">10.1.1.4 Other Metadata Options</a></h4>
<dl compact="compact">
<dt> ‘<samp>-copyright <var>boolean</var></samp>’</dt>
</dl>
<a name="Extended-Bitstream-Information"></a>
-<h4 class="subsubheading">Extended Bitstream Information</h4>
+<h3 class="subsection"><a href="ffmpeg.html#toc-Extended-Bitstream-Information">10.1.2 Extended Bitstream Information</a></h3>
<p>The extended bitstream options are part of the Alternate Bit Stream Syntax as
specified in Annex D of the A/52:2010 standard. It is grouped into 2 parts.
If any one parameter in a group is specified, all values in that group will be
Syntax.
</p>
<a name="Extended-Bitstream-Information-_002d-Part-1"></a>
-<h4 class="subsubheading">Extended Bitstream Information - Part 1</h4>
+<h4 class="subsubsection"><a href="ffmpeg.html#toc-Extended-Bitstream-Information-_002d-Part-1">10.1.2.1 Extended Bitstream Information - Part 1</a></h4>
<dl compact="compact">
<dt> ‘<samp>-dmix_mode <var>mode</var></samp>’</dt>
</dl>
<a name="Extended-Bitstream-Information-_002d-Part-2"></a>
-<h4 class="subsubheading">Extended Bitstream Information - Part 2</h4>
+<h4 class="subsubsection"><a href="ffmpeg.html#toc-Extended-Bitstream-Information-_002d-Part-2">10.1.2.2 Extended Bitstream Information - Part 2</a></h4>
<dl compact="compact">
<dt> ‘<samp>-dsurex_mode <var>mode</var></samp>’</dt>
</dl>
<a name="Other-AC_002d3-Encoding-Options"></a>
-<h3 class="subheading">Other AC-3 Encoding Options</h3>
+<h3 class="subsection"><a href="ffmpeg.html#toc-Other-AC_002d3-Encoding-Options">10.1.3 Other AC-3 Encoding Options</a></h3>
<dl compact="compact">
<dt> ‘<samp>-stereo_rematrixing <var>boolean</var></samp>’</dt>
</dd>
</dl>
+<a name="Floating_002dPoint_002dOnly-AC_002d3-Encoding-Options"></a>
+<h3 class="subsection"><a href="ffmpeg.html#toc-Floating_002dPoint_002dOnly-AC_002d3-Encoding-Options">10.1.4 Floating-Point-Only AC-3 Encoding Options</a></h3>
+
+<p>These options are only valid for the floating-point encoder and do not exist
+for the fixed-point encoder due to the corresponding features not being
+implemented in fixed-point.
+</p>
+<dl compact="compact">
+<dt> ‘<samp>-channel_coupling <var>boolean</var></samp>’</dt>
+<dd><p>Enables/Disables use of channel coupling, which is an optional AC-3 feature
+that increases quality by combining high frequency information from multiple
+channels into a single channel. The per-channel high frequency information is
+sent with less accuracy in both the frequency and time domains. This allows
+more bits to be used for lower frequencies while preserving enough information
+to reconstruct the high frequencies. This option is enabled by default for the
+floating-point encoder and should generally be left as enabled except for
+testing purposes or to increase encoding speed.
+</p><dl compact="compact">
+<dt> ‘<samp>-1</samp>’</dt>
+<dt> ‘<samp>auto</samp>’</dt>
+<dd><p>Selected by Encoder (default)
+</p></dd>
+<dt> ‘<samp>0</samp>’</dt>
+<dt> ‘<samp>off</samp>’</dt>
+<dd><p>Disable Channel Coupling
+</p></dd>
+<dt> ‘<samp>1</samp>’</dt>
+<dt> ‘<samp>on</samp>’</dt>
+<dd><p>Enable Channel Coupling
+</p></dd>
+</dl>
+
+</dd>
+<dt> ‘<samp>-cpl_start_band <var>number</var></samp>’</dt>
+<dd><p>Coupling Start Band. Sets the channel coupling start band, from 1 to 15. If a
+value higher than the bandwidth is used, it will be reduced to 1 less than the
+coupling end band. If <var>auto</var> is used, the start band will be determined by
+the encoder based on the bit rate, sample rate, and channel layout. This option
+has no effect if channel coupling is disabled.
+</p><dl compact="compact">
+<dt> ‘<samp>-1</samp>’</dt>
+<dt> ‘<samp>auto</samp>’</dt>
+<dd><p>Selected by Encoder (default)
+</p></dd>
+</dl>
+
+</dd>
+</dl>
+
+
+<a name="Video-Encoders"></a>
+<h1 class="chapter"><a href="ffmpeg.html#toc-Video-Encoders">11. Video Encoders</a></h1>
+
+<p>A description of some of the currently available video encoders
+follows.
+</p>
+<a name="libvpx"></a>
+<h2 class="section"><a href="ffmpeg.html#toc-libvpx">11.1 libvpx</a></h2>
+
+<p>VP8 format supported through libvpx.
+</p>
+<p>Requires the presence of the libvpx headers and library during configuration.
+You need to explicitly configure the build with <code>--enable-libvpx</code>.
+</p>
+<a name="Options-1"></a>
+<h3 class="subsection"><a href="ffmpeg.html#toc-Options-1">11.1.1 Options</a></h3>
+
+<p>Mapping from FFmpeg to libvpx options with conversion notes in parentheses.
+</p>
+<dl compact="compact">
+<dt> ‘<samp>threads</samp>’</dt>
+<dd><p>g_threads
+</p>
+</dd>
+<dt> ‘<samp>profile</samp>’</dt>
+<dd><p>g_profile
+</p>
+</dd>
+<dt> ‘<samp>vb</samp>’</dt>
+<dd><p>rc_target_bitrate
+</p>
+</dd>
+<dt> ‘<samp>g</samp>’</dt>
+<dd><p>kf_max_dist
+</p>
+</dd>
+<dt> ‘<samp>keyint_min</samp>’</dt>
+<dd><p>kf_min_dist
+</p>
+</dd>
+<dt> ‘<samp>qmin</samp>’</dt>
+<dd><p>rc_min_quantizer
+</p>
+</dd>
+<dt> ‘<samp>qmax</samp>’</dt>
+<dd><p>rc_max_quantizer
+</p>
+</dd>
+<dt> ‘<samp>bufsize, vb</samp>’</dt>
+<dd><p>rc_buf_sz
+<code>(bufsize * 1000 / vb)</code>
+</p>
+<p>rc_buf_optimal_sz
+<code>(bufsize * 1000 / vb * 5 / 6)</code>
+</p>
+</dd>
+<dt> ‘<samp>rc_init_occupancy, vb</samp>’</dt>
+<dd><p>rc_buf_initial_sz
+<code>(rc_init_occupancy * 1000 / vb)</code>
+</p>
+</dd>
+<dt> ‘<samp>rc_buffer_aggressivity</samp>’</dt>
+<dd><p>rc_undershoot_pct
+</p>
+</dd>
+<dt> ‘<samp>skip_threshold</samp>’</dt>
+<dd><p>rc_dropframe_thresh
+</p>
+</dd>
+<dt> ‘<samp>qcomp</samp>’</dt>
+<dd><p>rc_2pass_vbr_bias_pct
+</p>
+</dd>
+<dt> ‘<samp>maxrate, vb</samp>’</dt>
+<dd><p>rc_2pass_vbr_maxsection_pct
+<code>(maxrate * 100 / vb)</code>
+</p>
+</dd>
+<dt> ‘<samp>minrate, vb</samp>’</dt>
+<dd><p>rc_2pass_vbr_minsection_pct
+<code>(minrate * 100 / vb)</code>
+</p>
+</dd>
+<dt> ‘<samp>minrate, maxrate, vb</samp>’</dt>
+<dd><p><code>VPX_CBR</code>
+<code>(minrate == maxrate == vb)</code>
+</p>
+</dd>
+<dt> ‘<samp>crf</samp>’</dt>
+<dd><p><code>VPX_CQ</code>, <code>VP8E_SET_CQ_LEVEL</code>
+</p>
+</dd>
+<dt> ‘<samp>quality</samp>’</dt>
+<dd><dl compact="compact">
+<dt> ‘<samp><var>best</var></samp>’</dt>
+<dd><p><code>VPX_DL_BEST_QUALITY</code>
+</p></dd>
+<dt> ‘<samp><var>good</var></samp>’</dt>
+<dd><p><code>VPX_DL_GOOD_QUALITY</code>
+</p></dd>
+<dt> ‘<samp><var>realtime</var></samp>’</dt>
+<dd><p><code>VPX_DL_REALTIME</code>
+</p></dd>
+</dl>
+
+</dd>
+<dt> ‘<samp>speed</samp>’</dt>
+<dd><p><code>VP8E_SET_CPUUSED</code>
+</p>
+</dd>
+<dt> ‘<samp>nr</samp>’</dt>
+<dd><p><code>VP8E_SET_NOISE_SENSITIVITY</code>
+</p>
+</dd>
+<dt> ‘<samp>mb_threshold</samp>’</dt>
+<dd><p><code>VP8E_SET_STATIC_THRESHOLD</code>
+</p>
+</dd>
+<dt> ‘<samp>slices</samp>’</dt>
+<dd><p><code>VP8E_SET_TOKEN_PARTITIONS</code>
+</p>
+</dd>
+<dt> ‘<samp>Alternate reference frame related</samp>’</dt>
+<dd><dl compact="compact">
+<dt> ‘<samp>vp8flags altref</samp>’</dt>
+<dd><p><code>VP8E_SET_ENABLEAUTOALTREF</code>
+</p></dd>
+<dt> ‘<samp><var>arnr_max_frames</var></samp>’</dt>
+<dd><p><code>VP8E_SET_ARNR_MAXFRAMES</code>
+</p></dd>
+<dt> ‘<samp><var>arnr_type</var></samp>’</dt>
+<dd><p><code>VP8E_SET_ARNR_TYPE</code>
+</p></dd>
+<dt> ‘<samp><var>arnr_strength</var></samp>’</dt>
+<dd><p><code>VP8E_SET_ARNR_STRENGTH</code>
+</p></dd>
+<dt> ‘<samp><var>rc_lookahead</var></samp>’</dt>
+<dd><p>g_lag_in_frames
+</p></dd>
+</dl>
+
+</dd>
+<dt> ‘<samp>vp8flags error_resilient</samp>’</dt>
+<dd><p>g_error_resilient
+</p>
+</dd>
+</dl>
+
+<p>For more information about libvpx see:
+<a href="http://www.webmproject.org/">http://www.webmproject.org/</a>
+</p>
+<a name="libx264"></a>
+<h2 class="section"><a href="ffmpeg.html#toc-libx264">11.2 libx264</a></h2>
+
+<p>H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 format supported through
+libx264.
+</p>
+<p>Requires the presence of the libx264 headers and library during
+configuration. You need to explicitly configure the build with
+<code>--enable-libx264</code>.
+</p>
+<a name="Options-2"></a>
+<h3 class="subsection"><a href="ffmpeg.html#toc-Options-2">11.2.1 Options</a></h3>
+
+<dl compact="compact">
+<dt> ‘<samp>preset <var>preset_name</var></samp>’</dt>
+<dd><p>Set the encoding preset.
+</p>
+</dd>
+<dt> ‘<samp>tune <var>tune_name</var></samp>’</dt>
+<dd><p>Tune the encoding params.
+Deprecated in favor of <var>x264_opts</var>
+</p>
+</dd>
+<dt> ‘<samp>fastfirstpass <var>bool</var></samp>’</dt>
+<dd><p>Use fast settings when encoding first pass, default value is 1.
+Deprecated in favor of <var>x264_opts</var>.
+</p>
+</dd>
+<dt> ‘<samp>profile <var>profile_name</var></samp>’</dt>
+<dd><p>Set profile restrictions.
+Deprecated in favor of <var>x264_opts</var>.
+</p>
+</dd>
+<dt> ‘<samp>level <var>level</var></samp>’</dt>
+<dd><p>Specify level (as defined by Annex A).
+Deprecated in favor of <var>x264_opts</var>.
+</p>
+</dd>
+<dt> ‘<samp>passlogfile <var>filename</var></samp>’</dt>
+<dd><p>Specify filename for 2 pass stats.
+Deprecated in favor of <var>x264_opts</var>.
+</p>
+</dd>
+<dt> ‘<samp>wpredp <var>wpred_type</var></samp>’</dt>
+<dd><p>Specify Weighted prediction for P-frames.
+Deprecated in favor of <var>x264_opts</var>.
+</p>
+</dd>
+<dt> ‘<samp>x264opts <var>options</var></samp>’</dt>
+<dd><p>Allow to set any x264 option, see x264 manual for a list.
+</p>
+<p><var>options</var> is a list of <var>key</var>=<var>value</var> couples separated by
+":".
+</p></dd>
+</dl>
+
+<p>For example to specify libx264 encoding options with ‘<tt>ffmpeg</tt>’:
+</p><table><tr><td> </td><td><pre class="example">ffmpeg -i foo.mpg -vcodec libx264 -x264opts keyint=123:min-keyint=20 -an out.mkv
+</pre></td></tr></table>
+
+<p>For more information about libx264 and the supported options see:
+<a href="http://www.videolan.org/developers/x264.html">http://www.videolan.org/developers/x264.html</a>
+</p>
<a name="Demuxers"></a>
-<h1 class="chapter"><a href="ffmpeg.html#toc-Demuxers">8. Demuxers</a></h1>
+<h1 class="chapter"><a href="ffmpeg.html#toc-Demuxers">12. 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-1"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-image2-1">8.1 image2</a></h2>
+<a name="image2"></a>
+<h2 class="section"><a href="ffmpeg.html#toc-image2">12.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="ffmpeg.html#toc-applehttp-1">8.2 applehttp</a></h2>
+<a name="applehttp"></a>
+<h2 class="section"><a href="ffmpeg.html#toc-applehttp">12.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="ffmpeg.html#toc-Muxers">9. Muxers</a></h1>
+<h1 class="chapter"><a href="ffmpeg.html#toc-Muxers">13. 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="ffmpeg.html#toc-crc-1">9.1 crc</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-crc-1">13.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="ffmpeg.html#toc-framecrc-1">9.2 framecrc</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-framecrc-1">13.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"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-image2">9.3 image2</a></h2>
+<a name="image2-1"></a>
+<h2 class="section"><a href="ffmpeg.html#toc-image2-1">13.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="ffmpeg.html#toc-mpegts">9.4 mpegts</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-mpegts">13.4 mpegts</a></h2>
<p>MPEG transport stream muxer.
</p>
</pre></td></tr></table>
<a name="null"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-null">9.5 null</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-null">13.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="ffmpeg.html#toc-matroska">13.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="ffmpeg.html#toc-Input-Devices">10. Input Devices</a></h1>
+<h1 class="chapter"><a href="ffmpeg.html#toc-Input-Devices">14. 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"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-alsa">10.1 alsa</a></h2>
+<a name="alsa-1"></a>
+<h2 class="section"><a href="ffmpeg.html#toc-alsa-1">14.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="ffmpeg.html#toc-bktr">10.2 bktr</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-bktr">14.2 bktr</a></h2>
<p>BSD video input device.
</p>
<a name="dv1394"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-dv1394">10.3 dv1394</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-dv1394">14.3 dv1394</a></h2>
<p>Linux DV 1394 input device.
</p>
<a name="fbdev"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-fbdev">10.4 fbdev</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-fbdev">14.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="ffmpeg.html#toc-jack">10.5 jack</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-jack">14.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="ffmpeg.html#toc-libdc1394">10.6 libdc1394</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-libdc1394">14.6 libdc1394</a></h2>
<p>IIDC1394 input device, based on libdc1394 and libraw1394.
</p>
-<a name="oss"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-oss">10.7 oss</a></h2>
+<a name="oss-1"></a>
+<h2 class="section"><a href="ffmpeg.html#toc-oss-1">14.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="ffmpeg.html#toc-sndio-1">10.8 sndio</a></h2>
+<a name="sndio"></a>
+<h2 class="section"><a href="ffmpeg.html#toc-sndio">14.8 sndio</a></h2>
<p>sndio input device.
</p>
</pre></td></tr></table>
<a name="video4linux-and-video4linux2"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-video4linux-and-video4linux2">10.9 video4linux and video4linux2</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-video4linux-and-video4linux2">14.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="ffmpeg.html#toc-vfwcap">10.10 vfwcap</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-vfwcap">14.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="ffmpeg.html#toc-x11grab">10.11 x11grab</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-x11grab">14.11 x11grab</a></h2>
<p>X11 video input device.
</p>
</pre></td></tr></table>
<a name="Output-Devices"></a>
-<h1 class="chapter"><a href="ffmpeg.html#toc-Output-Devices">11. Output Devices</a></h1>
+<h1 class="chapter"><a href="ffmpeg.html#toc-Output-Devices">15. 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-1"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-alsa-1">11.1 alsa</a></h2>
+<a name="alsa"></a>
+<h2 class="section"><a href="ffmpeg.html#toc-alsa">15.1 alsa</a></h2>
<p>ALSA (Advanced Linux Sound Architecture) output device.
</p>
-<a name="oss-1"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-oss-1">11.2 oss</a></h2>
+<a name="oss"></a>
+<h2 class="section"><a href="ffmpeg.html#toc-oss">15.2 oss</a></h2>
<p>OSS (Open Sound System) output device.
</p>
-<a name="sndio"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-sndio">11.3 sndio</a></h2>
+<a name="sdl"></a>
+<h2 class="section"><a href="ffmpeg.html#toc-sdl">15.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-3"></a>
+<h3 class="subsection"><a href="ffmpeg.html#toc-Options-3">15.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-1"></a>
+<h3 class="subsection"><a href="ffmpeg.html#toc-Examples-1">15.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="ffmpeg.html#toc-sndio-1">15.4 sndio</a></h2>
<p>sndio audio output device.
</p>
<a name="Protocols"></a>
-<h1 class="chapter"><a href="ffmpeg.html#toc-Protocols">12. Protocols</a></h1>
+<h1 class="chapter"><a href="ffmpeg.html#toc-Protocols">16. 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="ffmpeg.html#toc-applehttp">12.1 applehttp</a></h2>
+<a name="applehttp-1"></a>
+<h2 class="section"><a href="ffmpeg.html#toc-applehttp-1">16.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="ffmpeg.html#toc-concat">12.2 concat</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-concat">16.2 concat</a></h2>
<p>Physical concatenation protocol.
</p>
many shells.
</p>
<a name="file"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-file">12.3 file</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-file">16.3 file</a></h2>
<p>File access protocol.
</p>
"file:FILE.mpeg".
</p>
<a name="gopher"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-gopher">12.4 gopher</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-gopher">16.4 gopher</a></h2>
<p>Gopher protocol.
</p>
<a name="http"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-http">12.5 http</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-http">16.5 http</a></h2>
<p>HTTP (Hyper Text Transfer Protocol).
</p>
<a name="mmst"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-mmst">12.6 mmst</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-mmst">16.6 mmst</a></h2>
<p>MMS (Microsoft Media Server) protocol over TCP.
</p>
<a name="mmsh"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-mmsh">12.7 mmsh</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-mmsh">16.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="ffmpeg.html#toc-md5">12.8 md5</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-md5">16.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="ffmpeg.html#toc-pipe">12.9 pipe</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-pipe">16.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="ffmpeg.html#toc-rtmp">12.10 rtmp</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-rtmp">16.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="ffmpeg.html#toc-rtmp_002c-rtmpe_002c-rtmps_002c-rtmpt_002c-rtmpte">12.11 rtmp, rtmpe, rtmps, rtmpt, rtmpte</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-rtmp_002c-rtmpe_002c-rtmps_002c-rtmpt_002c-rtmpte">16.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="ffmpeg.html#toc-rtp">12.12 rtp</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-rtp">16.12 rtp</a></h2>
<p>Real-Time Protocol.
</p>
<a name="rtsp"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-rtsp">12.13 rtsp</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-rtsp">16.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="ffmpeg.html#toc-sap">12.14 sap</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-sap">16.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="ffmpeg.html#toc-Muxer">12.14.1 Muxer</a></h3>
+<h3 class="subsection"><a href="ffmpeg.html#toc-Muxer">16.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="ffmpeg.html#toc-Demuxer">12.14.2 Demuxer</a></h3>
+<h3 class="subsection"><a href="ffmpeg.html#toc-Demuxer">16.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="ffmpeg.html#toc-tcp">12.15 tcp</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-tcp">16.15 tcp</a></h2>
<p>Trasmission Control Protocol.
</p>
</dl>
<a name="udp"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-udp">12.16 udp</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-udp">16.16 udp</a></h2>
<p>User Datagram Protocol.
</p>
</pre></td></tr></table>
<a name="Bitstream-Filters"></a>
-<h1 class="chapter"><a href="ffmpeg.html#toc-Bitstream-Filters">13. Bitstream Filters</a></h1>
+<h1 class="chapter"><a href="ffmpeg.html#toc-Bitstream-Filters">17. Bitstream Filters</a></h1>
<p>When you configure your FFmpeg build, all the supported bitstream
filters are enabled by default. You can list all available ones using
<p>Below is a description of the currently available bitstream filters.
</p>
<a name="aac_005fadtstoasc"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-aac_005fadtstoasc">13.1 aac_adtstoasc</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-aac_005fadtstoasc">17.1 aac_adtstoasc</a></h2>
<a name="chomp"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-chomp">13.2 chomp</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-chomp">17.2 chomp</a></h2>
<a name="dump_005fextradata"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-dump_005fextradata">13.3 dump_extradata</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-dump_005fextradata">17.3 dump_extradata</a></h2>
<a name="h264_005fmp4toannexb"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-h264_005fmp4toannexb">13.4 h264_mp4toannexb</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-h264_005fmp4toannexb">17.4 h264_mp4toannexb</a></h2>
<a name="imx_005fdump_005fheader"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-imx_005fdump_005fheader">13.5 imx_dump_header</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-imx_005fdump_005fheader">17.5 imx_dump_header</a></h2>
<a name="mjpeg2jpeg"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-mjpeg2jpeg">13.6 mjpeg2jpeg</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-mjpeg2jpeg">17.6 mjpeg2jpeg</a></h2>
<p>Convert MJPEG/AVI1 packets to full JPEG/JFIF packets.
</p>
</pre></td></tr></table>
<a name="mjpega_005fdump_005fheader"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-mjpega_005fdump_005fheader">13.7 mjpega_dump_header</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-mjpega_005fdump_005fheader">17.7 mjpega_dump_header</a></h2>
<a name="movsub"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-movsub">13.8 movsub</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-movsub">17.8 movsub</a></h2>
<a name="mp3_005fheader_005fcompress"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-mp3_005fheader_005fcompress">13.9 mp3_header_compress</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-mp3_005fheader_005fcompress">17.9 mp3_header_compress</a></h2>
<a name="mp3_005fheader_005fdecompress"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-mp3_005fheader_005fdecompress">13.10 mp3_header_decompress</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-mp3_005fheader_005fdecompress">17.10 mp3_header_decompress</a></h2>
<a name="noise"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-noise">13.11 noise</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-noise">17.11 noise</a></h2>
<a name="remove_005fextradata"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-remove_005fextradata">13.12 remove_extradata</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-remove_005fextradata">17.12 remove_extradata</a></h2>
<a name="Filtergraph-description"></a>
-<h1 class="chapter"><a href="ffmpeg.html#toc-Filtergraph-description">14. Filtergraph description</a></h1>
+<h1 class="chapter"><a href="ffmpeg.html#toc-Filtergraph-description">18. 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="ffmpeg.html#toc-Filtergraph-syntax">14.1 Filtergraph syntax</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-Filtergraph-syntax">18.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="ffmpeg.html#toc-Audio-Filters">15. Audio Filters</a></h1>
+<h1 class="chapter"><a href="ffmpeg.html#toc-Audio-Filters">19. 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="ffmpeg.html#toc-anull">15.1 anull</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-anull">19.1 anull</a></h2>
<p>Pass the audio source unchanged to the output.
</p>
<a name="Audio-Sources"></a>
-<h1 class="chapter"><a href="ffmpeg.html#toc-Audio-Sources">16. Audio Sources</a></h1>
+<h1 class="chapter"><a href="ffmpeg.html#toc-Audio-Sources">20. 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="ffmpeg.html#toc-anullsrc">16.1 anullsrc</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-anullsrc">20.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="ffmpeg.html#toc-Audio-Sinks">17. Audio Sinks</a></h1>
+<h1 class="chapter"><a href="ffmpeg.html#toc-Audio-Sinks">21. 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="ffmpeg.html#toc-anullsink">17.1 anullsink</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-anullsink">21.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="ffmpeg.html#toc-Video-Filters">18. Video Filters</a></h1>
+<h1 class="chapter"><a href="ffmpeg.html#toc-Video-Filters">22. 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="ffmpeg.html#toc-blackframe">18.1 blackframe</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-blackframe">22.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="ffmpeg.html#toc-copy">18.2 copy</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-copy">22.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="ffmpeg.html#toc-crop">18.3 crop</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-crop">22.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="ffmpeg.html#toc-cropdetect">18.4 cropdetect</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-cropdetect">22.4 cropdetect</a></h2>
<p>Auto-detect crop size.
</p>
</dl>
<a name="drawbox"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-drawbox">18.5 drawbox</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-drawbox">22.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="ffmpeg.html#toc-drawtext">18.6 drawtext</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-drawtext">22.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="ffmpeg.html#toc-fade">18.7 fade</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-fade">22.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="ffmpeg.html#toc-fieldorder">18.8 fieldorder</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-fieldorder">22.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="ffmpeg.html#toc-fifo">18.9 fifo</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-fifo">22.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="ffmpeg.html#toc-format">18.10 format</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-format">22.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="ffmpeg.html#toc-frei0r-1">18.11 frei0r</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-frei0r-1">22.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="ffmpeg.html#toc-gradfun">18.12 gradfun</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-gradfun">22.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="ffmpeg.html#toc-hflip">18.13 hflip</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-hflip">22.13 hflip</a></h2>
<p>Flip the input video horizontally.
</p>
</pre></td></tr></table>
<a name="hqdn3d"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-hqdn3d">18.14 hqdn3d</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-hqdn3d">22.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="ffmpeg.html#toc-mp">18.15 mp</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-mp">22.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="ffmpeg.html#toc-noformat">18.16 noformat</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-noformat">22.16 noformat</a></h2>
<p>Force libavfilter not to use any of the specified pixel formats for the
input to the next filter.
</pre></td></tr></table>
<a name="null-1"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-null-1">18.17 null</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-null-1">22.17 null</a></h2>
<p>Pass the video source unchanged to the output.
</p>
<a name="ocv"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-ocv">18.18 ocv</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-ocv">22.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="ffmpeg.html#toc-dilate-1">18.18.1 dilate</a></h3>
+<h3 class="subsection"><a href="ffmpeg.html#toc-dilate-1">22.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="ffmpeg.html#toc-erode">18.18.2 erode</a></h3>
+<h3 class="subsection"><a href="ffmpeg.html#toc-erode">22.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="ffmpeg.html#toc-smooth">18.18.3 smooth</a></h3>
+<h3 class="subsection"><a href="ffmpeg.html#toc-smooth">22.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="ffmpeg.html#toc-overlay">18.19 overlay</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-overlay">22.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="ffmpeg.html#toc-pad">18.20 pad</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-pad">22.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="ffmpeg.html#toc-pixdesctest">18.21 pixdesctest</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-pixdesctest">22.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="ffmpeg.html#toc-scale">18.22 scale</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-scale">22.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="ffmpeg.html#toc-select">22.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="ffmpeg.html#toc-setdar-1">18.23 setdar</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-setdar-1">22.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="ffmpeg.html#toc-setpts">18.24 setpts</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-setpts">22.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="ffmpeg.html#toc-setsar-1">18.25 setsar</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-setsar-1">22.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="ffmpeg.html#toc-settb">18.26 settb</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-settb">22.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="ffmpeg.html#toc-showinfo">18.27 showinfo</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-showinfo">22.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="ffmpeg.html#toc-slicify">18.28 slicify</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-slicify">22.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="ffmpeg.html#toc-split">22.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="ffmpeg.html#toc-transpose">18.29 transpose</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-transpose">22.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="ffmpeg.html#toc-unsharp">18.30 unsharp</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-unsharp">22.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="ffmpeg.html#toc-vflip">18.31 vflip</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-vflip">22.33 vflip</a></h2>
<p>Flip the input video vertically.
</p>
</pre></td></tr></table>
<a name="yadif"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-yadif">18.32 yadif</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-yadif">22.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="ffmpeg.html#toc-Video-Sources">19. Video Sources</a></h1>
+<h1 class="chapter"><a href="ffmpeg.html#toc-Video-Sources">23. 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="ffmpeg.html#toc-buffer">19.1 buffer</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-buffer">23.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="ffmpeg.html#toc-color">19.2 color</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-color">23.2 color</a></h2>
<p>Provide an uniformly colored input.
</p>
</pre></td></tr></table>
<a name="movie"></a>
-<h2 class="section"><a href="ffmpeg.html#toc-movie">19.3 movie</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-movie">23.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="ffmpeg.html#toc-nullsrc">19.4 nullsrc</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-nullsrc">23.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="ffmpeg.html#toc-frei0r_005fsrc">19.5 frei0r_src</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-frei0r_005fsrc">23.5 frei0r_src</a></h2>
<p>Provide a frei0r source.
</p>
<a name="Video-Sinks"></a>
-<h1 class="chapter"><a href="ffmpeg.html#toc-Video-Sinks">20. Video Sinks</a></h1>
+<h1 class="chapter"><a href="ffmpeg.html#toc-Video-Sinks">24. 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="ffmpeg.html#toc-nullsink">20.1 nullsink</a></h2>
+<h2 class="section"><a href="ffmpeg.html#toc-nullsink">24.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
</p>
<a name="Metadata"></a>
-<h1 class="chapter"><a href="ffmpeg.html#toc-Metadata">21. Metadata</a></h1>
+<h1 class="chapter"><a href="ffmpeg.html#toc-Metadata">25. Metadata</a></h1>
<p>FFmpeg is able to dump metadata from media files into a simple UTF-8-encoded
INI-like text file and then load it back using the metadata muxer/demuxer.
<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>
<!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>
<!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>
<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>
</ul></li>
- <li><a name="toc-Demuxers" href="#Demuxers">4. Demuxers</a>
+ <li><a name="toc-Decoders" href="#Decoders">4. Decoders</a></li>
+ <li><a name="toc-Video-Decoders" href="#Video-Decoders">5. Video Decoders</a>
<ul class="toc">
- <li><a name="toc-image2" href="#image2">4.1 image2</a></li>
- <li><a name="toc-applehttp-1" href="#applehttp-1">4.2 applehttp</a></li>
+ <li><a name="toc-rawvideo" href="#rawvideo">5.1 rawvideo</a>
+ <ul class="toc">
+ <li><a name="toc-Options-1" href="#Options-1">5.1.1 Options</a></li>
+ </ul>
+</li>
</ul></li>
- <li><a name="toc-Muxers" href="#Muxers">5. Muxers</a>
+ <li><a name="toc-Demuxers" href="#Demuxers">6. Demuxers</a>
<ul class="toc">
- <li><a name="toc-crc-1" href="#crc-1">5.1 crc</a></li>
- <li><a name="toc-framecrc-1" href="#framecrc-1">5.2 framecrc</a></li>
- <li><a name="toc-image2-1" href="#image2-1">5.3 image2</a></li>
- <li><a name="toc-mpegts" href="#mpegts">5.4 mpegts</a></li>
- <li><a name="toc-null" href="#null">5.5 null</a></li>
+ <li><a name="toc-image2" href="#image2">6.1 image2</a></li>
+ <li><a name="toc-applehttp-1" href="#applehttp-1">6.2 applehttp</a></li>
</ul></li>
- <li><a name="toc-Protocols" href="#Protocols">6. Protocols</a>
+ <li><a name="toc-Protocols" href="#Protocols">7. Protocols</a>
<ul class="toc">
- <li><a name="toc-applehttp" href="#applehttp">6.1 applehttp</a></li>
- <li><a name="toc-concat" href="#concat">6.2 concat</a></li>
- <li><a name="toc-file" href="#file">6.3 file</a></li>
- <li><a name="toc-gopher" href="#gopher">6.4 gopher</a></li>
- <li><a name="toc-http" href="#http">6.5 http</a></li>
- <li><a name="toc-mmst" href="#mmst">6.6 mmst</a></li>
- <li><a name="toc-mmsh" href="#mmsh">6.7 mmsh</a></li>
- <li><a name="toc-md5" href="#md5">6.8 md5</a></li>
- <li><a name="toc-pipe" href="#pipe">6.9 pipe</a></li>
- <li><a name="toc-rtmp" href="#rtmp">6.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">6.11 rtmp, rtmpe, rtmps, rtmpt, rtmpte</a></li>
- <li><a name="toc-rtp" href="#rtp">6.12 rtp</a></li>
- <li><a name="toc-rtsp" href="#rtsp">6.13 rtsp</a></li>
- <li><a name="toc-sap" href="#sap">6.14 sap</a>
+ <li><a name="toc-applehttp" href="#applehttp">7.1 applehttp</a></li>
+ <li><a name="toc-concat" href="#concat">7.2 concat</a></li>
+ <li><a name="toc-file" href="#file">7.3 file</a></li>
+ <li><a name="toc-gopher" href="#gopher">7.4 gopher</a></li>
+ <li><a name="toc-http" href="#http">7.5 http</a></li>
+ <li><a name="toc-mmst" href="#mmst">7.6 mmst</a></li>
+ <li><a name="toc-mmsh" href="#mmsh">7.7 mmsh</a></li>
+ <li><a name="toc-md5" href="#md5">7.8 md5</a></li>
+ <li><a name="toc-pipe" href="#pipe">7.9 pipe</a></li>
+ <li><a name="toc-rtmp" href="#rtmp">7.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">7.11 rtmp, rtmpe, rtmps, rtmpt, rtmpte</a></li>
+ <li><a name="toc-rtp" href="#rtp">7.12 rtp</a></li>
+ <li><a name="toc-rtsp" href="#rtsp">7.13 rtsp</a></li>
+ <li><a name="toc-sap" href="#sap">7.14 sap</a>
<ul class="toc">
- <li><a name="toc-Muxer" href="#Muxer">6.14.1 Muxer</a></li>
- <li><a name="toc-Demuxer" href="#Demuxer">6.14.2 Demuxer</a></li>
+ <li><a name="toc-Muxer" href="#Muxer">7.14.1 Muxer</a></li>
+ <li><a name="toc-Demuxer" href="#Demuxer">7.14.2 Demuxer</a></li>
</ul></li>
- <li><a name="toc-tcp" href="#tcp">6.15 tcp</a></li>
- <li><a name="toc-udp" href="#udp">6.16 udp</a></li>
+ <li><a name="toc-tcp" href="#tcp">7.15 tcp</a></li>
+ <li><a name="toc-udp" href="#udp">7.16 udp</a></li>
</ul></li>
- <li><a name="toc-Input-Devices" href="#Input-Devices">7. Input Devices</a>
+ <li><a name="toc-Input-Devices" href="#Input-Devices">8. Input Devices</a>
<ul class="toc">
- <li><a name="toc-alsa" href="#alsa">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" href="#oss">7.7 oss</a></li>
- <li><a name="toc-sndio" href="#sndio">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-alsa" href="#alsa">8.1 alsa</a></li>
+ <li><a name="toc-bktr" href="#bktr">8.2 bktr</a></li>
+ <li><a name="toc-dv1394" href="#dv1394">8.3 dv1394</a></li>
+ <li><a name="toc-fbdev" href="#fbdev">8.4 fbdev</a></li>
+ <li><a name="toc-jack" href="#jack">8.5 jack</a></li>
+ <li><a name="toc-libdc1394" href="#libdc1394">8.6 libdc1394</a></li>
+ <li><a name="toc-oss" href="#oss">8.7 oss</a></li>
+ <li><a name="toc-sndio" href="#sndio">8.8 sndio</a></li>
+ <li><a name="toc-video4linux-and-video4linux2" href="#video4linux-and-video4linux2">8.9 video4linux and video4linux2</a></li>
+ <li><a name="toc-vfwcap" href="#vfwcap">8.10 vfwcap</a></li>
+ <li><a name="toc-x11grab" href="#x11grab">8.11 x11grab</a></li>
</ul>
</li>
</ul>
<p>Each media stream information is printed within a dedicated section
with name "STREAM".
</p>
+</dd>
+<dt> ‘<samp>-i <var>input_file</var></samp>’</dt>
+<dd><p>Read <var>input_file</var>.
+</p>
+</dd>
+</dl>
+
+<a name="Decoders"></a>
+<h1 class="chapter"><a href="ffprobe.html#toc-Decoders">4. 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="ffprobe.html#toc-Video-Decoders">5. 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="ffprobe.html#toc-rawvideo">5.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="ffprobe.html#toc-Options-1">5.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="ffprobe.html#toc-Demuxers">4. Demuxers</a></h1>
+<h1 class="chapter"><a href="ffprobe.html#toc-Demuxers">6. Demuxers</a></h1>
<p>Demuxers are configured elements in FFmpeg which allow to read the
multimedia streams from a particular type of file.
<p>The description of some of the currently available demuxers follows.
</p>
<a name="image2"></a>
-<h2 class="section"><a href="ffprobe.html#toc-image2">4.1 image2</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-image2">6.1 image2</a></h2>
<p>Image file demuxer.
</p>
</pre></td></tr></table>
<a name="applehttp-1"></a>
-<h2 class="section"><a href="ffprobe.html#toc-applehttp-1">4.2 applehttp</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-applehttp-1">6.2 applehttp</a></h2>
<p>Apple HTTP Live Streaming demuxer.
</p>
The total bitrate of the variant that the stream belongs to is
available in a metadata key named "variant_bitrate".
</p>
-<a name="Muxers"></a>
-<h1 class="chapter"><a href="ffprobe.html#toc-Muxers">5. Muxers</a></h1>
-
-<p>Muxers are configured elements in FFmpeg which allow writing
-multimedia streams to a particular type of file.
-</p>
-<p>When you configure your FFmpeg build, all the supported muxers
-are enabled by default. You can list all available muxers using the
-configure option <code>--list-muxers</code>.
-</p>
-<p>You can disable all the muxers with the configure option
-<code>--disable-muxers</code> and selectively enable / disable single muxers
-with the options <code>--enable-muxer=<var>MUXER</var></code> /
-<code>--disable-muxer=<var>MUXER</var></code>.
-</p>
-<p>The option <code>-formats</code> of the ff* tools will display the list of
-enabled muxers.
-</p>
-<p>A description of some of the currently available muxers follows.
-</p>
-<p><a name="crc"></a>
-</p><a name="crc-1"></a>
-<h2 class="section"><a href="ffprobe.html#toc-crc-1">5.1 crc</a></h2>
-
-<p>CRC (Cyclic Redundancy Check) testing format.
-</p>
-<p>This muxer computes and prints the Adler-32 CRC of all the input audio
-and video frames. By default audio frames are converted to signed
-16-bit raw audio and video frames to raw video before computing the
-CRC.
-</p>
-<p>The output of the muxer consists of a single line of the form:
-CRC=0x<var>CRC</var>, where <var>CRC</var> is a hexadecimal number 0-padded to
-8 digits containing the CRC for all the decoded input frames.
-</p>
-<p>For example to compute the CRC of the input, and store it in the file
-‘<tt>out.crc</tt>’:
-</p><table><tr><td> </td><td><pre class="example">ffmpeg -i INPUT -f crc out.crc
-</pre></td></tr></table>
-
-<p>You can print the CRC to stdout with the command:
-</p><table><tr><td> </td><td><pre class="example">ffmpeg -i INPUT -f crc -
-</pre></td></tr></table>
-
-<p>You can select the output format of each frame with ‘<tt>ffmpeg</tt>’ by
-specifying the audio and video codec and format. For example to
-compute the CRC of the input audio converted to PCM unsigned 8-bit
-and the input video converted to MPEG-2 video, use the command:
-</p><table><tr><td> </td><td><pre class="example">ffmpeg -i INPUT -acodec pcm_u8 -vcodec mpeg2video -f crc -
-</pre></td></tr></table>
-
-<p>See also the <code>framecrc</code> muxer (see <a href="#framecrc">framecrc</a>).
-</p>
-<p><a name="framecrc"></a>
-</p><a name="framecrc-1"></a>
-<h2 class="section"><a href="ffprobe.html#toc-framecrc-1">5.2 framecrc</a></h2>
-
-<p>Per-frame CRC (Cyclic Redundancy Check) testing format.
-</p>
-<p>This muxer computes and prints the Adler-32 CRC for each decoded audio
-and video frame. By default audio frames are converted to signed
-16-bit raw audio and video frames to raw video before computing the
-CRC.
-</p>
-<p>The output of the muxer consists of a line for each audio and video
-frame of the form: <var>stream_index</var>, <var>frame_dts</var>,
-<var>frame_size</var>, 0x<var>CRC</var>, where <var>CRC</var> is a hexadecimal
-number 0-padded to 8 digits containing the CRC of the decoded frame.
-</p>
-<p>For example to compute the CRC of each decoded frame in the input, and
-store it in the file ‘<tt>out.crc</tt>’:
-</p><table><tr><td> </td><td><pre class="example">ffmpeg -i INPUT -f framecrc out.crc
-</pre></td></tr></table>
-
-<p>You can print the CRC of each decoded frame to stdout with the command:
-</p><table><tr><td> </td><td><pre class="example">ffmpeg -i INPUT -f framecrc -
-</pre></td></tr></table>
-
-<p>You can select the output format of each frame with ‘<tt>ffmpeg</tt>’ by
-specifying the audio and video codec and format. For example, to
-compute the CRC of each decoded input audio frame converted to PCM
-unsigned 8-bit and of each decoded input video frame converted to
-MPEG-2 video, use the command:
-</p><table><tr><td> </td><td><pre class="example">ffmpeg -i INPUT -acodec pcm_u8 -vcodec mpeg2video -f framecrc -
-</pre></td></tr></table>
-
-<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="ffprobe.html#toc-image2-1">5.3 image2</a></h2>
-
-<p>Image file muxer.
-</p>
-<p>The image file muxer writes video frames to image files.
-</p>
-<p>The output filenames are specified by a pattern, which can be used to
-produce sequentially numbered series of files.
-The pattern may contain the string "%d" or "%0<var>N</var>d", this string
-specifies the position of the characters representing a numbering in
-the filenames. If the form "%0<var>N</var>d" is used, the string
-representing the number in each filename is 0-padded to <var>N</var>
-digits. The literal character ’%’ can be specified in the pattern with
-the string "%%".
-</p>
-<p>If the pattern contains "%d" or "%0<var>N</var>d", the first filename of
-the file list specified will contain the number 1, all the following
-numbers will be sequential.
-</p>
-<p>The pattern may contain a suffix which is used to automatically
-determine the format of the image files to write.
-</p>
-<p>For example the pattern "img-%03d.bmp" will specify a sequence of
-filenames of the form ‘<tt>img-001.bmp</tt>’, ‘<tt>img-002.bmp</tt>’, ...,
-‘<tt>img-010.bmp</tt>’, etc.
-The pattern "img%%-%d.jpg" will specify a sequence of filenames of the
-form ‘<tt>img%-1.jpg</tt>’, ‘<tt>img%-2.jpg</tt>’, ..., ‘<tt>img%-10.jpg</tt>’,
-etc.
-</p>
-<p>The following example shows how to use ‘<tt>ffmpeg</tt>’ for creating a
-sequence of files ‘<tt>img-001.jpeg</tt>’, ‘<tt>img-002.jpeg</tt>’, ...,
-taking one image every second from the input video:
-</p><table><tr><td> </td><td><pre class="example">ffmpeg -i in.avi -r 1 -f image2 'img-%03d.jpeg'
-</pre></td></tr></table>
-
-<p>Note that with ‘<tt>ffmpeg</tt>’, if the format is not specified with the
-<code>-f</code> option and the output filename specifies an image file
-format, the image2 muxer is automatically selected, so the previous
-command can be written as:
-</p><table><tr><td> </td><td><pre class="example">ffmpeg -i in.avi -r 1 'img-%03d.jpeg'
-</pre></td></tr></table>
-
-<p>Note also that the pattern must not necessarily contain "%d" or
-"%0<var>N</var>d", for example to create a single image file
-‘<tt>img.jpeg</tt>’ from the input video you can employ the command:
-</p><table><tr><td> </td><td><pre class="example">ffmpeg -i in.avi -f image2 -vframes 1 img.jpeg
-</pre></td></tr></table>
-
-<p>The image muxer supports the .Y.U.V image file format. This format is
-special in that that each image frame consists of three files, for
-each of the YUV420P components. To read or write this image file format,
-specify the name of the ’.Y’ file. The muxer will automatically open the
-’.U’ and ’.V’ files as required.
-</p>
-<a name="mpegts"></a>
-<h2 class="section"><a href="ffprobe.html#toc-mpegts">5.4 mpegts</a></h2>
-
-<p>MPEG transport stream muxer.
-</p>
-<p>This muxer implements ISO 13818-1 and part of ETSI EN 300 468.
-</p>
-<p>The muxer options are:
-</p>
-<dl compact="compact">
-<dt> ‘<samp>-mpegts_original_network_id <var>number</var></samp>’</dt>
-<dd><p>Set the original_network_id (default 0x0001). This is unique identifier
-of a network in DVB. Its main use is in the unique identification of a
-service through the path Original_Network_ID, Transport_Stream_ID.
-</p></dd>
-<dt> ‘<samp>-mpegts_transport_stream_id <var>number</var></samp>’</dt>
-<dd><p>Set the transport_stream_id (default 0x0001). This identifies a
-transponder in DVB.
-</p></dd>
-<dt> ‘<samp>-mpegts_service_id <var>number</var></samp>’</dt>
-<dd><p>Set the service_id (default 0x0001) also known as program in DVB.
-</p></dd>
-<dt> ‘<samp>-mpegts_pmt_start_pid <var>number</var></samp>’</dt>
-<dd><p>Set the first PID for PMT (default 0x1000, max 0x1f00).
-</p></dd>
-<dt> ‘<samp>-mpegts_start_pid <var>number</var></samp>’</dt>
-<dd><p>Set the first PID for data packets (default 0x0100, max 0x0f00).
-</p></dd>
-</dl>
-
-<p>The recognized metadata settings in mpegts muxer are <code>service_provider</code>
-and <code>service_name</code>. If they are not set the default for
-<code>service_provider</code> is "FFmpeg" and the default for
-<code>service_name</code> is "Service01".
-</p>
-<table><tr><td> </td><td><pre class="example">ffmpeg -i file.mpg -acodec copy -vcodec copy \
- -mpegts_original_network_id 0x1122 \
- -mpegts_transport_stream_id 0x3344 \
- -mpegts_service_id 0x5566 \
- -mpegts_pmt_start_pid 0x1500 \
- -mpegts_start_pid 0x150 \
- -metadata service_provider="Some provider" \
- -metadata service_name="Some Channel" \
- -y out.ts
-</pre></td></tr></table>
-
-<a name="null"></a>
-<h2 class="section"><a href="ffprobe.html#toc-null">5.5 null</a></h2>
-
-<p>Null muxer.
-</p>
-<p>This muxer does not generate any output file, it is mainly useful for
-testing or benchmarking purposes.
-</p>
-<p>For example to benchmark decoding with ‘<tt>ffmpeg</tt>’ you can use the
-command:
-</p><table><tr><td> </td><td><pre class="example">ffmpeg -benchmark -i INPUT -f null out.null
-</pre></td></tr></table>
-
-<p>Note that the above command does not read or write the ‘<tt>out.null</tt>’
-file, but specifying the output file is required by the ‘<tt>ffmpeg</tt>’
-syntax.
-</p>
-<p>Alternatively you can write the command as:
-</p><table><tr><td> </td><td><pre class="example">ffmpeg -benchmark -i INPUT -f null -
-</pre></td></tr></table>
-
<a name="Protocols"></a>
-<h1 class="chapter"><a href="ffprobe.html#toc-Protocols">6. Protocols</a></h1>
+<h1 class="chapter"><a href="ffprobe.html#toc-Protocols">7. Protocols</a></h1>
<p>Protocols are configured elements in FFmpeg which allow to access
resources which require the use of a particular protocol.
<p>A description of the currently available protocols follows.
</p>
<a name="applehttp"></a>
-<h2 class="section"><a href="ffprobe.html#toc-applehttp">6.1 applehttp</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-applehttp">7.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="ffprobe.html#toc-concat">6.2 concat</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-concat">7.2 concat</a></h2>
<p>Physical concatenation protocol.
</p>
many shells.
</p>
<a name="file"></a>
-<h2 class="section"><a href="ffprobe.html#toc-file">6.3 file</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-file">7.3 file</a></h2>
<p>File access protocol.
</p>
"file:FILE.mpeg".
</p>
<a name="gopher"></a>
-<h2 class="section"><a href="ffprobe.html#toc-gopher">6.4 gopher</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-gopher">7.4 gopher</a></h2>
<p>Gopher protocol.
</p>
<a name="http"></a>
-<h2 class="section"><a href="ffprobe.html#toc-http">6.5 http</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-http">7.5 http</a></h2>
<p>HTTP (Hyper Text Transfer Protocol).
</p>
<a name="mmst"></a>
-<h2 class="section"><a href="ffprobe.html#toc-mmst">6.6 mmst</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-mmst">7.6 mmst</a></h2>
<p>MMS (Microsoft Media Server) protocol over TCP.
</p>
<a name="mmsh"></a>
-<h2 class="section"><a href="ffprobe.html#toc-mmsh">6.7 mmsh</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-mmsh">7.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="ffprobe.html#toc-md5">6.8 md5</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-md5">7.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="ffprobe.html#toc-pipe">6.9 pipe</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-pipe">7.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="ffprobe.html#toc-rtmp">6.10 rtmp</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-rtmp">7.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="ffprobe.html#toc-rtmp_002c-rtmpe_002c-rtmps_002c-rtmpt_002c-rtmpte">6.11 rtmp, rtmpe, rtmps, rtmpt, rtmpte</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-rtmp_002c-rtmpe_002c-rtmps_002c-rtmpt_002c-rtmpte">7.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="ffprobe.html#toc-rtp">6.12 rtp</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-rtp">7.12 rtp</a></h2>
<p>Real-Time Protocol.
</p>
<a name="rtsp"></a>
-<h2 class="section"><a href="ffprobe.html#toc-rtsp">6.13 rtsp</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-rtsp">7.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="ffprobe.html#toc-sap">6.14 sap</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-sap">7.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="ffprobe.html#toc-Muxer">6.14.1 Muxer</a></h3>
+<h3 class="subsection"><a href="ffprobe.html#toc-Muxer">7.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="ffprobe.html#toc-Demuxer">6.14.2 Demuxer</a></h3>
+<h3 class="subsection"><a href="ffprobe.html#toc-Demuxer">7.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="ffprobe.html#toc-tcp">6.15 tcp</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-tcp">7.15 tcp</a></h2>
<p>Trasmission Control Protocol.
</p>
</dl>
<a name="udp"></a>
-<h2 class="section"><a href="ffprobe.html#toc-udp">6.16 udp</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-udp">7.16 udp</a></h2>
<p>User Datagram Protocol.
</p>
</pre></td></tr></table>
<a name="Input-Devices"></a>
-<h1 class="chapter"><a href="ffprobe.html#toc-Input-Devices">7. Input Devices</a></h1>
+<h1 class="chapter"><a href="ffprobe.html#toc-Input-Devices">8. 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>A description of the currently available input devices follows.
</p>
<a name="alsa"></a>
-<h2 class="section"><a href="ffprobe.html#toc-alsa">7.1 alsa</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-alsa">8.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="ffprobe.html#toc-bktr">7.2 bktr</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-bktr">8.2 bktr</a></h2>
<p>BSD video input device.
</p>
<a name="dv1394"></a>
-<h2 class="section"><a href="ffprobe.html#toc-dv1394">7.3 dv1394</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-dv1394">8.3 dv1394</a></h2>
<p>Linux DV 1394 input device.
</p>
<a name="fbdev"></a>
-<h2 class="section"><a href="ffprobe.html#toc-fbdev">7.4 fbdev</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-fbdev">8.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="ffprobe.html#toc-jack">7.5 jack</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-jack">8.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="ffprobe.html#toc-libdc1394">7.6 libdc1394</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-libdc1394">8.6 libdc1394</a></h2>
<p>IIDC1394 input device, based on libdc1394 and libraw1394.
</p>
<a name="oss"></a>
-<h2 class="section"><a href="ffprobe.html#toc-oss">7.7 oss</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-oss">8.7 oss</a></h2>
<p>Open Sound System input device.
</p>
<a href="http://manuals.opensound.com/usersguide/dsp.html">http://manuals.opensound.com/usersguide/dsp.html</a>
</p>
<a name="sndio"></a>
-<h2 class="section"><a href="ffprobe.html#toc-sndio">7.8 sndio</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-sndio">8.8 sndio</a></h2>
<p>sndio input device.
</p>
</pre></td></tr></table>
<a name="video4linux-and-video4linux2"></a>
-<h2 class="section"><a href="ffprobe.html#toc-video4linux-and-video4linux2">7.9 video4linux and video4linux2</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-video4linux-and-video4linux2">8.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="ffprobe.html#toc-vfwcap">7.10 vfwcap</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-vfwcap">8.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="ffprobe.html#toc-x11grab">7.11 x11grab</a></h2>
+<h2 class="section"><a href="ffprobe.html#toc-x11grab">8.11 x11grab</a></h2>
<p>X11 video input device.
</p>
<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>
<!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></li>
<li><a name="toc-Platform-Specific-information" href="#Platform-Specific-information">3. Platform Specific information</a>
<ul class="toc">
- <li><a name="toc-DOS" href="#DOS">3.1 DOS</a>
- <ul class="toc">
- <li><a name="toc-DJGPP" href="#DJGPP">3.1.1 DJGPP</a></li>
- </ul></li>
+ <li><a name="toc-DOS" href="#DOS">3.1 DOS</a></li>
<li><a name="toc-OS_002f2" href="#OS_002f2">3.2 OS/2</a></li>
<li><a name="toc-Unix_002dlike" href="#Unix_002dlike">3.3 Unix-like</a>
<ul class="toc">
<tr><td width="40%">BMP</td><td width="10%">X</td><td width="10%">X</td><td width="40%">Microsoft BMP image</td></tr>
<tr><td width="40%">DPX</td><td width="10%">X</td><td width="10%">X</td><td width="40%">Digital Picture Exchange</td></tr>
<tr><td width="40%">JPEG</td><td width="10%">X</td><td width="10%">X</td><td width="40%">Progressive JPEG is not supported.</td></tr>
-<tr><td width="40%">JPEG 2000</td><td width="10%"></td><td width="10%">E</td><td width="40%">decoding supported through external library libopenjpeg</td></tr>
+<tr><td width="40%">JPEG 2000</td><td width="10%">X</td><td width="10%">X</td></tr>
<tr><td width="40%">JPEG-LS</td><td width="10%">X</td><td width="10%">X</td></tr>
<tr><td width="40%">LJPEG</td><td width="10%">X</td><td width="10%"></td><td width="40%">Lossless JPEG</td></tr>
<tr><td width="40%">PAM</td><td width="10%">X</td><td width="10%">X</td><td width="40%">PAM is a PNM extension with alpha support.</td></tr>
<tr><td width="40%">DPCM Xan</td><td width="10%"></td><td width="10%">X</td><td width="40%">Used in Origin’s Wing Commander IV AVI files.</td></tr>
<tr><td width="40%">DSP Group TrueSpeech</td><td width="10%"></td><td width="10%">X</td></tr>
<tr><td width="40%">DV audio</td><td width="10%"></td><td width="10%">X</td></tr>
-<tr><td width="40%">Enhanced AC-3</td><td width="10%"></td><td width="10%">X</td></tr>
+<tr><td width="40%">Enhanced AC-3</td><td width="10%">X</td><td width="10%">X</td></tr>
<tr><td width="40%">FLAC (Free Lossless Audio Codec)</td><td width="10%">X</td><td width="10%">IX</td></tr>
<tr><td width="40%">GSM</td><td width="10%">E</td><td width="10%">X</td><td width="40%">encoding supported through external library libgsm</td></tr>
<tr><td width="40%">GSM Microsoft variant</td><td width="10%">E</td><td width="10%">X</td><td width="40%">encoding supported through external library libgsm</td></tr>
<p>Using a cross-compiler is preferred for various reasons.
</p>
-<a name="DJGPP"></a>
-<h3 class="subsection"><a href="general.html#toc-DJGPP">3.1.1 DJGPP</a></h3>
-
-<p>FFmpeg cannot be compiled because of broken system headers, add
-<code>--extra-cflags=-U__STRICT_ANSI__</code> to the configure options as a
-workaround.
-</p>
<a name="OS_002f2"></a>
<h2 class="section"><a href="general.html#toc-OS_002f2">3.2 OS/2</a></h2>
<p>FFmpeg automatically passes <code>-fno-common</code> to the compiler to work around
a GCC bug (see <a href="http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37216">http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37216</a>).
</p>
-<p>Within the MSYS shell, configure and make with:
-</p>
-<table><tr><td> </td><td><pre class="example">./configure --enable-memalign-hack
-make
-make install
-</pre></td></tr></table>
-
-<p>This will install ‘<tt>ffmpeg.exe</tt>’ along with many other development files
-to ‘<tt>/usr/local</tt>’. You may specify another install path using the
-<code>--prefix</code> option in ‘<tt>configure</tt>’.
-</p>
<p>Notes:
</p>
<ul>
<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>
<!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>
<li><a name="toc-pad" href="#pad">8.20 pad</a></li>
<li><a name="toc-pixdesctest" href="#pixdesctest">8.21 pixdesctest</a></li>
<li><a name="toc-scale" href="#scale">8.22 scale</a></li>
- <li><a name="toc-setdar-1" href="#setdar-1">8.23 setdar</a></li>
- <li><a name="toc-setpts" href="#setpts">8.24 setpts</a></li>
- <li><a name="toc-setsar-1" href="#setsar-1">8.25 setsar</a></li>
- <li><a name="toc-settb" href="#settb">8.26 settb</a></li>
- <li><a name="toc-showinfo" href="#showinfo">8.27 showinfo</a></li>
- <li><a name="toc-slicify" href="#slicify">8.28 slicify</a></li>
- <li><a name="toc-transpose" href="#transpose">8.29 transpose</a></li>
- <li><a name="toc-unsharp" href="#unsharp">8.30 unsharp</a></li>
- <li><a name="toc-vflip" href="#vflip">8.31 vflip</a></li>
- <li><a name="toc-yadif" href="#yadif">8.32 yadif</a></li>
+ <li><a name="toc-select" href="#select">8.23 select</a></li>
+ <li><a name="toc-setdar-1" href="#setdar-1">8.24 setdar</a></li>
+ <li><a name="toc-setpts" href="#setpts">8.25 setpts</a></li>
+ <li><a name="toc-setsar-1" href="#setsar-1">8.26 setsar</a></li>
+ <li><a name="toc-settb" href="#settb">8.27 settb</a></li>
+ <li><a name="toc-showinfo" href="#showinfo">8.28 showinfo</a></li>
+ <li><a name="toc-slicify" href="#slicify">8.29 slicify</a></li>
+ <li><a name="toc-split" href="#split">8.30 split</a></li>
+ <li><a name="toc-transpose" href="#transpose">8.31 transpose</a></li>
+ <li><a name="toc-unsharp" href="#unsharp">8.32 unsharp</a></li>
+ <li><a name="toc-vflip" href="#vflip">8.33 vflip</a></li>
+ <li><a name="toc-yadif" href="#yadif">8.34 yadif</a></li>
</ul></li>
<li><a name="toc-Video-Sources" href="#Video-Sources">9. Video Sources</a>
<ul class="toc">
<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>
scale='min(500\, iw*3/2):-1'
</pre></td></tr></table>
+<a name="select"></a>
+<h2 class="section"><a href="libavfilter.html#toc-select">8.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="libavfilter.html#toc-setdar-1">8.23 setdar</a></h2>
+<h2 class="section"><a href="libavfilter.html#toc-setdar-1">8.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="libavfilter.html#toc-setpts">8.24 setpts</a></h2>
+<h2 class="section"><a href="libavfilter.html#toc-setpts">8.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="libavfilter.html#toc-setsar-1">8.25 setsar</a></h2>
+<h2 class="section"><a href="libavfilter.html#toc-setsar-1">8.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="libavfilter.html#toc-settb">8.26 settb</a></h2>
+<h2 class="section"><a href="libavfilter.html#toc-settb">8.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="libavfilter.html#toc-showinfo">8.27 showinfo</a></h2>
+<h2 class="section"><a href="libavfilter.html#toc-showinfo">8.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="libavfilter.html#toc-slicify">8.28 slicify</a></h2>
+<h2 class="section"><a href="libavfilter.html#toc-slicify">8.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="libavfilter.html#toc-split">8.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="libavfilter.html#toc-transpose">8.29 transpose</a></h2>
+<h2 class="section"><a href="libavfilter.html#toc-transpose">8.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="libavfilter.html#toc-unsharp">8.30 unsharp</a></h2>
+<h2 class="section"><a href="libavfilter.html#toc-unsharp">8.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="libavfilter.html#toc-vflip">8.31 vflip</a></h2>
+<h2 class="section"><a href="libavfilter.html#toc-vflip">8.33 vflip</a></h2>
<p>Flip the input video vertically.
</p>
</pre></td></tr></table>
<a name="yadif"></a>
-<h2 class="section"><a href="libavfilter.html#toc-yadif">8.32 yadif</a></h2>
+<h2 class="section"><a href="libavfilter.html#toc-yadif">8.34 yadif</a></h2>
<p>Deinterlace the input video ("yadif" means "yet another deinterlacing
filter").
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>
<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>
/**
* Audio channel layout.
* - encoding: set by user.
- * - decoding: set by libavcodec.
+ * - decoding: set by user, may be overwritten by libavcodec.
*/
int64_t channel_layout;
*/
enum AVAudioServiceType audio_service_type;
+ /**
+ * desired sample format
+ * - encoding: Not used.
+ * - decoding: Set by user.
+ * Decoder will decode to this format if it can.
+ */
+ enum AVSampleFormat request_sample_fmt;
+
/**
* Current statistics for PTS correction.
* - decoding: maintained and used by libavcodec, not intended to be used by user apps
int64_t pts_correction_last_pts; /// PTS of the last frame
int64_t pts_correction_last_dts; /// DTS of the last frame
- /**
- * desired sample format
- * - encoding: Not used.
- * - decoding: Set by user.
- * Decoder will decode to this format if it can.
- */
- enum AVSampleFormat request_sample_fmt;
} AVCodecContext;
uint8_t* av_packet_get_side_data(AVPacket *pkt, enum AVPacketSideDataType type,
int *size);
+int av_packet_merge_side_data(AVPacket *pkt);
+
+int av_packet_split_side_data(AVPacket *pkt);
+
+
/* resample.c */
struct ReSampleContext;
int avpicture_get_size(enum PixelFormat pix_fmt, int width, int height);
void avcodec_get_chroma_sub_sample(enum PixelFormat pix_fmt, int *h_shift, int *v_shift);
+#if FF_API_GET_PIX_FMT_NAME
/**
* Return the short name for a pixel format.
*
* \see av_get_pix_fmt(), av_get_pix_fmt_string().
+ * @deprecated Deprecated in favor of av_get_pix_fmt_name().
*/
+attribute_deprecated
const char *avcodec_get_pix_fmt_name(enum PixelFormat pix_fmt);
+#endif
void avcodec_set_dimensions(AVCodecContext *s, int width, int height);
#include "libavutil/opt.h"
#endif
-#endif
+#endif /* AVCODEC_OPT_H */
#define AVCODEC_VERSION_H
#define LIBAVCODEC_VERSION_MAJOR 53
-#define LIBAVCODEC_VERSION_MINOR 6
+#define LIBAVCODEC_VERSION_MINOR 7
#define LIBAVCODEC_VERSION_MICRO 0
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
#ifndef FF_API_FLAC_GLOBAL_OPTS
#define FF_API_FLAC_GLOBAL_OPTS (LIBAVCODEC_VERSION_MAJOR < 54)
#endif
+#ifndef FF_API_GET_PIX_FMT_NAME
+#define FF_API_GET_PIX_FMT_NAME (LIBAVCODEC_VERSION_MAJOR < 54)
+#endif
#endif /* AVCODEC_VERSION_H */
#define AVDEVICE_AVDEVICE_H
#include "libavutil/avutil.h"
+#include "libavformat/avformat.h"
#define LIBAVDEVICE_VERSION_MAJOR 53
-#define LIBAVDEVICE_VERSION_MINOR 0
-#define LIBAVDEVICE_VERSION_MICRO 0
+#define LIBAVDEVICE_VERSION_MINOR 1
+#define LIBAVDEVICE_VERSION_MICRO 1
#define LIBAVDEVICE_VERSION_INT AV_VERSION_INT(LIBAVDEVICE_VERSION_MAJOR, \
LIBAVDEVICE_VERSION_MINOR, \
LIBAVDEVICE_VERSION_MICRO)
#define LIBAVDEVICE_BUILD LIBAVDEVICE_VERSION_INT
+#ifndef FF_API_V4L
+#define FF_API_V4L (LIBAVDEVICE_VERSION_MAJOR < 54)
+#endif
+
/**
* Return the LIBAVDEVICE_VERSION_INT constant.
*/
#include "libavcodec/avcodec.h" // AVFrame
#include "avfilter.h"
+#include "vsrc_buffer.h"
/**
* Copy the frame properties of src to dst, without copying the actual
*/
void avfilter_copy_frame_props(AVFilterBufferRef *dst, const AVFrame *src);
+/**
+ * Create and return a picref reference from the data and properties
+ * contained in frame.
+ *
+ * @param perms permissions to assign to the new buffer reference
+ */
+AVFilterBufferRef *avfilter_get_video_buffer_ref_from_frame(const AVFrame *frame, int perms);
+
+/**
+ * Add frame data to buffer_src.
+ *
+ * @param buffer_src pointer to a buffer source context
+ * @param flags a combination of AV_VSRC_BUF_FLAG_* flags
+ * @return >= 0 in case of success, a negative AVERROR code in case of
+ * failure
+ */
+int av_vsrc_buffer_add_frame(AVFilterContext *buffer_src,
+ const AVFrame *frame, int flags);
+
#endif /* AVFILTER_AVCODEC_H */
#include "libavutil/samplefmt.h"
#define LIBAVFILTER_VERSION_MAJOR 2
-#define LIBAVFILTER_VERSION_MINOR 5
+#define LIBAVFILTER_VERSION_MINOR 15
#define LIBAVFILTER_VERSION_MICRO 0
#define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \
*/
typedef struct AVFilterBufferRefAudioProps {
int64_t channel_layout; ///< channel layout of audio buffer
- int nb_samples; ///< number of audio samples
- int size; ///< audio buffer size
+ int nb_samples; ///< number of audio samples per channel
uint32_t sample_rate; ///< audio buffer sample rate
int planar; ///< audio buffer - planar or packed
} AVFilterBufferRefAudioProps;
* Create a list of supported formats. This is intended for use in
* AVFilter->query_formats().
*
- * @param fmts list of media formats, terminated by -1
+ * @param fmts list of media formats, terminated by -1. If NULL an
+ * empty list is created.
* @return the format list, with no existing references
*/
AVFilterFormats *avfilter_make_format_list(const int *fmts);
* Input audio pads only.
*/
AVFilterBufferRef *(*get_audio_buffer)(AVFilterLink *link, int perms,
- enum AVSampleFormat sample_fmt, int size,
+ enum AVSampleFormat sample_fmt, int nb_samples,
int64_t channel_layout, int planar);
/**
/** default handler for get_audio_buffer() for audio inputs */
AVFilterBufferRef *avfilter_default_get_audio_buffer(AVFilterLink *link, int perms,
- enum AVSampleFormat sample_fmt, int size,
+ enum AVSampleFormat sample_fmt, int nb_samples,
int64_t channel_layout, int planar);
/**
int avfilter_link(AVFilterContext *src, unsigned srcpad,
AVFilterContext *dst, unsigned dstpad);
+/**
+ * Free the link in *link, and set its pointer to NULL.
+ */
+void avfilter_link_free(AVFilterLink **link);
+
/**
* Negotiate the media format, dimensions, etc of all inputs to a filter.
*
* @param format the pixel format of the image specified by the data and linesize arrays
*/
AVFilterBufferRef *
-avfilter_get_video_buffer_ref_from_arrays(uint8_t *data[4], int linesize[4], int perms,
+avfilter_get_video_buffer_ref_from_arrays(uint8_t * const data[4], const int linesize[4], int perms,
int w, int h, enum PixelFormat format);
/**
* be requested
* @param perms the required access permissions
* @param sample_fmt the format of each sample in the buffer to allocate
- * @param size the buffer size in bytes
+ * @param nb_samples the number of samples per channel
* @param channel_layout the number and type of channels per sample in the buffer to allocate
* @param planar audio data layout - planar or packed
* @return A reference to the samples. This must be unreferenced with
* avfilter_unref_buffer when you are finished with it.
*/
AVFilterBufferRef *avfilter_get_audio_buffer(AVFilterLink *link, int perms,
- enum AVSampleFormat sample_fmt, int size,
+ enum AVSampleFormat sample_fmt, int nb_samples,
int64_t channel_layout, int planar);
+/**
+ * Create an audio buffer reference wrapped around an already
+ * allocated samples buffer.
+ *
+ * @param data pointers to the samples plane buffers
+ * @param linesize linesize for the samples plane buffers
+ * @param perms the required access permissions
+ * @param nb_samples number of samples per channel
+ * @param sample_fmt the format of each sample in the buffer to allocate
+ * @param channel_layout the channel layout of the buffer
+ * @param planar audio data layout - planar or packed
+ */
+AVFilterBufferRef *
+avfilter_get_audio_buffer_ref_from_arrays(uint8_t *data[8], int linesize[8], int perms,
+ int nb_samples, enum AVSampleFormat sample_fmt,
+ int64_t channel_layout, int planar);
+
/**
* Request an input frame from the filter at the other end of the link.
*
&f->output_pads, &f->outputs, p);
}
-#endif /* AVFILTER_AVFILTER_H */
+#endif /* AVFILTER_AVFILTER_H */
AVFilterInOut *inputs, AVFilterInOut *outputs,
AVClass *log_ctx);
-#endif /* AVFILTER_AVFILTERGRAPH_H */
+#endif /* AVFILTER_AVFILTERGRAPH_H */
--- /dev/null
+/*
+ * Copyright (c) 2008 Vitor Sessak
+ *
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef AVFILTER_VSRC_BUFFER_H
+#define AVFILTER_VSRC_BUFFER_H
+
+/**
+ * @file
+ * memory buffer source API for video
+ */
+
+#include "avfilter.h"
+
+/**
+ * Tell av_vsrc_buffer_add_video_buffer_ref() to overwrite the already
+ * cached video buffer with the new added one, otherwise the function
+ * will complain and exit.
+ */
+#define AV_VSRC_BUF_FLAG_OVERWRITE 1
+
+/**
+ * Add video buffer data in picref to buffer_src.
+ *
+ * @param buffer_src pointer to a buffer source context
+ * @param flags a combination of AV_VSRC_BUF_FLAG_* flags
+ * @return >= 0 in case of success, a negative AVERROR code in case of
+ * failure
+ */
+int av_vsrc_buffer_add_video_buffer_ref(AVFilterContext *buffer_src,
+ AVFilterBufferRef *picref, int flags);
+
+#endif /* AVFILTER_VSRC_BUFFER_H */
/**
- * I return the LIBAVFORMAT_VERSION_INT constant. You got
- * a fucking problem with that, douchebag?
+ * Return the LIBAVFORMAT_VERSION_INT constant.
*/
unsigned avformat_version(void);
#include <time.h>
#include <stdio.h> /* FILE */
#include "libavcodec/avcodec.h"
+#include "libavutil/dict.h"
#include "avio.h"
#include "libavformat/version.h"
* variant_bitrate -- the total bitrate of the bitrate variant that the current stream is part of
*/
-#define AV_METADATA_MATCH_CASE 1
-#define AV_METADATA_IGNORE_SUFFIX 2
-#define AV_METADATA_DONT_STRDUP_KEY 4
-#define AV_METADATA_DONT_STRDUP_VAL 8
-#define AV_METADATA_DONT_OVERWRITE 16 ///< Don't overwrite existing tags.
+#if FF_API_OLD_METADATA2
+/**
+ * @defgroup old_metadata Old metadata API
+ * The following functions are deprecated, use
+ * their equivalents from libavutil/dict.h instead.
+ * @{
+ */
-typedef struct {
- char *key;
- char *value;
-}AVMetadataTag;
+#define AV_METADATA_MATCH_CASE AV_DICT_MATCH_CASE
+#define AV_METADATA_IGNORE_SUFFIX AV_DICT_IGNORE_SUFFIX
+#define AV_METADATA_DONT_STRDUP_KEY AV_DICT_DONT_STRDUP_KEY
+#define AV_METADATA_DONT_STRDUP_VAL AV_DICT_DONT_STRDUP_VAL
+#define AV_METADATA_DONT_OVERWRITE AV_DICT_DONT_OVERWRITE
+
+typedef attribute_deprecated AVDictionary AVMetadata;
+typedef attribute_deprecated AVDictionaryEntry AVMetadataTag;
-typedef struct AVMetadata AVMetadata;
-#if FF_API_OLD_METADATA2
typedef struct AVMetadataConv AVMetadataConv;
-#endif
/**
* Get a metadata element with matching key.
* @param flags Allows case as well as suffix-insensitive comparisons.
* @return Found tag or NULL, changing key or value leads to undefined behavior.
*/
-AVMetadataTag *
-av_metadata_get(AVMetadata *m, const char *key, const AVMetadataTag *prev, int flags);
+attribute_deprecated AVDictionaryEntry *
+av_metadata_get(AVDictionary *m, const char *key, const AVDictionaryEntry *prev, int flags);
/**
* Set the given tag in *pm, overwriting an existing tag.
* Passing a NULL value will cause an existing tag to be deleted.
* @return >= 0 on success otherwise an error code <0
*/
-int av_metadata_set2(AVMetadata **pm, const char *key, const char *value, int flags);
+attribute_deprecated int av_metadata_set2(AVDictionary **pm, const char *key, const char *value, int flags);
-#if FF_API_OLD_METADATA2
/**
* This function is provided for compatibility reason and currently does nothing.
*/
attribute_deprecated void av_metadata_conv(struct AVFormatContext *ctx, const AVMetadataConv *d_conv,
const AVMetadataConv *s_conv);
-#endif
/**
- * Copy metadata from one AVMetadata struct into another.
- * @param dst pointer to a pointer to a AVMetadata struct. If *dst is NULL,
+ * Copy metadata from one AVDictionary struct into another.
+ * @param dst pointer to a pointer to a AVDictionary struct. If *dst is NULL,
* this function will allocate a struct for you and put it in *dst
- * @param src pointer to source AVMetadata struct
+ * @param src pointer to source AVDictionary struct
* @param flags flags to use when setting metadata in *dst
- * @note metadata is read using the AV_METADATA_IGNORE_SUFFIX flag
+ * @note metadata is read using the AV_DICT_IGNORE_SUFFIX flag
*/
-void av_metadata_copy(AVMetadata **dst, AVMetadata *src, int flags);
+attribute_deprecated void av_metadata_copy(AVDictionary **dst, AVDictionary *src, int flags);
/**
- * Free all the memory allocated for an AVMetadata struct.
+ * Free all the memory allocated for an AVDictionary struct.
+ */
+attribute_deprecated void av_metadata_free(AVDictionary **m);
+/**
+ * @}
*/
-void av_metadata_free(AVMetadata **m);
+#endif
/* packet functions */
#define AVPROBE_PADDING_SIZE 32 ///< extra allocated bytes at the end of the probe buffer
typedef struct AVFormatParameters {
- AVRational time_base;
- int sample_rate;
- int channels;
- int width;
- int height;
- enum PixelFormat pix_fmt;
- int channel; /**< Used to select DV channel. */
- const char *standard; /**< TV standard, NTSC, PAL, SECAM */
- unsigned int mpeg2ts_raw:1; /**< Force raw MPEG-2 transport stream output, if possible. */
- unsigned int mpeg2ts_compute_pcr:1; /**< Compute exact PCR for each transport
- stream packet (only meaningful if
- mpeg2ts_raw is TRUE). */
- unsigned int initial_pause:1; /**< Do not begin to play the stream
- immediately (RTSP only). */
+#if FF_API_FORMAT_PARAMETERS
+ attribute_deprecated AVRational time_base;
+ attribute_deprecated int sample_rate;
+ attribute_deprecated int channels;
+ attribute_deprecated int width;
+ attribute_deprecated int height;
+ attribute_deprecated enum PixelFormat pix_fmt;
+ attribute_deprecated int channel; /**< Used to select DV channel. */
+ attribute_deprecated const char *standard; /**< deprecated, use demuxer-specific options instead. */
+ attribute_deprecated unsigned int mpeg2ts_raw:1; /**< deprecated, use mpegtsraw demuxer */
+ /**< deprecated, use mpegtsraw demuxer-specific options instead */
+ attribute_deprecated unsigned int mpeg2ts_compute_pcr:1;
+ attribute_deprecated unsigned int initial_pause:1; /**< Do not begin to play the stream
+ immediately (RTSP only). */
+#endif
unsigned int prealloced_context:1;
} AVFormatParameters;
#define AVFMT_NOSTREAMS 0x1000 /**< Format does not require any streams */
#define AVFMT_NOBINSEARCH 0x2000 /**< Format does not allow to fallback to binary search via read_timestamp */
#define AVFMT_NOGENSEARCH 0x4000 /**< Format does not allow to fallback to generic search */
+#define AVFMT_TS_NONSTRICT 0x8000 /**< Format does not require strictly
+ increasing timestamps, but they must
+ still be monotonic */
typedef struct AVOutputFormat {
const char *name;
*/
AVRational sample_aspect_ratio;
- AVMetadata *metadata;
+ AVDictionary *metadata;
/* Intended mostly for av_read_frame() support. Not supposed to be used by */
/* external applications; try to use something else if at all possible. */
*/
int codec_info_nb_frames;
+ /**
+ * Stream Identifier
+ * This is the MPEG-TS stream identifier +1
+ * 0 means unknown
+ */
+ int stream_identifier;
+
/**
* Stream informations used internally by av_find_stream_info()
*/
enum AVDiscard discard; ///< selects which program to discard and which to feed to the caller
unsigned int *stream_index;
unsigned int nb_stream_indexes;
- AVMetadata *metadata;
+ AVDictionary *metadata;
+
+ int program_num;
+ int pmt_pid;
+ int pcr_pid;
} AVProgram;
#define AVFMTCTX_NOHEADER 0x0001 /**< signal that no header is present
int id; ///< unique ID to identify the chapter
AVRational time_base; ///< time base in which the start/end timestamps are specified
int64_t start, end; ///< chapter start/end time in time_base units
- AVMetadata *metadata;
+ AVDictionary *metadata;
} AVChapter;
/**
#define AVFMT_FLAG_IGNDTS 0x0008 ///< Ignore DTS on frames that contain both DTS & PTS
#define AVFMT_FLAG_NOFILLIN 0x0010 ///< Do not infer any values from other values, just return what is stored in the container
#define AVFMT_FLAG_NOPARSE 0x0020 ///< Do not use AVParsers, you also must set AVFMT_FLAG_NOFILLIN as the fillin code works on frames and no parsing -> no frames. Also seeking to frames can not work if parsing to find frame boundaries has been disabled
-#define AVFMT_FLAG_RTP_HINT 0x0040 ///< Add RTP hinting to the output file
+#if FF_API_FLAG_RTP_HINT
+#define AVFMT_FLAG_RTP_HINT 0x0040 ///< Deprecated, use the -movflags rtphint muxer specific AVOption instead
+#endif
+#define AVFMT_FLAG_MP4A_LATM 0x0080 ///< Enable RTP MP4A-LATM payload
#define AVFMT_FLAG_SORT_DTS 0x10000 ///< try to interleave outputted packets by dts (using this flag can slow demuxing down)
#define AVFMT_FLAG_PRIV_OPT 0x20000 ///< Enable use of private options by delaying codec open (this could be made default once all code is converted)
-
+#define AVFMT_FLAG_KEEP_SIDE_DATA 0x40000 ///< Dont merge side data but keep it seperate.
int loop_input;
/**
struct AVPacketList *packet_buffer_end;
- AVMetadata *metadata;
+ AVDictionary *metadata;
/**
* Remaining size available for raw_packet_buffer, in bytes.
* - decoding: Unused.
*/
int64_t start_time_realtime;
+
+ /**
+ * decoding: number of frames used to probe fps
+ */
+ int fps_probe_size;
+
+ /**
+ * Transport stream id.
+ * This will be moved into demuxer private options. Thus no API/ABI compatibility
+ */
+ int ts_id;
} AVFormatContext;
typedef struct AVPacketList {
*/
AVFormatContext *avformat_alloc_context(void);
+#if FF_API_ALLOC_OUTPUT_CONTEXT
/**
- * Allocate an AVFormatContext.
- * avformat_free_context() can be used to free the context and everything
- * allocated by the framework within it.
+ * @deprecated deprecated in favor of avformat_alloc_output_context2()
*/
-AVFormatContext *avformat_alloc_output_context(const char *format, AVOutputFormat *oformat, const char *filename);
+attribute_deprecated
+AVFormatContext *avformat_alloc_output_context(const char *format,
+ AVOutputFormat *oformat,
+ const char *filename);
+#endif
+
+/**
+ * Allocate an AVFormatContext for an output format.
+ * avformat_free_context() can be used to free the context and
+ * everything allocated by the framework within it.
+ *
+ * @param *ctx is set to the created format context, or to NULL in
+ * case of failure
+ * @param oformat format to use for allocating the context, if NULL
+ * format_name and filename are used instead
+ * @param format_name the name of output format to use for allocating the
+ * context, if NULL filename is used instead
+ * @param filename the name of the filename to use for allocating the
+ * context, may be NULL
+ * @return >= 0 in case of success, a negative AVERROR code in case of
+ * failure
+ */
+int avformat_alloc_output_context2(AVFormatContext **ctx, AVOutputFormat *oformat,
+ const char *format_name, const char *filename);
/**
* Read packets of a media file to get stream information. This
int av_write_trailer(AVFormatContext *s);
#if FF_API_DUMP_FORMAT
+/**
+ * @deprecated Deprecated in favor of av_dump_format().
+ */
attribute_deprecated void dump_format(AVFormatContext *ic,
int index,
const char *url,
* freed with av_free().
*
* @param buffer Memory block for input/output operations via AVIOContext.
+ * The buffer must be allocated with av_malloc() and friends.
* @param buffer_size The buffer size is very important for performance.
* For protocols with fixed blocksize it should be set to this blocksize.
* For others a typical size is a cache page, e.g. 4kb.
#include "libavutil/avutil.h"
#define LIBAVFORMAT_VERSION_MAJOR 53
-#define LIBAVFORMAT_VERSION_MINOR 1
+#define LIBAVFORMAT_VERSION_MINOR 3
#define LIBAVFORMAT_VERSION_MICRO 0
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
#ifndef FF_API_SDP_CREATE
#define FF_API_SDP_CREATE (LIBAVFORMAT_VERSION_MAJOR < 54)
#endif
+#ifndef FF_API_ALLOC_OUTPUT_CONTEXT
+#define FF_API_ALLOC_OUTPUT_CONTEXT (LIBAVFORMAT_VERSION_MAJOR < 54)
+#endif
+#ifndef FF_API_FORMAT_PARAMETERS
+#define FF_API_FORMAT_PARAMETERS (LIBAVFORMAT_VERSION_MAJOR < 54)
+#endif
+#ifndef FF_API_FLAG_RTP_HINT
+#define FF_API_FLAG_RTP_HINT (LIBAVFORMAT_VERSION_MAJOR < 54)
+#endif
-#endif //AVFORMAT_VERSION_H
+#endif /* AVFORMAT_VERSION_H */
#define av_assert2(cond) ((void)0)
#endif
-#endif
+#endif /* AVUTIL_AVASSERT_H */
#define AV_VERSION(a, b, c) AV_VERSION_DOT(a, b, c)
#define LIBAVUTIL_VERSION_MAJOR 51
-#define LIBAVUTIL_VERSION_MINOR 2
-#define LIBAVUTIL_VERSION_MICRO 1
+#define LIBAVUTIL_VERSION_MINOR 8
+#define LIBAVUTIL_VERSION_MICRO 0
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
LIBAVUTIL_VERSION_MINOR, \
#ifndef FF_API_OLD_EVAL_NAMES
#define FF_API_OLD_EVAL_NAMES (LIBAVUTIL_VERSION_MAJOR < 52)
#endif
+#ifndef FF_API_GET_BITS_PER_SAMPLE_FMT
+#define FF_API_GET_BITS_PER_SAMPLE_FMT (LIBAVUTIL_VERSION_MAJOR < 52)
+#endif
/**
* Return the LIBAVUTIL_VERSION_INT constant.
*/
int av_get_cpu_flags(void);
+
+/**
+ * Disables cpu detection and forces the specified flags.
+ */
+void av_force_cpu_flags(int flags);
+
+
/* The following CPU-specific functions shall not be called directly. */
int ff_get_cpu_flags_arm(void);
int ff_get_cpu_flags_ppc(void);
int ff_get_cpu_flags_x86(void);
-#endif /* AVUTIL_CPU_H */
+#endif /* AVUTIL_CPU_H */
--- /dev/null
+/*
+ *
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/**
+ * @file Public dictionary API.
+ */
+
+#ifndef AVUTIL_DICT_H
+#define AVUTIL_DICT_H
+
+#define AV_DICT_MATCH_CASE 1
+#define AV_DICT_IGNORE_SUFFIX 2
+#define AV_DICT_DONT_STRDUP_KEY 4
+#define AV_DICT_DONT_STRDUP_VAL 8
+#define AV_DICT_DONT_OVERWRITE 16 ///< Don't overwrite existing entries.
+
+typedef struct {
+ char *key;
+ char *value;
+} AVDictionaryEntry;
+
+typedef struct AVDictionary AVDictionary;
+
+/**
+ * Get a dictionary entry with matching key.
+ *
+ * @param prev Set to the previous matching element to find the next.
+ * If set to NULL the first matching element is returned.
+ * @param flags Allows case as well as suffix-insensitive comparisons.
+ * @return Found entry or NULL, changing key or value leads to undefined behavior.
+ */
+AVDictionaryEntry *
+av_dict_get(AVDictionary *m, const char *key, const AVDictionaryEntry *prev, int flags);
+
+/**
+ * Set the given entry in *pm, overwriting an existing entry.
+ *
+ * @param pm pointer to a pointer to a dictionary struct. If *pm is NULL
+ * a dictionary struct is allocated and put in *pm.
+ * @param key entry key to add to *pm (will be av_strduped depending on flags)
+ * @param value entry value to add to *pm (will be av_strduped depending on flags).
+ * Passing a NULL value will cause an existing tag to be deleted.
+ * @return >= 0 on success otherwise an error code <0
+ */
+int av_dict_set(AVDictionary **pm, const char *key, const char *value, int flags);
+
+/**
+ * Copy entries from one AVDictionary struct into another.
+ * @param dst pointer to a pointer to a AVDictionary struct. If *dst is NULL,
+ * this function will allocate a struct for you and put it in *dst
+ * @param src pointer to source AVDictionary struct
+ * @param flags flags to use when setting entries in *dst
+ * @note metadata is read using the AV_DICT_IGNORE_SUFFIX flag
+ */
+void av_dict_copy(AVDictionary **dst, AVDictionary *src, int flags);
+
+/**
+ * Free all the memory allocated for an AVDictionary struct.
+ */
+void av_dict_free(AVDictionary **m);
+
+#endif // AVUTIL_DICT_H
* misc image utilities
*/
-#include "libavutil/pixdesc.h"
#include "avutil.h"
+#include "pixdesc.h"
/**
* Compute the max pixel step for each plane of an image with a
int av_set_options_string(void *ctx, const char *opts,
const char *key_val_sep, const char *pairs_sep);
+/**
+ * Free all string and binary options in obj.
+ */
+void av_opt_free(void *obj);
+
#endif /* AVUTIL_OPT_H */
#ifndef AVUTIL_PARSEUTILS_H
#define AVUTIL_PARSEUTILS_H
-#include "libavutil/rational.h"
+#include "rational.h"
/**
* @file
#define AVUTIL_PIXDESC_H
#include <inttypes.h>
+#include "pixfmt.h"
typedef struct AVComponentDescriptor{
uint16_t plane :2; ///< which of the 4 planes contains the component
*/
enum PixelFormat av_get_pix_fmt(const char *name);
+/**
+ * Return the short name for a pixel format, NULL in case pix_fmt is
+ * unknown.
+ *
+ * @see av_get_pix_fmt(), av_get_pix_fmt_string()
+ */
+const char *av_get_pix_fmt_name(enum PixelFormat pix_fmt);
+
/**
* Print in buf the string corresponding to the pixel format with
* number pix_fmt, or an header if pix_fmt is negative.
PIX_FMT_BGR48BE, ///< packed RGB 16:16:16, 48bpp, 16B, 16G, 16R, the 2-byte value for each R/G/B component is stored as big-endian
PIX_FMT_BGR48LE, ///< packed RGB 16:16:16, 48bpp, 16B, 16G, 16R, the 2-byte value for each R/G/B component is stored as little-endian
- //the following 6 formats are deprecated and should be replaced by PIX_FMT_YUV420P16* with the bpp stored seperately
+ //the following 6 formats have the disadvantage of needing 1 format for each bit depth, thus
+ //If you want to support multiple bit depths, then using PIX_FMT_YUV420P16* with the bpp stored seperately
+ //is better
PIX_FMT_YUV420P9BE, ///< planar YUV 4:2:0, 13.5bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian
PIX_FMT_YUV420P9LE, ///< planar YUV 4:2:0, 13.5bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian
PIX_FMT_YUV420P10BE,///< planar YUV 4:2:0, 15bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian
*/
char *av_get_sample_fmt_string(char *buf, int buf_size, enum AVSampleFormat sample_fmt);
+#if FF_API_GET_BITS_PER_SAMPLE_FMT
/**
- * Return sample format bits per sample.
+ * @deprecated Use av_get_bytes_per_sample() instead.
+ */
+attribute_deprecated
+int av_get_bits_per_sample_fmt(enum AVSampleFormat sample_fmt);
+#endif
+
+/**
+ * Return number of bytes per sample.
*
* @param sample_fmt the sample format
- * @return number of bits per sample or zero if unknown for the given
+ * @return number of bytes per sample or zero if unknown for the given
* sample format
*/
-int av_get_bits_per_sample_fmt(enum AVSampleFormat sample_fmt);
+int av_get_bytes_per_sample(enum AVSampleFormat sample_fmt);
/**
* Fill channel data pointers and linesizes for samples with sample
* format sample_fmt.
*
* The pointers array is filled with the pointers to the samples data:
- * data[c] points to the first sample of channel c.
- * data[c] + linesize[0] points to the second sample of channel c
+ * for planar, set the start point of each plane's data within the buffer,
+ * for packed, set the start point of the entire buffer only.
+ *
+ * The linesize array is filled with the aligned size of each samples
+ * plane, that is linesize[i] will contain the linesize of the plane i,
+ * and will be zero for all the unused planes. All linesize values are
+ * equal.
*
* @param pointers array to be filled with the pointer for each plane, may be NULL
* @param linesizes array to be filled with the linesize, may be NULL
* The allocated samples buffer has to be freed by using
* av_freep(&pointers[0]).
*
+ * @param nb_channels number of audio channels
* @param nb_samples number of samples per channel
* @param planar 1 if the samples layout is planar, 0 if packed,
* @param align the value to use for buffer size alignment
* @see av_samples_fill_arrays()
*/
int av_samples_alloc(uint8_t *pointers[8], int linesizes[8],
- int nb_samples, int nb_channels,
+ int nb_channels, int nb_samples,
enum AVSampleFormat sample_fmt, int planar,
int align);
#define LIBSWSCALE_VERSION_MAJOR 0
#define LIBSWSCALE_VERSION_MINOR 14
-#define LIBSWSCALE_VERSION_MICRO 0
+#define LIBSWSCALE_VERSION_MICRO 1
#define LIBSWSCALE_VERSION_INT AV_VERSION_INT(LIBSWSCALE_VERSION_MAJOR, \
LIBSWSCALE_VERSION_MINOR, \
#ifndef FF_API_SWS_GETCONTEXT
#define FF_API_SWS_GETCONTEXT (LIBSWSCALE_VERSION_MAJOR < 2)
#endif
+#ifndef FF_API_SWS_CPU_CAPS
+#define FF_API_SWS_CPU_CAPS (LIBSWSCALE_VERSION_MAJOR < 2)
+#endif
+#ifndef FF_API_SWS_FORMAT_NAME
+#define FF_API_SWS_FORMAT_NAME (LIBSWSCALE_VERSION_MAJOR < 2)
+#endif
/**
* Returns the LIBSWSCALE_VERSION_INT constant.
#define SWS_ACCURATE_RND 0x40000
#define SWS_BITEXACT 0x80000
+#if FF_API_SWS_CPU_CAPS
+/**
+ * CPU caps are autodetected now, those flags
+ * are only provided for API compatibility.
+ */
#define SWS_CPU_CAPS_MMX 0x80000000
#define SWS_CPU_CAPS_MMX2 0x20000000
#define SWS_CPU_CAPS_3DNOW 0x40000000
#define SWS_CPU_CAPS_ALTIVEC 0x10000000
#define SWS_CPU_CAPS_BFIN 0x01000000
#define SWS_CPU_CAPS_SSE2 0x02000000
+#endif
#define SWS_MAX_REDUCE_CUTOFF 0.002
* @return a pointer to an allocated context, or NULL in case of error
* @note this function is to be removed after a saner alternative is
* written
+ * @deprecated Use sws_getCachedContext() instead.
*/
struct SwsContext *sws_getContext(int srcW, int srcH, enum PixelFormat srcFormat,
int dstW, int dstH, enum PixelFormat dstFormat,
* @param num_pixels number of pixels to convert
* @param palette array with [256] entries, which must match color arrangement (RGB or BGR) of src
*/
-void sws_convertPalette8ToPacked32(const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette);
+void sws_convertPalette8ToPacked32(const uint8_t *src, uint8_t *dst, int num_pixels, const uint8_t *palette);
/**
* Converts an 8bit paletted frame into a frame with a color depth of 24 bits.
* @param num_pixels number of pixels to convert
* @param palette array with [256] entries, which must match color arrangement (RGB or BGR) of src
*/
-void sws_convertPalette8ToPacked24(const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette);
+void sws_convertPalette8ToPacked24(const uint8_t *src, uint8_t *dst, int num_pixels, const uint8_t *palette);
#endif /* SWSCALE_SWSCALE_H */