From 4a6d9312cc1c9d62d66c4def71246d9faae29edb Mon Sep 17 00:00:00 2001
From: zhangmeng <775834166@qq.com>
Date: 星期三, 03 三月 2021 14:26:16 +0800
Subject: [PATCH] environment settings

---
 module/VideoPlayer/lib/linux/ffmpeg/share/man/man1/ffmpeg-devices.1 | 2196 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 2,196 insertions(+), 0 deletions(-)

diff --git a/module/VideoPlayer/lib/linux/ffmpeg/share/man/man1/ffmpeg-devices.1 b/module/VideoPlayer/lib/linux/ffmpeg/share/man/man1/ffmpeg-devices.1
new file mode 100644
index 0000000..876f86c
--- /dev/null
+++ b/module/VideoPlayer/lib/linux/ffmpeg/share/man/man1/ffmpeg-devices.1
@@ -0,0 +1,2196 @@
+.\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.13)
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" Set up some character translations and predefined strings.  \*(-- will
+.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
+.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
+.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.ie n \{\
+.    ds -- \(*W-
+.    ds PI pi
+.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
+.    ds L" ""
+.    ds R" ""
+.    ds C` ""
+.    ds C' ""
+'br\}
+.el\{\
+.    ds -- \|\(em\|
+.    ds PI \(*p
+.    ds L" ``
+.    ds R" ''
+'br\}
+.\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\"
+.\" If the F register is turned on, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
+.\" entries marked with X<> in POD.  Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.ie \nF \{\
+.    de IX
+.    tm Index:\\$1\t\\n%\t"\\$2"
+..
+.    nr % 0
+.    rr F
+.\}
+.el \{\
+.    de IX
+..
+.\}
+.\"
+.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
+.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
+.    \" fudge factors for nroff and troff
+.if n \{\
+.    ds #H 0
+.    ds #V .8m
+.    ds #F .3m
+.    ds #[ \f1
+.    ds #] \fP
+.\}
+.if t \{\
+.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+.    ds #V .6m
+.    ds #F 0
+.    ds #[ \&
+.    ds #] \&
+.\}
+.    \" simple accents for nroff and troff
+.if n \{\
+.    ds ' \&
+.    ds ` \&
+.    ds ^ \&
+.    ds , \&
+.    ds ~ ~
+.    ds /
+.\}
+.if t \{\
+.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.\}
+.    \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+.    \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+.    \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+.    ds : e
+.    ds 8 ss
+.    ds o a
+.    ds d- d\h'-1'\(ga
+.    ds D- D\h'-1'\(hy
+.    ds th \o'bp'
+.    ds Th \o'LP'
+.    ds ae ae
+.    ds Ae AE
+.\}
+.rm #[ #] #H #V #F C
+.\" ========================================================================
+.\"
+.IX Title "FFMPEG-DEVICES 1"
+.TH FFMPEG-DEVICES 1 " " " " " "
+.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
+.SH "NAME"
+ffmpeg\-devices \- FFmpeg devices
+.SH "DESCRIPTION"
+.IX Header "DESCRIPTION"
+This document describes the input and output devices provided by the
+libavdevice library.
+.SH "DEVICE OPTIONS"
+.IX Header "DEVICE OPTIONS"
+The libavdevice library provides the same interface as
+libavformat. Namely, an input device is considered like a demuxer, and
+an output device like a muxer, and the interface and generic device
+options are the same provided by libavformat (see the ffmpeg-formats
+manual).
+.PP
+In addition each input or output device may support so-called private
+options, which are specific for that component.
+.PP
+Options may be set by specifying \-\fIoption\fR \fIvalue\fR in the
+FFmpeg tools, or by setting the value explicitly in the device
+\&\f(CW\*(C`AVFormatContext\*(C'\fR options or using the \fIlibavutil/opt.h\fR \s-1API\s0
+for programmatic use.
+.SH "INPUT DEVICES"
+.IX Header "INPUT DEVICES"
+Input devices are configured elements in FFmpeg which enable accessing
+the data coming from a multimedia device attached to your system.
+.PP
+When you configure your FFmpeg build, all the supported input devices
+are enabled by default. You can list all available ones using the
+configure option \*(L"\-\-list\-indevs\*(R".
+.PP
+You can disable all the input devices using the configure option
+\&\*(L"\-\-disable\-indevs\*(R", and selectively enable an input device using the
+option "\-\-enable\-indev=\fI\s-1INDEV\s0\fR\*(L", or you can disable a particular
+input device using the option \*(R"\-\-disable\-indev=\fI\s-1INDEV\s0\fR".
+.PP
+The option \*(L"\-devices\*(R" of the ff* tools will display the list of
+supported input devices.
+.PP
+A description of the currently available input devices follows.
+.SS "alsa"
+.IX Subsection "alsa"
+\&\s-1ALSA\s0 (Advanced Linux Sound Architecture) input device.
+.PP
+To enable this input device during configuration you need libasound
+installed on your system.
+.PP
+This device allows capturing from an \s-1ALSA\s0 device. The name of the
+device to capture has to be an \s-1ALSA\s0 card identifier.
+.PP
+An \s-1ALSA\s0 identifier has the syntax:
+.PP
+.Vb 1
+\&        hw:<CARD>[,<DEV>[,<SUBDEV>]]
+.Ve
+.PP
+where the \fI\s-1DEV\s0\fR and \fI\s-1SUBDEV\s0\fR components are optional.
+.PP
+The three arguments (in order: \fI\s-1CARD\s0\fR,\fI\s-1DEV\s0\fR,\fI\s-1SUBDEV\s0\fR)
+specify card number or identifier, device number and subdevice number
+(\-1 means any).
+.PP
+To see the list of cards currently recognized by your system check the
+files \fI/proc/asound/cards\fR and \fI/proc/asound/devices\fR.
+.PP
+For example to capture with \fBffmpeg\fR from an \s-1ALSA\s0 device with
+card id 0, you may run the command:
+.PP
+.Vb 1
+\&        ffmpeg \-f alsa \-i hw:0 alsaout.wav
+.Ve
+.PP
+For more information see:
+<\fBhttp://www.alsa\-project.org/alsa\-doc/alsa\-lib/pcm.html\fR>
+.PP
+\fIOptions\fR
+.IX Subsection "Options"
+.IP "\fBsample_rate\fR" 4
+.IX Item "sample_rate"
+Set the sample rate in Hz. Default is 48000.
+.IP "\fBchannels\fR" 4
+.IX Item "channels"
+Set the number of channels. Default is 2.
+.SS "android_camera"
+.IX Subsection "android_camera"
+Android camera input device.
+.PP
+This input devices uses the Android Camera2 \s-1NDK\s0 \s-1API\s0 which is
+available on devices with \s-1API\s0 level 24+. The availability of
+android_camera is autodetected during configuration.
+.PP
+This device allows capturing from all cameras on an Android device,
+which are integrated into the Camera2 \s-1NDK\s0 \s-1API\s0.
+.PP
+The available cameras are enumerated internally and can be selected
+with the \fIcamera_index\fR parameter. The input file string is
+discarded.
+.PP
+Generally the back facing camera has index 0 while the front facing
+camera has index 1.
+.PP
+\fIOptions\fR
+.IX Subsection "Options"
+.IP "\fBvideo_size\fR" 4
+.IX Item "video_size"
+Set the video size given as a string such as 640x480 or hd720.
+Falls back to the first available configuration reported by
+Android if requested video size is not available or by default.
+.IP "\fBframerate\fR" 4
+.IX Item "framerate"
+Set the video framerate.
+Falls back to the first available configuration reported by
+Android if requested framerate is not available or by default (\-1).
+.IP "\fBcamera_index\fR" 4
+.IX Item "camera_index"
+Set the index of the camera to use. Default is 0.
+.IP "\fBinput_queue_size\fR" 4
+.IX Item "input_queue_size"
+Set the maximum number of frames to buffer. Default is 5.
+.SS "avfoundation"
+.IX Subsection "avfoundation"
+AVFoundation input device.
+.PP
+AVFoundation is the currently recommended framework by Apple for streamgrabbing on \s-1OSX\s0 >= 10.7 as well as on iOS.
+.PP
+The input filename has to be given in the following syntax:
+.PP
+.Vb 1
+\&        \-i "[[VIDEO]:[AUDIO]]"
+.Ve
+.PP
+The first entry selects the video input while the latter selects the audio input.
+The stream has to be specified by the device name or the device index as shown by the device list.
+Alternatively, the video and/or audio input device can be chosen by index using the
+.PP
+.Vb 1
+\&    B<\-video_device_index E<lt>INDEXE<gt>>
+.Ve
+.PP
+and/or
+.PP
+.Vb 1
+\&    B<\-audio_device_index E<lt>INDEXE<gt>>
+.Ve
+.PP
+, overriding any
+device name or index given in the input filename.
+.PP
+All available devices can be enumerated by using \fB\-list_devices true\fR, listing
+all device names and corresponding indices.
+.PP
+There are two device name aliases:
+.ie n .IP """default""" 4
+.el .IP "\f(CWdefault\fR" 4
+.IX Item "default"
+Select the AVFoundation default device of the corresponding type.
+.ie n .IP """none""" 4
+.el .IP "\f(CWnone\fR" 4
+.IX Item "none"
+Do not record the corresponding media type.
+This is equivalent to specifying an empty device name or index.
+.PP
+\fIOptions\fR
+.IX Subsection "Options"
+.PP
+AVFoundation supports the following options:
+.IP "\fB\-list_devices <TRUE|FALSE>\fR" 4
+.IX Item "-list_devices <TRUE|FALSE>"
+If set to true, a list of all available input devices is given showing all
+device names and indices.
+.IP "\fB\-video_device_index <\s-1INDEX\s0>\fR" 4
+.IX Item "-video_device_index <INDEX>"
+Specify the video device by its index. Overrides anything given in the input filename.
+.IP "\fB\-audio_device_index <\s-1INDEX\s0>\fR" 4
+.IX Item "-audio_device_index <INDEX>"
+Specify the audio device by its index. Overrides anything given in the input filename.
+.IP "\fB\-pixel_format <\s-1FORMAT\s0>\fR" 4
+.IX Item "-pixel_format <FORMAT>"
+Request the video device to use a specific pixel format.
+If the specified format is not supported, a list of available formats is given
+and the first one in this list is used instead. Available pixel formats are:
+\&\f(CW\*(C`monob, rgb555be, rgb555le, rgb565be, rgb565le, rgb24, bgr24, 0rgb, bgr0, 0bgr, rgb0,
+ bgr48be, uyvy422, yuva444p, yuva444p16le, yuv444p, yuv422p16, yuv422p10, yuv444p10,
+ yuv420p, nv12, yuyv422, gray\*(C'\fR
+.IP "\fB\-framerate\fR" 4
+.IX Item "-framerate"
+Set the grabbing frame rate. Default is \f(CW\*(C`ntsc\*(C'\fR, corresponding to a
+frame rate of \f(CW\*(C`30000/1001\*(C'\fR.
+.IP "\fB\-video_size\fR" 4
+.IX Item "-video_size"
+Set the video frame size.
+.IP "\fB\-capture_cursor\fR" 4
+.IX Item "-capture_cursor"
+Capture the mouse pointer. Default is 0.
+.IP "\fB\-capture_mouse_clicks\fR" 4
+.IX Item "-capture_mouse_clicks"
+Capture the screen mouse clicks. Default is 0.
+.PP
+\fIExamples\fR
+.IX Subsection "Examples"
+.IP "\(bu" 4
+Print the list of AVFoundation supported devices and exit:
+.Sp
+.Vb 1
+\&        $ ffmpeg \-f avfoundation \-list_devices true \-i ""
+.Ve
+.IP "\(bu" 4
+Record video from video device 0 and audio from audio device 0 into out.avi:
+.Sp
+.Vb 1
+\&        $ ffmpeg \-f avfoundation \-i "0:0" out.avi
+.Ve
+.IP "\(bu" 4
+Record video from video device 2 and audio from audio device 1 into out.avi:
+.Sp
+.Vb 1
+\&        $ ffmpeg \-f avfoundation \-video_device_index 2 \-i ":1" out.avi
+.Ve
+.IP "\(bu" 4
+Record video from the system default video device using the pixel format bgr0 and do not record any audio into out.avi:
+.Sp
+.Vb 1
+\&        $ ffmpeg \-f avfoundation \-pixel_format bgr0 \-i "default:none" out.avi
+.Ve
+.SS "bktr"
+.IX Subsection "bktr"
+\&\s-1BSD\s0 video input device.
+.PP
+\fIOptions\fR
+.IX Subsection "Options"
+.IP "\fBframerate\fR" 4
+.IX Item "framerate"
+Set the frame rate.
+.IP "\fBvideo_size\fR" 4
+.IX Item "video_size"
+Set the video frame size. Default is \f(CW\*(C`vga\*(C'\fR.
+.IP "\fBstandard\fR" 4
+.IX Item "standard"
+Available values are:
+.RS 4
+.IP "\fBpal\fR" 4
+.IX Item "pal"
+.PD 0
+.IP "\fBntsc\fR" 4
+.IX Item "ntsc"
+.IP "\fBsecam\fR" 4
+.IX Item "secam"
+.IP "\fBpaln\fR" 4
+.IX Item "paln"
+.IP "\fBpalm\fR" 4
+.IX Item "palm"
+.IP "\fBntscj\fR" 4
+.IX Item "ntscj"
+.RE
+.RS 4
+.RE
+.PD
+.SS "decklink"
+.IX Subsection "decklink"
+The decklink input device provides capture capabilities for Blackmagic
+DeckLink devices.
+.PP
+To enable this input device, you need the Blackmagic DeckLink \s-1SDK\s0 and you
+need to configure with the appropriate \f(CW\*(C`\-\-extra\-cflags\*(C'\fR
+and \f(CW\*(C`\-\-extra\-ldflags\*(C'\fR.
+On Windows, you need to run the \s-1IDL\s0 files through \fBwidl\fR.
+.PP
+DeckLink is very picky about the formats it supports. Pixel format of the
+input can be set with \fBraw_format\fR.
+Framerate and video size must be determined for your device with
+\&\fB\-list_formats 1\fR. Audio sample rate is always 48 kHz and the number
+of channels can be 2, 8 or 16. Note that all audio channels are bundled in one single
+audio track.
+.PP
+\fIOptions\fR
+.IX Subsection "Options"
+.IP "\fBlist_devices\fR" 4
+.IX Item "list_devices"
+If set to \fBtrue\fR, print a list of devices and exit.
+Defaults to \fBfalse\fR. Alternatively you can use the \f(CW\*(C`\-sources\*(C'\fR
+option of ffmpeg to list the available input devices.
+.IP "\fBlist_formats\fR" 4
+.IX Item "list_formats"
+If set to \fBtrue\fR, print a list of supported formats and exit.
+Defaults to \fBfalse\fR.
+.IP "\fBformat_code <FourCC>\fR" 4
+.IX Item "format_code <FourCC>"
+This sets the input video format to the format given by the FourCC. To see
+the supported values of your device(s) use \fBlist_formats\fR.
+Note that there is a FourCC \fB'pal '\fR that can also be used
+as \fBpal\fR (3 letters).
+Default behavior is autodetection of the input video format, if the hardware
+supports it.
+.IP "\fBbm_v210\fR" 4
+.IX Item "bm_v210"
+This is a deprecated option, you can use \fBraw_format\fR instead.
+If set to \fB1\fR, video is captured in 10 bit v210 instead
+of uyvy422. Not all Blackmagic devices support this option.
+.IP "\fBraw_format\fR" 4
+.IX Item "raw_format"
+Set the pixel format of the captured video.
+Available values are:
+.RS 4
+.IP "\fBuyvy422\fR" 4
+.IX Item "uyvy422"
+.PD 0
+.IP "\fByuv422p10\fR" 4
+.IX Item "yuv422p10"
+.IP "\fBargb\fR" 4
+.IX Item "argb"
+.IP "\fBbgra\fR" 4
+.IX Item "bgra"
+.IP "\fBrgb10\fR" 4
+.IX Item "rgb10"
+.RE
+.RS 4
+.RE
+.IP "\fBteletext_lines\fR" 4
+.IX Item "teletext_lines"
+.PD
+If set to nonzero, an additional teletext stream will be captured from the
+vertical ancillary data. Both \s-1SD\s0 \s-1PAL\s0 (576i) and \s-1HD\s0 (1080i or 1080p)
+sources are supported. In case of \s-1HD\s0 sources, \s-1OP47\s0 packets are decoded.
+.Sp
+This option is a bitmask of the \s-1SD\s0 \s-1PAL\s0 \s-1VBI\s0 lines captured, specifically lines 6
+to 22, and lines 318 to 335. Line 6 is the \s-1LSB\s0 in the mask. Selected lines
+which do not contain teletext information will be ignored. You can use the
+special \fBall\fR constant to select all possible lines, or
+\&\fBstandard\fR to skip lines 6, 318 and 319, which are not compatible with
+all receivers.
+.Sp
+For \s-1SD\s0 sources, ffmpeg needs to be compiled with \f(CW\*(C`\-\-enable\-libzvbi\*(C'\fR. For
+\&\s-1HD\s0 sources, on older (pre\-4K) DeckLink card models you have to capture in 10
+bit mode.
+.IP "\fBchannels\fR" 4
+.IX Item "channels"
+Defines number of audio channels to capture. Must be \fB2\fR, \fB8\fR or \fB16\fR.
+Defaults to \fB2\fR.
+.IP "\fBduplex_mode\fR" 4
+.IX Item "duplex_mode"
+Sets the decklink device duplex mode. Must be \fBunset\fR, \fBhalf\fR or \fBfull\fR.
+Defaults to \fBunset\fR.
+.IP "\fBtimecode_format\fR" 4
+.IX Item "timecode_format"
+Timecode type to include in the frame and video stream metadata. Must be
+\&\fBnone\fR, \fBrp188vitc\fR, \fBrp188vitc2\fR, \fBrp188ltc\fR,
+\&\fBrp188any\fR, \fBvitc\fR, \fBvitc2\fR, or \fBserial\fR. Defaults to
+\&\fBnone\fR (not included).
+.IP "\fBvideo_input\fR" 4
+.IX Item "video_input"
+Sets the video input source. Must be \fBunset\fR, \fBsdi\fR, \fBhdmi\fR,
+\&\fBoptical_sdi\fR, \fBcomponent\fR, \fBcomposite\fR or \fBs_video\fR.
+Defaults to \fBunset\fR.
+.IP "\fBaudio_input\fR" 4
+.IX Item "audio_input"
+Sets the audio input source. Must be \fBunset\fR, \fBembedded\fR,
+\&\fBaes_ebu\fR, \fBanalog\fR, \fBanalog_xlr\fR, \fBanalog_rca\fR or
+\&\fBmicrophone\fR. Defaults to \fBunset\fR.
+.IP "\fBvideo_pts\fR" 4
+.IX Item "video_pts"
+Sets the video packet timestamp source. Must be \fBvideo\fR, \fBaudio\fR,
+\&\fBreference\fR, \fBwallclock\fR or \fBabs_wallclock\fR.
+Defaults to \fBvideo\fR.
+.IP "\fBaudio_pts\fR" 4
+.IX Item "audio_pts"
+Sets the audio packet timestamp source. Must be \fBvideo\fR, \fBaudio\fR,
+\&\fBreference\fR, \fBwallclock\fR or \fBabs_wallclock\fR.
+Defaults to \fBaudio\fR.
+.IP "\fBdraw_bars\fR" 4
+.IX Item "draw_bars"
+If set to \fBtrue\fR, color bars are drawn in the event of a signal loss.
+Defaults to \fBtrue\fR.
+.IP "\fBqueue_size\fR" 4
+.IX Item "queue_size"
+Sets maximum input buffer size in bytes. If the buffering reaches this value,
+incoming frames will be dropped.
+Defaults to \fB1073741824\fR.
+.IP "\fBaudio_depth\fR" 4
+.IX Item "audio_depth"
+Sets the audio sample bit depth. Must be \fB16\fR or \fB32\fR.
+Defaults to \fB16\fR.
+.IP "\fBdecklink_copyts\fR" 4
+.IX Item "decklink_copyts"
+If set to \fBtrue\fR, timestamps are forwarded as they are without removing
+the initial offset.
+Defaults to \fBfalse\fR.
+.IP "\fBtimestamp_align\fR" 4
+.IX Item "timestamp_align"
+Capture start time alignment in seconds. If set to nonzero, input frames are
+dropped till the system timestamp aligns with configured value.
+Alignment difference of up to one frame duration is tolerated.
+This is useful for maintaining input synchronization across N different
+hardware devices deployed for 'N\-way' redundancy. The system time of different
+hardware devices should be synchronized with protocols such as \s-1NTP\s0 or \s-1PTP\s0,
+before using this option.
+Note that this method is not foolproof. In some border cases input
+synchronization may not happen due to thread scheduling jitters in the \s-1OS\s0.
+Either sync could go wrong by 1 frame or in a rarer case
+\&\fBtimestamp_align\fR seconds.
+Defaults to \fB0\fR.
+.PP
+\fIExamples\fR
+.IX Subsection "Examples"
+.IP "\(bu" 4
+List input devices:
+.Sp
+.Vb 1
+\&        ffmpeg \-f decklink \-list_devices 1 \-i dummy
+.Ve
+.IP "\(bu" 4
+List supported formats:
+.Sp
+.Vb 1
+\&        ffmpeg \-f decklink \-list_formats 1 \-i \*(AqIntensity Pro\*(Aq
+.Ve
+.IP "\(bu" 4
+Capture video clip at 1080i50:
+.Sp
+.Vb 1
+\&        ffmpeg \-format_code Hi50 \-f decklink \-i \*(AqIntensity Pro\*(Aq \-c:a copy \-c:v copy output.avi
+.Ve
+.IP "\(bu" 4
+Capture video clip at 1080i50 10 bit:
+.Sp
+.Vb 1
+\&        ffmpeg \-bm_v210 1 \-format_code Hi50 \-f decklink \-i \*(AqUltraStudio Mini Recorder\*(Aq \-c:a copy \-c:v copy output.avi
+.Ve
+.IP "\(bu" 4
+Capture video clip at 1080i50 with 16 audio channels:
+.Sp
+.Vb 1
+\&        ffmpeg \-channels 16 \-format_code Hi50 \-f decklink \-i \*(AqUltraStudio Mini Recorder\*(Aq \-c:a copy \-c:v copy output.avi
+.Ve
+.SS "dshow"
+.IX Subsection "dshow"
+Windows DirectShow input device.
+.PP
+DirectShow support is enabled when FFmpeg is built with the mingw\-w64 project.
+Currently only audio and video devices are supported.
+.PP
+Multiple devices may be opened as separate inputs, but they may also be
+opened on the same input, which should improve synchronism between them.
+.PP
+The input name should be in the format:
+.PP
+.Vb 1
+\&        <TYPE>=<NAME>[:<TYPE>=<NAME>]
+.Ve
+.PP
+where \fI\s-1TYPE\s0\fR can be either \fIaudio\fR or \fIvideo\fR,
+and \fI\s-1NAME\s0\fR is the device's name or alternative name..
+.PP
+\fIOptions\fR
+.IX Subsection "Options"
+.PP
+If no options are specified, the device's defaults are used.
+If the device does not support the requested options, it will
+fail to open.
+.IP "\fBvideo_size\fR" 4
+.IX Item "video_size"
+Set the video size in the captured video.
+.IP "\fBframerate\fR" 4
+.IX Item "framerate"
+Set the frame rate in the captured video.
+.IP "\fBsample_rate\fR" 4
+.IX Item "sample_rate"
+Set the sample rate (in Hz) of the captured audio.
+.IP "\fBsample_size\fR" 4
+.IX Item "sample_size"
+Set the sample size (in bits) of the captured audio.
+.IP "\fBchannels\fR" 4
+.IX Item "channels"
+Set the number of channels in the captured audio.
+.IP "\fBlist_devices\fR" 4
+.IX Item "list_devices"
+If set to \fBtrue\fR, print a list of devices and exit.
+.IP "\fBlist_options\fR" 4
+.IX Item "list_options"
+If set to \fBtrue\fR, print a list of selected device's options
+and exit.
+.IP "\fBvideo_device_number\fR" 4
+.IX Item "video_device_number"
+Set video device number for devices with the same name (starts at 0,
+defaults to 0).
+.IP "\fBaudio_device_number\fR" 4
+.IX Item "audio_device_number"
+Set audio device number for devices with the same name (starts at 0,
+defaults to 0).
+.IP "\fBpixel_format\fR" 4
+.IX Item "pixel_format"
+Select pixel format to be used by DirectShow. This may only be set when
+the video codec is not set or set to rawvideo.
+.IP "\fBaudio_buffer_size\fR" 4
+.IX Item "audio_buffer_size"
+Set audio device buffer size in milliseconds (which can directly
+impact latency, depending on the device).
+Defaults to using the audio device's
+default buffer size (typically some multiple of 500ms).
+Setting this value too low can degrade performance.
+See also
+<\fBhttp://msdn.microsoft.com/en\-us/library/windows/desktop/dd377582(v=vs.85).aspx\fR>
+.IP "\fBvideo_pin_name\fR" 4
+.IX Item "video_pin_name"
+Select video capture pin to use by name or alternative name.
+.IP "\fBaudio_pin_name\fR" 4
+.IX Item "audio_pin_name"
+Select audio capture pin to use by name or alternative name.
+.IP "\fBcrossbar_video_input_pin_number\fR" 4
+.IX Item "crossbar_video_input_pin_number"
+Select video input pin number for crossbar device. This will be
+routed to the crossbar device's Video Decoder output pin.
+Note that changing this value can affect future invocations
+(sets a new default) until system reboot occurs.
+.IP "\fBcrossbar_audio_input_pin_number\fR" 4
+.IX Item "crossbar_audio_input_pin_number"
+Select audio input pin number for crossbar device. This will be
+routed to the crossbar device's Audio Decoder output pin.
+Note that changing this value can affect future invocations
+(sets a new default) until system reboot occurs.
+.IP "\fBshow_video_device_dialog\fR" 4
+.IX Item "show_video_device_dialog"
+If set to \fBtrue\fR, before capture starts, popup a display dialog
+to the end user, allowing them to change video filter properties
+and configurations manually.
+Note that for crossbar devices, adjusting values in this dialog
+may be needed at times to toggle between \s-1PAL\s0 (25 fps) and \s-1NTSC\s0 (29.97)
+input frame rates, sizes, interlacing, etc.  Changing these values can
+enable different scan rates/frame rates and avoiding green bars at
+the bottom, flickering scan lines, etc.
+Note that with some devices, changing these properties can also affect future
+invocations (sets new defaults) until system reboot occurs.
+.IP "\fBshow_audio_device_dialog\fR" 4
+.IX Item "show_audio_device_dialog"
+If set to \fBtrue\fR, before capture starts, popup a display dialog
+to the end user, allowing them to change audio filter properties
+and configurations manually.
+.IP "\fBshow_video_crossbar_connection_dialog\fR" 4
+.IX Item "show_video_crossbar_connection_dialog"
+If set to \fBtrue\fR, before capture starts, popup a display
+dialog to the end user, allowing them to manually
+modify crossbar pin routings, when it opens a video device.
+.IP "\fBshow_audio_crossbar_connection_dialog\fR" 4
+.IX Item "show_audio_crossbar_connection_dialog"
+If set to \fBtrue\fR, before capture starts, popup a display
+dialog to the end user, allowing them to manually
+modify crossbar pin routings, when it opens an audio device.
+.IP "\fBshow_analog_tv_tuner_dialog\fR" 4
+.IX Item "show_analog_tv_tuner_dialog"
+If set to \fBtrue\fR, before capture starts, popup a display
+dialog to the end user, allowing them to manually
+modify \s-1TV\s0 channels and frequencies.
+.IP "\fBshow_analog_tv_tuner_audio_dialog\fR" 4
+.IX Item "show_analog_tv_tuner_audio_dialog"
+If set to \fBtrue\fR, before capture starts, popup a display
+dialog to the end user, allowing them to manually
+modify \s-1TV\s0 audio (like mono vs. stereo, Language A,B or C).
+.IP "\fBaudio_device_load\fR" 4
+.IX Item "audio_device_load"
+Load an audio capture filter device from file instead of searching
+it by name. It may load additional parameters too, if the filter
+supports the serialization of its properties to.
+To use this an audio capture source has to be specified, but it can
+be anything even fake one.
+.IP "\fBaudio_device_save\fR" 4
+.IX Item "audio_device_save"
+Save the currently used audio capture filter device and its
+parameters (if the filter supports it) to a file.
+If a file with the same name exists it will be overwritten.
+.IP "\fBvideo_device_load\fR" 4
+.IX Item "video_device_load"
+Load a video capture filter device from file instead of searching
+it by name. It may load additional parameters too, if the filter
+supports the serialization of its properties to.
+To use this a video capture source has to be specified, but it can
+be anything even fake one.
+.IP "\fBvideo_device_save\fR" 4
+.IX Item "video_device_save"
+Save the currently used video capture filter device and its
+parameters (if the filter supports it) to a file.
+If a file with the same name exists it will be overwritten.
+.PP
+\fIExamples\fR
+.IX Subsection "Examples"
+.IP "\(bu" 4
+Print the list of DirectShow supported devices and exit:
+.Sp
+.Vb 1
+\&        $ ffmpeg \-list_devices true \-f dshow \-i dummy
+.Ve
+.IP "\(bu" 4
+Open video device \fICamera\fR:
+.Sp
+.Vb 1
+\&        $ ffmpeg \-f dshow \-i video="Camera"
+.Ve
+.IP "\(bu" 4
+Open second video device with name \fICamera\fR:
+.Sp
+.Vb 1
+\&        $ ffmpeg \-f dshow \-video_device_number 1 \-i video="Camera"
+.Ve
+.IP "\(bu" 4
+Open video device \fICamera\fR and audio device \fIMicrophone\fR:
+.Sp
+.Vb 1
+\&        $ ffmpeg \-f dshow \-i video="Camera":audio="Microphone"
+.Ve
+.IP "\(bu" 4
+Print the list of supported options in selected device and exit:
+.Sp
+.Vb 1
+\&        $ ffmpeg \-list_options true \-f dshow \-i video="Camera"
+.Ve
+.IP "\(bu" 4
+Specify pin names to capture by name or alternative name, specify alternative device name:
+.Sp
+.Vb 1
+\&        $ ffmpeg \-f dshow \-audio_pin_name "Audio Out" \-video_pin_name 2 \-i video=video="@device_pnp_\e\e?\epci#ven_1a0a&dev_6200&subsys_62021461&rev_01#4&e2c7dd6&0&00e1#{65e8773d\-8f56\-11d0\-a3b9\-00a0c9223196}\e{ca465100\-deb0\-4d59\-818f\-8c477184adf6}":audio="Microphone"
+.Ve
+.IP "\(bu" 4
+Configure a crossbar device, specifying crossbar pins, allow user to adjust video capture properties at startup:
+.Sp
+.Vb 2
+\&        $ ffmpeg \-f dshow \-show_video_device_dialog true \-crossbar_video_input_pin_number 0
+\&             \-crossbar_audio_input_pin_number 3 \-i video="AVerMedia BDA Analog Capture":audio="AVerMedia BDA Analog Capture"
+.Ve
+.SS "fbdev"
+.IX Subsection "fbdev"
+Linux framebuffer input device.
+.PP
+The Linux framebuffer is a graphic hardware-independent abstraction
+layer to show graphics on a computer monitor, typically on the
+console. It is accessed through a file device node, usually
+\&\fI/dev/fb0\fR.
+.PP
+For more detailed information read the file
+Documentation/fb/framebuffer.txt included in the Linux source tree.
+.PP
+See also <\fBhttp://linux\-fbdev.sourceforge.net/\fR>, and \fIfbset\fR\|(1).
+.PP
+To record from the framebuffer device \fI/dev/fb0\fR with
+\&\fBffmpeg\fR:
+.PP
+.Vb 1
+\&        ffmpeg \-f fbdev \-framerate 10 \-i /dev/fb0 out.avi
+.Ve
+.PP
+You can take a single screenshot image with the command:
+.PP
+.Vb 1
+\&        ffmpeg \-f fbdev \-framerate 1 \-i /dev/fb0 \-frames:v 1 screenshot.jpeg
+.Ve
+.PP
+\fIOptions\fR
+.IX Subsection "Options"
+.IP "\fBframerate\fR" 4
+.IX Item "framerate"
+Set the frame rate. Default is 25.
+.SS "gdigrab"
+.IX Subsection "gdigrab"
+Win32 GDI-based screen capture device.
+.PP
+This device allows you to capture a region of the display on Windows.
+.PP
+There are two options for the input filename:
+.PP
+.Vb 1
+\&        desktop
+.Ve
+.PP
+or
+.PP
+.Vb 1
+\&        title=<window_title>
+.Ve
+.PP
+The first option will capture the entire desktop, or a fixed region of the
+desktop. The second option will instead capture the contents of a single
+window, regardless of its position on the screen.
+.PP
+For example, to grab the entire desktop using \fBffmpeg\fR:
+.PP
+.Vb 1
+\&        ffmpeg \-f gdigrab \-framerate 6 \-i desktop out.mpg
+.Ve
+.PP
+Grab a 640x480 region at position \f(CW\*(C`10,20\*(C'\fR:
+.PP
+.Vb 1
+\&        ffmpeg \-f gdigrab \-framerate 6 \-offset_x 10 \-offset_y 20 \-video_size vga \-i desktop out.mpg
+.Ve
+.PP
+Grab the contents of the window named \*(L"Calculator\*(R"
+.PP
+.Vb 1
+\&        ffmpeg \-f gdigrab \-framerate 6 \-i title=Calculator out.mpg
+.Ve
+.PP
+\fIOptions\fR
+.IX Subsection "Options"
+.IP "\fBdraw_mouse\fR" 4
+.IX Item "draw_mouse"
+Specify whether to draw the mouse pointer. Use the value \f(CW0\fR to
+not draw the pointer. Default value is \f(CW1\fR.
+.IP "\fBframerate\fR" 4
+.IX Item "framerate"
+Set the grabbing frame rate. Default value is \f(CW\*(C`ntsc\*(C'\fR,
+corresponding to a frame rate of \f(CW\*(C`30000/1001\*(C'\fR.
+.IP "\fBshow_region\fR" 4
+.IX Item "show_region"
+Show grabbed region on screen.
+.Sp
+If \fIshow_region\fR is specified with \f(CW1\fR, then the grabbing
+region will be indicated on screen. With this option, it is easy to
+know what is being grabbed if only a portion of the screen is grabbed.
+.Sp
+Note that \fIshow_region\fR is incompatible with grabbing the contents
+of a single window.
+.Sp
+For example:
+.Sp
+.Vb 1
+\&        ffmpeg \-f gdigrab \-show_region 1 \-framerate 6 \-video_size cif \-offset_x 10 \-offset_y 20 \-i desktop out.mpg
+.Ve
+.IP "\fBvideo_size\fR" 4
+.IX Item "video_size"
+Set the video frame size. The default is to capture the full screen if \fIdesktop\fR is selected, or the full window size if \fItitle=\fIwindow_title\fI\fR is selected.
+.IP "\fBoffset_x\fR" 4
+.IX Item "offset_x"
+When capturing a region with \fIvideo_size\fR, set the distance from the left edge of the screen or desktop.
+.Sp
+Note that the offset calculation is from the top left corner of the primary monitor on Windows. If you have a monitor positioned to the left of your primary monitor, you will need to use a negative \fIoffset_x\fR value to move the region to that monitor.
+.IP "\fBoffset_y\fR" 4
+.IX Item "offset_y"
+When capturing a region with \fIvideo_size\fR, set the distance from the top edge of the screen or desktop.
+.Sp
+Note that the offset calculation is from the top left corner of the primary monitor on Windows. If you have a monitor positioned above your primary monitor, you will need to use a negative \fIoffset_y\fR value to move the region to that monitor.
+.SS "iec61883"
+.IX Subsection "iec61883"
+FireWire \s-1DV/HDV\s0 input device using libiec61883.
+.PP
+To enable this input device, you need libiec61883, libraw1394 and
+libavc1394 installed on your system. Use the configure option
+\&\f(CW\*(C`\-\-enable\-libiec61883\*(C'\fR to compile with the device enabled.
+.PP
+The iec61883 capture device supports capturing from a video device
+connected via \s-1IEEE1394\s0 (FireWire), using libiec61883 and the new Linux
+FireWire stack (juju). This is the default \s-1DV/HDV\s0 input method in Linux
+Kernel 2.6.37 and later, since the old FireWire stack was removed.
+.PP
+Specify the FireWire port to be used as input file, or \*(L"auto\*(R"
+to choose the first port connected.
+.PP
+\fIOptions\fR
+.IX Subsection "Options"
+.IP "\fBdvtype\fR" 4
+.IX Item "dvtype"
+Override autodetection of \s-1DV/HDV\s0. This should only be used if auto
+detection does not work, or if usage of a different device type
+should be prohibited. Treating a \s-1DV\s0 device as \s-1HDV\s0 (or vice versa) will
+not work and result in undefined behavior.
+The values \fBauto\fR, \fBdv\fR and \fBhdv\fR are supported.
+.IP "\fBdvbuffer\fR" 4
+.IX Item "dvbuffer"
+Set maximum size of buffer for incoming data, in frames. For \s-1DV\s0, this
+is an exact value. For \s-1HDV\s0, it is not frame exact, since \s-1HDV\s0 does
+not have a fixed frame size.
+.IP "\fBdvguid\fR" 4
+.IX Item "dvguid"
+Select the capture device by specifying its \s-1GUID\s0. Capturing will only
+be performed from the specified device and fails if no device with the
+given \s-1GUID\s0 is found. This is useful to select the input if multiple
+devices are connected at the same time.
+Look at /sys/bus/firewire/devices to find out the GUIDs.
+.PP
+\fIExamples\fR
+.IX Subsection "Examples"
+.IP "\(bu" 4
+Grab and show the input of a FireWire \s-1DV/HDV\s0 device.
+.Sp
+.Vb 1
+\&        ffplay \-f iec61883 \-i auto
+.Ve
+.IP "\(bu" 4
+Grab and record the input of a FireWire \s-1DV/HDV\s0 device,
+using a packet buffer of 100000 packets if the source is \s-1HDV\s0.
+.Sp
+.Vb 1
+\&        ffmpeg \-f iec61883 \-i auto \-hdvbuffer 100000 out.mpg
+.Ve
+.SS "jack"
+.IX Subsection "jack"
+\&\s-1JACK\s0 input device.
+.PP
+To enable this input device during configuration you need libjack
+installed on your system.
+.PP
+A \s-1JACK\s0 input device creates one or more \s-1JACK\s0 writable clients, one for
+each audio channel, with name \fIclient_name\fR:input_\fIN\fR, where
+\&\fIclient_name\fR is the name provided by the application, and \fIN\fR
+is a number which identifies the channel.
+Each writable client will send the acquired data to the FFmpeg input
+device.
+.PP
+Once you have created one or more \s-1JACK\s0 readable clients, you need to
+connect them to one or more \s-1JACK\s0 writable clients.
+.PP
+To connect or disconnect \s-1JACK\s0 clients you can use the \fBjack_connect\fR
+and \fBjack_disconnect\fR programs, or do it through a graphical interface,
+for example with \fBqjackctl\fR.
+.PP
+To list the \s-1JACK\s0 clients and their properties you can invoke the command
+\&\fBjack_lsp\fR.
+.PP
+Follows an example which shows how to capture a \s-1JACK\s0 readable client
+with \fBffmpeg\fR.
+.PP
+.Vb 2
+\&        # Create a JACK writable client with name "ffmpeg".
+\&        $ ffmpeg \-f jack \-i ffmpeg \-y out.wav
+\&        
+\&        # Start the sample jack_metro readable client.
+\&        $ jack_metro \-b 120 \-d 0.2 \-f 4000
+\&        
+\&        # List the current JACK clients.
+\&        $ jack_lsp \-c
+\&        system:capture_1
+\&        system:capture_2
+\&        system:playback_1
+\&        system:playback_2
+\&        ffmpeg:input_1
+\&        metro:120_bpm
+\&        
+\&        # Connect metro to the ffmpeg writable client.
+\&        $ jack_connect metro:120_bpm ffmpeg:input_1
+.Ve
+.PP
+For more information read:
+<\fBhttp://jackaudio.org/\fR>
+.PP
+\fIOptions\fR
+.IX Subsection "Options"
+.IP "\fBchannels\fR" 4
+.IX Item "channels"
+Set the number of channels. Default is 2.
+.SS "kmsgrab"
+.IX Subsection "kmsgrab"
+\&\s-1KMS\s0 video input device.
+.PP
+Captures the \s-1KMS\s0 scanout framebuffer associated with a specified \s-1CRTC\s0 or plane as a
+\&\s-1DRM\s0 object that can be passed to other hardware functions.
+.PP
+Requires either \s-1DRM\s0 master or \s-1CAP_SYS_ADMIN\s0 to run.
+.PP
+If you don't understand what all of that means, you probably don't want this.  Look at
+\&\fBx11grab\fR instead.
+.PP
+\fIOptions\fR
+.IX Subsection "Options"
+.IP "\fBdevice\fR" 4
+.IX Item "device"
+\&\s-1DRM\s0 device to capture on.  Defaults to \fB/dev/dri/card0\fR.
+.IP "\fBformat\fR" 4
+.IX Item "format"
+Pixel format of the framebuffer.  Defaults to \fBbgr0\fR.
+.IP "\fBformat_modifier\fR" 4
+.IX Item "format_modifier"
+Format modifier to signal on output frames.  This is necessary to import correctly into
+some APIs, but can't be autodetected.  See the libdrm documentation for possible values.
+.IP "\fBcrtc_id\fR" 4
+.IX Item "crtc_id"
+\&\s-1KMS\s0 \s-1CRTC\s0 \s-1ID\s0 to define the capture source.  The first active plane on the given \s-1CRTC\s0
+will be used.
+.IP "\fBplane_id\fR" 4
+.IX Item "plane_id"
+\&\s-1KMS\s0 plane \s-1ID\s0 to define the capture source.  Defaults to the first active plane found if
+neither \fBcrtc_id\fR nor \fBplane_id\fR are specified.
+.IP "\fBframerate\fR" 4
+.IX Item "framerate"
+Framerate to capture at.  This is not synchronised to any page flipping or framebuffer
+changes \- it just defines the interval at which the framebuffer is sampled.  Sampling
+faster than the framebuffer update rate will generate independent frames with the same
+content.  Defaults to \f(CW30\fR.
+.PP
+\fIExamples\fR
+.IX Subsection "Examples"
+.IP "\(bu" 4
+Capture from the first active plane, download the result to normal frames and encode.
+This will only work if the framebuffer is both linear and mappable \- if not, the result
+may be scrambled or fail to download.
+.Sp
+.Vb 1
+\&        ffmpeg \-f kmsgrab \-i \- \-vf \*(Aqhwdownload,format=bgr0\*(Aq output.mp4
+.Ve
+.IP "\(bu" 4
+Capture from \s-1CRTC\s0 \s-1ID\s0 42 at 60fps, map the result to \s-1VAAPI\s0, convert to \s-1NV12\s0 and encode as H.264.
+.Sp
+.Vb 1
+\&        ffmpeg \-crtc_id 42 \-framerate 60 \-f kmsgrab \-i \- \-vf \*(Aqhwmap=derive_device=vaapi,scale_vaapi=w=1920:h=1080:format=nv12\*(Aq \-c:v h264_vaapi output.mp4
+.Ve
+.SS "lavfi"
+.IX Subsection "lavfi"
+Libavfilter input virtual device.
+.PP
+This input device reads data from the open output pads of a libavfilter
+filtergraph.
+.PP
+For each filtergraph open output, the input device will create a
+corresponding stream which is mapped to the generated output. Currently
+only video data is supported. The filtergraph is specified through the
+option \fBgraph\fR.
+.PP
+\fIOptions\fR
+.IX Subsection "Options"
+.IP "\fBgraph\fR" 4
+.IX Item "graph"
+Specify the filtergraph to use as input. Each video open output must be
+labelled by a unique string of the form "out\fIN\fR", where \fIN\fR is a
+number starting from 0 corresponding to the mapped input stream
+generated by the device.
+The first unlabelled output is automatically assigned to the \*(L"out0\*(R"
+label, but all the others need to be specified explicitly.
+.Sp
+The suffix \*(L"+subcc\*(R" can be appended to the output label to create an extra
+stream with the closed captions packets attached to that output
+(experimental; only for \s-1EIA\-608\s0 / \s-1CEA\-708\s0 for now).
+The subcc streams are created after all the normal streams, in the order of
+the corresponding stream.
+For example, if there is \*(L"out19+subcc\*(R", \*(L"out7+subcc\*(R" and up to \*(L"out42\*(R", the
+stream #43 is subcc for stream #7 and stream #44 is subcc for stream #19.
+.Sp
+If not specified defaults to the filename specified for the input
+device.
+.IP "\fBgraph_file\fR" 4
+.IX Item "graph_file"
+Set the filename of the filtergraph to be read and sent to the other
+filters. Syntax of the filtergraph is the same as the one specified by
+the option \fIgraph\fR.
+.IP "\fBdumpgraph\fR" 4
+.IX Item "dumpgraph"
+Dump graph to stderr.
+.PP
+\fIExamples\fR
+.IX Subsection "Examples"
+.IP "\(bu" 4
+Create a color video stream and play it back with \fBffplay\fR:
+.Sp
+.Vb 1
+\&        ffplay \-f lavfi \-graph "color=c=pink [out0]" dummy
+.Ve
+.IP "\(bu" 4
+As the previous example, but use filename for specifying the graph
+description, and omit the \*(L"out0\*(R" label:
+.Sp
+.Vb 1
+\&        ffplay \-f lavfi color=c=pink
+.Ve
+.IP "\(bu" 4
+Create three different video test filtered sources and play them:
+.Sp
+.Vb 1
+\&        ffplay \-f lavfi \-graph "testsrc [out0]; testsrc,hflip [out1]; testsrc,negate [out2]" test3
+.Ve
+.IP "\(bu" 4
+Read an audio stream from a file using the amovie source and play it
+back with \fBffplay\fR:
+.Sp
+.Vb 1
+\&        ffplay \-f lavfi "amovie=test.wav"
+.Ve
+.IP "\(bu" 4
+Read an audio stream and a video stream and play it back with
+\&\fBffplay\fR:
+.Sp
+.Vb 1
+\&        ffplay \-f lavfi "movie=test.avi[out0];amovie=test.wav[out1]"
+.Ve
+.IP "\(bu" 4
+Dump decoded frames to images and closed captions to a file (experimental):
+.Sp
+.Vb 1
+\&        ffmpeg \-f lavfi \-i "movie=test.ts[out0+subcc]" \-map v frame%08d.png \-map s \-c copy \-f rawvideo subcc.bin
+.Ve
+.SS "libcdio"
+.IX Subsection "libcdio"
+Audio-CD input device based on libcdio.
+.PP
+To enable this input device during configuration you need libcdio
+installed on your system. It requires the configure option
+\&\f(CW\*(C`\-\-enable\-libcdio\*(C'\fR.
+.PP
+This device allows playing and grabbing from an Audio-CD.
+.PP
+For example to copy with \fBffmpeg\fR the entire Audio-CD in \fI/dev/sr0\fR,
+you may run the command:
+.PP
+.Vb 1
+\&        ffmpeg \-f libcdio \-i /dev/sr0 cd.wav
+.Ve
+.PP
+\fIOptions\fR
+.IX Subsection "Options"
+.IP "\fBspeed\fR" 4
+.IX Item "speed"
+Set drive reading speed. Default value is 0.
+.Sp
+The speed is specified CD-ROM speed units. The speed is set through
+the libcdio \f(CW\*(C`cdio_cddap_speed_set\*(C'\fR function. On many CD-ROM
+drives, specifying a value too large will result in using the fastest
+speed.
+.IP "\fBparanoia_mode\fR" 4
+.IX Item "paranoia_mode"
+Set paranoia recovery mode flags. It accepts one of the following values:
+.RS 4
+.IP "\fBdisable\fR" 4
+.IX Item "disable"
+.PD 0
+.IP "\fBverify\fR" 4
+.IX Item "verify"
+.IP "\fBoverlap\fR" 4
+.IX Item "overlap"
+.IP "\fBneverskip\fR" 4
+.IX Item "neverskip"
+.IP "\fBfull\fR" 4
+.IX Item "full"
+.RE
+.RS 4
+.PD
+.Sp
+Default value is \fBdisable\fR.
+.Sp
+For more information about the available recovery modes, consult the
+paranoia project documentation.
+.RE
+.SS "libdc1394"
+.IX Subsection "libdc1394"
+\&\s-1IIDC1394\s0 input device, based on libdc1394 and libraw1394.
+.PP
+Requires the configure option \f(CW\*(C`\-\-enable\-libdc1394\*(C'\fR.
+.SS "libndi_newtek"
+.IX Subsection "libndi_newtek"
+The libndi_newtek input device provides capture capabilities for using \s-1NDI\s0 (Network
+Device Interface, standard created by NewTek).
+.PP
+Input filename is a \s-1NDI\s0 source name that could be found by sending \-find_sources 1
+to command line \- it has no specific syntax but human-readable formatted.
+.PP
+To enable this input device, you need the \s-1NDI\s0 \s-1SDK\s0 and you
+need to configure with the appropriate \f(CW\*(C`\-\-extra\-cflags\*(C'\fR
+and \f(CW\*(C`\-\-extra\-ldflags\*(C'\fR.
+.PP
+\fIOptions\fR
+.IX Subsection "Options"
+.IP "\fBfind_sources\fR" 4
+.IX Item "find_sources"
+If set to \fBtrue\fR, print a list of found/available \s-1NDI\s0 sources and exit.
+Defaults to \fBfalse\fR.
+.IP "\fBwait_sources\fR" 4
+.IX Item "wait_sources"
+Override time to wait until the number of online sources have changed.
+Defaults to \fB0.5\fR.
+.IP "\fBallow_video_fields\fR" 4
+.IX Item "allow_video_fields"
+When this flag is \fBfalse\fR, all video that you receive will be progressive.
+Defaults to \fBtrue\fR.
+.IP "\fBextra_ips\fR" 4
+.IX Item "extra_ips"
+If is set to list of comma separated ip addresses, scan for sources not only
+using mDNS but also use unicast ip addresses specified by this list.
+.PP
+\fIExamples\fR
+.IX Subsection "Examples"
+.IP "\(bu" 4
+List input devices:
+.Sp
+.Vb 1
+\&        ffmpeg \-f libndi_newtek \-find_sources 1 \-i dummy
+.Ve
+.IP "\(bu" 4
+List local and remote input devices:
+.Sp
+.Vb 1
+\&        ffmpeg \-f libndi_newtek \-extra_ips "192.168.10.10" \-find_sources 1 \-i dummy
+.Ve
+.IP "\(bu" 4
+Restream to \s-1NDI:\s0
+.Sp
+.Vb 1
+\&        ffmpeg \-f libndi_newtek \-i "DEV\-5.INTERNAL.M1STEREO.TV (NDI_SOURCE_NAME_1)" \-f libndi_newtek \-y NDI_SOURCE_NAME_2
+.Ve
+.IP "\(bu" 4
+Restream remote \s-1NDI\s0 to local \s-1NDI:\s0
+.Sp
+.Vb 1
+\&        ffmpeg \-f libndi_newtek \-extra_ips "192.168.10.10" \-i "DEV\-5.REMOTE.M1STEREO.TV (NDI_SOURCE_NAME_1)" \-f libndi_newtek \-y NDI_SOURCE_NAME_2
+.Ve
+.SS "openal"
+.IX Subsection "openal"
+The OpenAL input device provides audio capture on all systems with a
+working OpenAL 1.1 implementation.
+.PP
+To enable this input device during configuration, you need OpenAL
+headers and libraries installed on your system, and need to configure
+FFmpeg with \f(CW\*(C`\-\-enable\-openal\*(C'\fR.
+.PP
+OpenAL headers and libraries should be provided as part of your OpenAL
+implementation, or as an additional download (an \s-1SDK\s0). Depending on your
+installation you may need to specify additional flags via the
+\&\f(CW\*(C`\-\-extra\-cflags\*(C'\fR and \f(CW\*(C`\-\-extra\-ldflags\*(C'\fR for allowing the build
+system to locate the OpenAL headers and libraries.
+.PP
+An incomplete list of OpenAL implementations follows:
+.IP "\fBCreative\fR" 4
+.IX Item "Creative"
+The official Windows implementation, providing hardware acceleration
+with supported devices and software fallback.
+See <\fBhttp://openal.org/\fR>.
+.IP "\fBOpenAL Soft\fR" 4
+.IX Item "OpenAL Soft"
+Portable, open source (\s-1LGPL\s0) software implementation. Includes
+backends for the most common sound APIs on the Windows, Linux,
+Solaris, and \s-1BSD\s0 operating systems.
+See <\fBhttp://kcat.strangesoft.net/openal.html\fR>.
+.IP "\fBApple\fR" 4
+.IX Item "Apple"
+OpenAL is part of Core Audio, the official Mac \s-1OS\s0 X Audio interface.
+See <\fBhttp://developer.apple.com/technologies/mac/audio\-and\-video.html\fR>
+.PP
+This device allows one to capture from an audio input device handled
+through OpenAL.
+.PP
+You need to specify the name of the device to capture in the provided
+filename. If the empty string is provided, the device will
+automatically select the default device. You can get the list of the
+supported devices by using the option \fIlist_devices\fR.
+.PP
+\fIOptions\fR
+.IX Subsection "Options"
+.IP "\fBchannels\fR" 4
+.IX Item "channels"
+Set the number of channels in the captured audio. Only the values
+\&\fB1\fR (monaural) and \fB2\fR (stereo) are currently supported.
+Defaults to \fB2\fR.
+.IP "\fBsample_size\fR" 4
+.IX Item "sample_size"
+Set the sample size (in bits) of the captured audio. Only the values
+\&\fB8\fR and \fB16\fR are currently supported. Defaults to
+\&\fB16\fR.
+.IP "\fBsample_rate\fR" 4
+.IX Item "sample_rate"
+Set the sample rate (in Hz) of the captured audio.
+Defaults to \fB44.1k\fR.
+.IP "\fBlist_devices\fR" 4
+.IX Item "list_devices"
+If set to \fBtrue\fR, print a list of devices and exit.
+Defaults to \fBfalse\fR.
+.PP
+\fIExamples\fR
+.IX Subsection "Examples"
+.PP
+Print the list of OpenAL supported devices and exit:
+.PP
+.Vb 1
+\&        $ ffmpeg \-list_devices true \-f openal \-i dummy out.ogg
+.Ve
+.PP
+Capture from the OpenAL device \fI\s-1DR\-BT101\s0 via PulseAudio\fR:
+.PP
+.Vb 1
+\&        $ ffmpeg \-f openal \-i \*(AqDR\-BT101 via PulseAudio\*(Aq out.ogg
+.Ve
+.PP
+Capture from the default device (note the empty string '' as filename):
+.PP
+.Vb 1
+\&        $ ffmpeg \-f openal \-i \*(Aq\*(Aq out.ogg
+.Ve
+.PP
+Capture from two devices simultaneously, writing to two different files,
+within the same \fBffmpeg\fR command:
+.PP
+.Vb 1
+\&        $ ffmpeg \-f openal \-i \*(AqDR\-BT101 via PulseAudio\*(Aq out1.ogg \-f openal \-i \*(AqALSA Default\*(Aq out2.ogg
+.Ve
+.PP
+Note: not all OpenAL implementations support multiple simultaneous capture \-
+try the latest OpenAL Soft if the above does not work.
+.SS "oss"
+.IX Subsection "oss"
+Open Sound System input device.
+.PP
+The filename to provide to the input device is the device node
+representing the \s-1OSS\s0 input device, and is usually set to
+\&\fI/dev/dsp\fR.
+.PP
+For example to grab from \fI/dev/dsp\fR using \fBffmpeg\fR use the
+command:
+.PP
+.Vb 1
+\&        ffmpeg \-f oss \-i /dev/dsp /tmp/oss.wav
+.Ve
+.PP
+For more information about \s-1OSS\s0 see:
+<\fBhttp://manuals.opensound.com/usersguide/dsp.html\fR>
+.PP
+\fIOptions\fR
+.IX Subsection "Options"
+.IP "\fBsample_rate\fR" 4
+.IX Item "sample_rate"
+Set the sample rate in Hz. Default is 48000.
+.IP "\fBchannels\fR" 4
+.IX Item "channels"
+Set the number of channels. Default is 2.
+.SS "pulse"
+.IX Subsection "pulse"
+PulseAudio input device.
+.PP
+To enable this output device you need to configure FFmpeg with \f(CW\*(C`\-\-enable\-libpulse\*(C'\fR.
+.PP
+The filename to provide to the input device is a source device or the
+string \*(L"default\*(R"
+.PP
+To list the PulseAudio source devices and their properties you can invoke
+the command \fBpactl list sources\fR.
+.PP
+More information about PulseAudio can be found on <\fBhttp://www.pulseaudio.org\fR>.
+.PP
+\fIOptions\fR
+.IX Subsection "Options"
+.IP "\fBserver\fR" 4
+.IX Item "server"
+Connect to a specific PulseAudio server, specified by an \s-1IP\s0 address.
+Default server is used when not provided.
+.IP "\fBname\fR" 4
+.IX Item "name"
+Specify the application name PulseAudio will use when showing active clients,
+by default it is the \f(CW\*(C`LIBAVFORMAT_IDENT\*(C'\fR string.
+.IP "\fBstream_name\fR" 4
+.IX Item "stream_name"
+Specify the stream name PulseAudio will use when showing active streams,
+by default it is \*(L"record\*(R".
+.IP "\fBsample_rate\fR" 4
+.IX Item "sample_rate"
+Specify the samplerate in Hz, by default 48kHz is used.
+.IP "\fBchannels\fR" 4
+.IX Item "channels"
+Specify the channels in use, by default 2 (stereo) is set.
+.IP "\fBframe_size\fR" 4
+.IX Item "frame_size"
+Specify the number of bytes per frame, by default it is set to 1024.
+.IP "\fBfragment_size\fR" 4
+.IX Item "fragment_size"
+Specify the minimal buffering fragment in PulseAudio, it will affect the
+audio latency. By default it is unset.
+.IP "\fBwallclock\fR" 4
+.IX Item "wallclock"
+Set the initial \s-1PTS\s0 using the current time. Default is 1.
+.PP
+\fIExamples\fR
+.IX Subsection "Examples"
+.PP
+Record a stream from default device:
+.PP
+.Vb 1
+\&        ffmpeg \-f pulse \-i default /tmp/pulse.wav
+.Ve
+.SS "sndio"
+.IX Subsection "sndio"
+sndio input device.
+.PP
+To enable this input device during configuration you need libsndio
+installed on your system.
+.PP
+The filename to provide to the input device is the device node
+representing the sndio input device, and is usually set to
+\&\fI/dev/audio0\fR.
+.PP
+For example to grab from \fI/dev/audio0\fR using \fBffmpeg\fR use the
+command:
+.PP
+.Vb 1
+\&        ffmpeg \-f sndio \-i /dev/audio0 /tmp/oss.wav
+.Ve
+.PP
+\fIOptions\fR
+.IX Subsection "Options"
+.IP "\fBsample_rate\fR" 4
+.IX Item "sample_rate"
+Set the sample rate in Hz. Default is 48000.
+.IP "\fBchannels\fR" 4
+.IX Item "channels"
+Set the number of channels. Default is 2.
+.SS "video4linux2, v4l2"
+.IX Subsection "video4linux2, v4l2"
+Video4Linux2 input video device.
+.PP
+\&\*(L"v4l2\*(R" can be used as alias for \*(L"video4linux2\*(R".
+.PP
+If FFmpeg is built with v4l\-utils support (by using the
+\&\f(CW\*(C`\-\-enable\-libv4l2\*(C'\fR configure option), it is possible to use it with the
+\&\f(CW\*(C`\-use_libv4l2\*(C'\fR input device option.
+.PP
+The name of the device to grab is a file device node, usually Linux
+systems tend to automatically create such nodes when the device
+(e.g. an \s-1USB\s0 webcam) is plugged into the system, and has a name of the
+kind \fI/dev/video\fIN\fI\fR, where \fIN\fR is a number associated to
+the device.
+.PP
+Video4Linux2 devices usually support a limited set of
+\&\fIwidth\fRx\fIheight\fR sizes and frame rates. You can check which are
+supported using \fB\-list_formats all\fR for Video4Linux2 devices.
+Some devices, like \s-1TV\s0 cards, support one or more standards. It is possible
+to list all the supported standards using \fB\-list_standards all\fR.
+.PP
+The time base for the timestamps is 1 microsecond. Depending on the kernel
+version and configuration, the timestamps may be derived from the real time
+clock (origin at the Unix Epoch) or the monotonic clock (origin usually at
+boot time, unaffected by \s-1NTP\s0 or manual changes to the clock). The
+\&\fB\-timestamps abs\fR or \fB\-ts abs\fR option can be used to force
+conversion into the real time clock.
+.PP
+Some usage examples of the video4linux2 device with \fBffmpeg\fR
+and \fBffplay\fR:
+.IP "\(bu" 4
+List supported formats for a video4linux2 device:
+.Sp
+.Vb 1
+\&        ffplay \-f video4linux2 \-list_formats all /dev/video0
+.Ve
+.IP "\(bu" 4
+Grab and show the input of a video4linux2 device:
+.Sp
+.Vb 1
+\&        ffplay \-f video4linux2 \-framerate 30 \-video_size hd720 /dev/video0
+.Ve
+.IP "\(bu" 4
+Grab and record the input of a video4linux2 device, leave the
+frame rate and size as previously set:
+.Sp
+.Vb 1
+\&        ffmpeg \-f video4linux2 \-input_format mjpeg \-i /dev/video0 out.mpeg
+.Ve
+.PP
+For more information about Video4Linux, check <\fBhttp://linuxtv.org/\fR>.
+.PP
+\fIOptions\fR
+.IX Subsection "Options"
+.IP "\fBstandard\fR" 4
+.IX Item "standard"
+Set the standard. Must be the name of a supported standard. To get a
+list of the supported standards, use the \fBlist_standards\fR
+option.
+.IP "\fBchannel\fR" 4
+.IX Item "channel"
+Set the input channel number. Default to \-1, which means using the
+previously selected channel.
+.IP "\fBvideo_size\fR" 4
+.IX Item "video_size"
+Set the video frame size. The argument must be a string in the form
+\&\fI\s-1WIDTH\s0\fRx\fI\s-1HEIGHT\s0\fR or a valid size abbreviation.
+.IP "\fBpixel_format\fR" 4
+.IX Item "pixel_format"
+Select the pixel format (only valid for raw video input).
+.IP "\fBinput_format\fR" 4
+.IX Item "input_format"
+Set the preferred pixel format (for raw video) or a codec name.
+This option allows one to select the input format, when several are
+available.
+.IP "\fBframerate\fR" 4
+.IX Item "framerate"
+Set the preferred video frame rate.
+.IP "\fBlist_formats\fR" 4
+.IX Item "list_formats"
+List available formats (supported pixel formats, codecs, and frame
+sizes) and exit.
+.Sp
+Available values are:
+.RS 4
+.IP "\fBall\fR" 4
+.IX Item "all"
+Show all available (compressed and non-compressed) formats.
+.IP "\fBraw\fR" 4
+.IX Item "raw"
+Show only raw video (non-compressed) formats.
+.IP "\fBcompressed\fR" 4
+.IX Item "compressed"
+Show only compressed formats.
+.RE
+.RS 4
+.RE
+.IP "\fBlist_standards\fR" 4
+.IX Item "list_standards"
+List supported standards and exit.
+.Sp
+Available values are:
+.RS 4
+.IP "\fBall\fR" 4
+.IX Item "all"
+Show all supported standards.
+.RE
+.RS 4
+.RE
+.IP "\fBtimestamps, ts\fR" 4
+.IX Item "timestamps, ts"
+Set type of timestamps for grabbed frames.
+.Sp
+Available values are:
+.RS 4
+.IP "\fBdefault\fR" 4
+.IX Item "default"
+Use timestamps from the kernel.
+.IP "\fBabs\fR" 4
+.IX Item "abs"
+Use absolute timestamps (wall clock).
+.IP "\fBmono2abs\fR" 4
+.IX Item "mono2abs"
+Force conversion from monotonic to absolute timestamps.
+.RE
+.RS 4
+.Sp
+Default value is \f(CW\*(C`default\*(C'\fR.
+.RE
+.IP "\fBuse_libv4l2\fR" 4
+.IX Item "use_libv4l2"
+Use libv4l2 (v4l\-utils) conversion functions. Default is 0.
+.SS "vfwcap"
+.IX Subsection "vfwcap"
+VfW (Video for Windows) capture input device.
+.PP
+The filename passed as input is the capture driver number, ranging from
+0 to 9. You may use \*(L"list\*(R" as filename to print a list of drivers. Any
+other filename will be interpreted as device number 0.
+.PP
+\fIOptions\fR
+.IX Subsection "Options"
+.IP "\fBvideo_size\fR" 4
+.IX Item "video_size"
+Set the video frame size.
+.IP "\fBframerate\fR" 4
+.IX Item "framerate"
+Set the grabbing frame rate. Default value is \f(CW\*(C`ntsc\*(C'\fR,
+corresponding to a frame rate of \f(CW\*(C`30000/1001\*(C'\fR.
+.SS "x11grab"
+.IX Subsection "x11grab"
+X11 video input device.
+.PP
+To enable this input device during configuration you need libxcb
+installed on your system. It will be automatically detected during
+configuration.
+.PP
+This device allows one to capture a region of an X11 display.
+.PP
+The filename passed as input has the syntax:
+.PP
+.Vb 1
+\&        [<hostname>]:<display_number>.<screen_number>[+<x_offset>,<y_offset>]
+.Ve
+.PP
+\&\fIhostname\fR:\fIdisplay_number\fR.\fIscreen_number\fR specifies the
+X11 display name of the screen to grab from. \fIhostname\fR can be
+omitted, and defaults to \*(L"localhost\*(R". The environment variable
+\&\fB\s-1DISPLAY\s0\fR contains the default display name.
+.PP
+\&\fIx_offset\fR and \fIy_offset\fR specify the offsets of the grabbed
+area with respect to the top-left border of the X11 screen. They
+default to 0.
+.PP
+Check the X11 documentation (e.g. \fBman X\fR) for more detailed
+information.
+.PP
+Use the \fBxdpyinfo\fR program for getting basic information about
+the properties of your X11 display (e.g. grep for \*(L"name\*(R" or
+\&\*(L"dimensions\*(R").
+.PP
+For example to grab from \fI:0.0\fR using \fBffmpeg\fR:
+.PP
+.Vb 1
+\&        ffmpeg \-f x11grab \-framerate 25 \-video_size cif \-i :0.0 out.mpg
+.Ve
+.PP
+Grab at position \f(CW\*(C`10,20\*(C'\fR:
+.PP
+.Vb 1
+\&        ffmpeg \-f x11grab \-framerate 25 \-video_size cif \-i :0.0+10,20 out.mpg
+.Ve
+.PP
+\fIOptions\fR
+.IX Subsection "Options"
+.IP "\fBdraw_mouse\fR" 4
+.IX Item "draw_mouse"
+Specify whether to draw the mouse pointer. A value of \f(CW0\fR specifies
+not to draw the pointer. Default value is \f(CW1\fR.
+.IP "\fBfollow_mouse\fR" 4
+.IX Item "follow_mouse"
+Make the grabbed area follow the mouse. The argument can be
+\&\f(CW\*(C`centered\*(C'\fR or a number of pixels \fI\s-1PIXELS\s0\fR.
+.Sp
+When it is specified with \*(L"centered\*(R", the grabbing region follows the mouse
+pointer and keeps the pointer at the center of region; otherwise, the region
+follows only when the mouse pointer reaches within \fI\s-1PIXELS\s0\fR (greater than
+zero) to the edge of region.
+.Sp
+For example:
+.Sp
+.Vb 1
+\&        ffmpeg \-f x11grab \-follow_mouse centered \-framerate 25 \-video_size cif \-i :0.0 out.mpg
+.Ve
+.Sp
+To follow only when the mouse pointer reaches within 100 pixels to edge:
+.Sp
+.Vb 1
+\&        ffmpeg \-f x11grab \-follow_mouse 100 \-framerate 25 \-video_size cif \-i :0.0 out.mpg
+.Ve
+.IP "\fBframerate\fR" 4
+.IX Item "framerate"
+Set the grabbing frame rate. Default value is \f(CW\*(C`ntsc\*(C'\fR,
+corresponding to a frame rate of \f(CW\*(C`30000/1001\*(C'\fR.
+.IP "\fBshow_region\fR" 4
+.IX Item "show_region"
+Show grabbed region on screen.
+.Sp
+If \fIshow_region\fR is specified with \f(CW1\fR, then the grabbing
+region will be indicated on screen. With this option, it is easy to
+know what is being grabbed if only a portion of the screen is grabbed.
+.IP "\fBregion_border\fR" 4
+.IX Item "region_border"
+Set the region border thickness if \fB\-show_region 1\fR is used.
+Range is 1 to 128 and default is 3 (XCB-based x11grab only).
+.Sp
+For example:
+.Sp
+.Vb 1
+\&        ffmpeg \-f x11grab \-show_region 1 \-framerate 25 \-video_size cif \-i :0.0+10,20 out.mpg
+.Ve
+.Sp
+With \fIfollow_mouse\fR:
+.Sp
+.Vb 1
+\&        ffmpeg \-f x11grab \-follow_mouse centered \-show_region 1 \-framerate 25 \-video_size cif \-i :0.0 out.mpg
+.Ve
+.IP "\fBvideo_size\fR" 4
+.IX Item "video_size"
+Set the video frame size. Default value is \f(CW\*(C`vga\*(C'\fR.
+.IP "\fBgrab_x\fR" 4
+.IX Item "grab_x"
+.PD 0
+.IP "\fBgrab_y\fR" 4
+.IX Item "grab_y"
+.PD
+Set the grabbing region coordinates. They are expressed as offset from
+the top left corner of the X11 window and correspond to the
+\&\fIx_offset\fR and \fIy_offset\fR parameters in the device name. The
+default value for both options is 0.
+.SH "OUTPUT DEVICES"
+.IX Header "OUTPUT DEVICES"
+Output devices are configured elements in FFmpeg that can write
+multimedia data to an output device attached to your system.
+.PP
+When you configure your FFmpeg build, all the supported output devices
+are enabled by default. You can list all available ones using the
+configure option \*(L"\-\-list\-outdevs\*(R".
+.PP
+You can disable all the output devices using the configure option
+\&\*(L"\-\-disable\-outdevs\*(R", and selectively enable an output device using the
+option "\-\-enable\-outdev=\fI\s-1OUTDEV\s0\fR\*(L", or you can disable a particular
+input device using the option \*(R"\-\-disable\-outdev=\fI\s-1OUTDEV\s0\fR".
+.PP
+The option \*(L"\-devices\*(R" of the ff* tools will display the list of
+enabled output devices.
+.PP
+A description of the currently available output devices follows.
+.SS "alsa"
+.IX Subsection "alsa"
+\&\s-1ALSA\s0 (Advanced Linux Sound Architecture) output device.
+.PP
+\fIExamples\fR
+.IX Subsection "Examples"
+.IP "\(bu" 4
+Play a file on default \s-1ALSA\s0 device:
+.Sp
+.Vb 1
+\&        ffmpeg \-i INPUT \-f alsa default
+.Ve
+.IP "\(bu" 4
+Play a file on soundcard 1, audio device 7:
+.Sp
+.Vb 1
+\&        ffmpeg \-i INPUT \-f alsa hw:1,7
+.Ve
+.SS "caca"
+.IX Subsection "caca"
+\&\s-1CACA\s0 output device.
+.PP
+This output device allows one to show a video stream in \s-1CACA\s0 window.
+Only one \s-1CACA\s0 window is allowed per application, so you can
+have only one instance of this output device in an application.
+.PP
+To enable this output device you need to configure FFmpeg with
+\&\f(CW\*(C`\-\-enable\-libcaca\*(C'\fR.
+libcaca is a graphics library that outputs text instead of pixels.
+.PP
+For more information about libcaca, check:
+<\fBhttp://caca.zoy.org/wiki/libcaca\fR>
+.PP
+\fIOptions\fR
+.IX Subsection "Options"
+.IP "\fBwindow_title\fR" 4
+.IX Item "window_title"
+Set the \s-1CACA\s0 window title, if not specified default to the filename
+specified for the output device.
+.IP "\fBwindow_size\fR" 4
+.IX Item "window_size"
+Set the \s-1CACA\s0 window size, can be a string of the form
+\&\fIwidth\fRx\fIheight\fR or a video size abbreviation.
+If not specified it defaults to the size of the input video.
+.IP "\fBdriver\fR" 4
+.IX Item "driver"
+Set display driver.
+.IP "\fBalgorithm\fR" 4
+.IX Item "algorithm"
+Set dithering algorithm. Dithering is necessary
+because the picture being rendered has usually far more colours than
+the available palette.
+The accepted values are listed with \f(CW\*(C`\-list_dither algorithms\*(C'\fR.
+.IP "\fBantialias\fR" 4
+.IX Item "antialias"
+Set antialias method. Antialiasing smoothens the rendered
+image and avoids the commonly seen staircase effect.
+The accepted values are listed with \f(CW\*(C`\-list_dither antialiases\*(C'\fR.
+.IP "\fBcharset\fR" 4
+.IX Item "charset"
+Set which characters are going to be used when rendering text.
+The accepted values are listed with \f(CW\*(C`\-list_dither charsets\*(C'\fR.
+.IP "\fBcolor\fR" 4
+.IX Item "color"
+Set color to be used when rendering text.
+The accepted values are listed with \f(CW\*(C`\-list_dither colors\*(C'\fR.
+.IP "\fBlist_drivers\fR" 4
+.IX Item "list_drivers"
+If set to \fBtrue\fR, print a list of available drivers and exit.
+.IP "\fBlist_dither\fR" 4
+.IX Item "list_dither"
+List available dither options related to the argument.
+The argument must be one of \f(CW\*(C`algorithms\*(C'\fR, \f(CW\*(C`antialiases\*(C'\fR,
+\&\f(CW\*(C`charsets\*(C'\fR, \f(CW\*(C`colors\*(C'\fR.
+.PP
+\fIExamples\fR
+.IX Subsection "Examples"
+.IP "\(bu" 4
+The following command shows the \fBffmpeg\fR output is an
+\&\s-1CACA\s0 window, forcing its size to 80x25:
+.Sp
+.Vb 1
+\&        ffmpeg \-i INPUT \-c:v rawvideo \-pix_fmt rgb24 \-window_size 80x25 \-f caca \-
+.Ve
+.IP "\(bu" 4
+Show the list of available drivers and exit:
+.Sp
+.Vb 1
+\&        ffmpeg \-i INPUT \-pix_fmt rgb24 \-f caca \-list_drivers true \-
+.Ve
+.IP "\(bu" 4
+Show the list of available dither colors and exit:
+.Sp
+.Vb 1
+\&        ffmpeg \-i INPUT \-pix_fmt rgb24 \-f caca \-list_dither colors \-
+.Ve
+.SS "decklink"
+.IX Subsection "decklink"
+The decklink output device provides playback capabilities for Blackmagic
+DeckLink devices.
+.PP
+To enable this output device, you need the Blackmagic DeckLink \s-1SDK\s0 and you
+need to configure with the appropriate \f(CW\*(C`\-\-extra\-cflags\*(C'\fR
+and \f(CW\*(C`\-\-extra\-ldflags\*(C'\fR.
+On Windows, you need to run the \s-1IDL\s0 files through \fBwidl\fR.
+.PP
+DeckLink is very picky about the formats it supports. Pixel format is always
+uyvy422, framerate, field order and video size must be determined for your
+device with \fB\-list_formats 1\fR. Audio sample rate is always 48 kHz.
+.PP
+\fIOptions\fR
+.IX Subsection "Options"
+.IP "\fBlist_devices\fR" 4
+.IX Item "list_devices"
+If set to \fBtrue\fR, print a list of devices and exit.
+Defaults to \fBfalse\fR. Alternatively you can use the \f(CW\*(C`\-sinks\*(C'\fR
+option of ffmpeg to list the available output devices.
+.IP "\fBlist_formats\fR" 4
+.IX Item "list_formats"
+If set to \fBtrue\fR, print a list of supported formats and exit.
+Defaults to \fBfalse\fR.
+.IP "\fBpreroll\fR" 4
+.IX Item "preroll"
+Amount of time to preroll video in seconds.
+Defaults to \fB0.5\fR.
+.IP "\fBduplex_mode\fR" 4
+.IX Item "duplex_mode"
+Sets the decklink device duplex mode. Must be \fBunset\fR, \fBhalf\fR or \fBfull\fR.
+Defaults to \fBunset\fR.
+.PP
+\fIExamples\fR
+.IX Subsection "Examples"
+.IP "\(bu" 4
+List output devices:
+.Sp
+.Vb 1
+\&        ffmpeg \-i test.avi \-f decklink \-list_devices 1 dummy
+.Ve
+.IP "\(bu" 4
+List supported formats:
+.Sp
+.Vb 1
+\&        ffmpeg \-i test.avi \-f decklink \-list_formats 1 \*(AqDeckLink Mini Monitor\*(Aq
+.Ve
+.IP "\(bu" 4
+Play video clip:
+.Sp
+.Vb 1
+\&        ffmpeg \-i test.avi \-f decklink \-pix_fmt uyvy422 \*(AqDeckLink Mini Monitor\*(Aq
+.Ve
+.IP "\(bu" 4
+Play video clip with non-standard framerate or video size:
+.Sp
+.Vb 1
+\&        ffmpeg \-i test.avi \-f decklink \-pix_fmt uyvy422 \-s 720x486 \-r 24000/1001 \*(AqDeckLink Mini Monitor\*(Aq
+.Ve
+.SS "fbdev"
+.IX Subsection "fbdev"
+Linux framebuffer output device.
+.PP
+The Linux framebuffer is a graphic hardware-independent abstraction
+layer to show graphics on a computer monitor, typically on the
+console. It is accessed through a file device node, usually
+\&\fI/dev/fb0\fR.
+.PP
+For more detailed information read the file
+\&\fIDocumentation/fb/framebuffer.txt\fR included in the Linux source tree.
+.PP
+\fIOptions\fR
+.IX Subsection "Options"
+.IP "\fBxoffset\fR" 4
+.IX Item "xoffset"
+.PD 0
+.IP "\fByoffset\fR" 4
+.IX Item "yoffset"
+.PD
+Set x/y coordinate of top left corner. Default is 0.
+.PP
+\fIExamples\fR
+.IX Subsection "Examples"
+.PP
+Play a file on framebuffer device \fI/dev/fb0\fR.
+Required pixel format depends on current framebuffer settings.
+.PP
+.Vb 1
+\&        ffmpeg \-re \-i INPUT \-c:v rawvideo \-pix_fmt bgra \-f fbdev /dev/fb0
+.Ve
+.PP
+See also <\fBhttp://linux\-fbdev.sourceforge.net/\fR>, and \fIfbset\fR\|(1).
+.SS "libndi_newtek"
+.IX Subsection "libndi_newtek"
+The libndi_newtek output device provides playback capabilities for using \s-1NDI\s0 (Network
+Device Interface, standard created by NewTek).
+.PP
+Output filename is a \s-1NDI\s0 name.
+.PP
+To enable this output device, you need the \s-1NDI\s0 \s-1SDK\s0 and you
+need to configure with the appropriate \f(CW\*(C`\-\-extra\-cflags\*(C'\fR
+and \f(CW\*(C`\-\-extra\-ldflags\*(C'\fR.
+.PP
+\&\s-1NDI\s0 uses uyvy422 pixel format natively, but also supports bgra, bgr0, rgba and
+rgb0.
+.PP
+\fIOptions\fR
+.IX Subsection "Options"
+.IP "\fBreference_level\fR" 4
+.IX Item "reference_level"
+The audio reference level in dB. This specifies how many dB above the
+reference level (+4dBU) is the full range of 16 bit audio.
+Defaults to \fB0\fR.
+.IP "\fBclock_video\fR" 4
+.IX Item "clock_video"
+These specify whether video \*(L"clock\*(R" themselves.
+Defaults to \fBfalse\fR.
+.IP "\fBclock_audio\fR" 4
+.IX Item "clock_audio"
+These specify whether audio \*(L"clock\*(R" themselves.
+Defaults to \fBfalse\fR.
+.PP
+\fIExamples\fR
+.IX Subsection "Examples"
+.IP "\(bu" 4
+Play video clip:
+.Sp
+.Vb 1
+\&        ffmpeg \-i "udp://@239.1.1.1:10480?fifo_size=1000000&overrun_nonfatal=1" \-vf "scale=720:576,fps=fps=25,setdar=dar=16/9,format=pix_fmts=uyvy422" \-f libndi_newtek NEW_NDI1
+.Ve
+.SS "opengl"
+.IX Subsection "opengl"
+OpenGL output device.
+.PP
+To enable this output device you need to configure FFmpeg with \f(CW\*(C`\-\-enable\-opengl\*(C'\fR.
+.PP
+This output device allows one to render to OpenGL context.
+Context may be provided by application or default \s-1SDL\s0 window is created.
+.PP
+When device renders to external context, application must implement handlers for following messages:
+\&\f(CW\*(C`AV_DEV_TO_APP_CREATE_WINDOW_BUFFER\*(C'\fR \- create OpenGL context on current thread.
+\&\f(CW\*(C`AV_DEV_TO_APP_PREPARE_WINDOW_BUFFER\*(C'\fR \- make OpenGL context current.
+\&\f(CW\*(C`AV_DEV_TO_APP_DISPLAY_WINDOW_BUFFER\*(C'\fR \- swap buffers.
+\&\f(CW\*(C`AV_DEV_TO_APP_DESTROY_WINDOW_BUFFER\*(C'\fR \- destroy OpenGL context.
+Application is also required to inform a device about current resolution by sending \f(CW\*(C`AV_APP_TO_DEV_WINDOW_SIZE\*(C'\fR message.
+.PP
+\fIOptions\fR
+.IX Subsection "Options"
+.IP "\fBbackground\fR" 4
+.IX Item "background"
+Set background color. Black is a default.
+.IP "\fBno_window\fR" 4
+.IX Item "no_window"
+Disables default \s-1SDL\s0 window when set to non-zero value.
+Application must provide OpenGL context and both \f(CW\*(C`window_size_cb\*(C'\fR and \f(CW\*(C`window_swap_buffers_cb\*(C'\fR callbacks when set.
+.IP "\fBwindow_title\fR" 4
+.IX Item "window_title"
+Set the \s-1SDL\s0 window title, if not specified default to the filename specified for the output device.
+Ignored when \fBno_window\fR is set.
+.IP "\fBwindow_size\fR" 4
+.IX Item "window_size"
+Set preferred window size, can be a string of the form widthxheight or a video size abbreviation.
+If not specified it defaults to the size of the input video, downscaled according to the aspect ratio.
+Mostly usable when \fBno_window\fR is not set.
+.PP
+\fIExamples\fR
+.IX Subsection "Examples"
+.PP
+Play a file on \s-1SDL\s0 window using OpenGL rendering:
+.PP
+.Vb 1
+\&        ffmpeg  \-i INPUT \-f opengl "window title"
+.Ve
+.SS "oss"
+.IX Subsection "oss"
+\&\s-1OSS\s0 (Open Sound System) output device.
+.SS "pulse"
+.IX Subsection "pulse"
+PulseAudio output device.
+.PP
+To enable this output device you need to configure FFmpeg with \f(CW\*(C`\-\-enable\-libpulse\*(C'\fR.
+.PP
+More information about PulseAudio can be found on <\fBhttp://www.pulseaudio.org\fR>
+.PP
+\fIOptions\fR
+.IX Subsection "Options"
+.IP "\fBserver\fR" 4
+.IX Item "server"
+Connect to a specific PulseAudio server, specified by an \s-1IP\s0 address.
+Default server is used when not provided.
+.IP "\fBname\fR" 4
+.IX Item "name"
+Specify the application name PulseAudio will use when showing active clients,
+by default it is the \f(CW\*(C`LIBAVFORMAT_IDENT\*(C'\fR string.
+.IP "\fBstream_name\fR" 4
+.IX Item "stream_name"
+Specify the stream name PulseAudio will use when showing active streams,
+by default it is set to the specified output name.
+.IP "\fBdevice\fR" 4
+.IX Item "device"
+Specify the device to use. Default device is used when not provided.
+List of output devices can be obtained with command \fBpactl list sinks\fR.
+.IP "\fBbuffer_size\fR" 4
+.IX Item "buffer_size"
+.PD 0
+.IP "\fBbuffer_duration\fR" 4
+.IX Item "buffer_duration"
+.PD
+Control the size and duration of the PulseAudio buffer. A small buffer
+gives more control, but requires more frequent updates.
+.Sp
+\&\fBbuffer_size\fR specifies size in bytes while
+\&\fBbuffer_duration\fR specifies duration in milliseconds.
+.Sp
+When both options are provided then the highest value is used
+(duration is recalculated to bytes using stream parameters). If they
+are set to 0 (which is default), the device will use the default
+PulseAudio duration value. By default PulseAudio set buffer duration
+to around 2 seconds.
+.IP "\fBprebuf\fR" 4
+.IX Item "prebuf"
+Specify pre-buffering size in bytes. The server does not start with
+playback before at least \fBprebuf\fR bytes are available in the
+buffer. By default this option is initialized to the same value as
+\&\fBbuffer_size\fR or \fBbuffer_duration\fR (whichever is bigger).
+.IP "\fBminreq\fR" 4
+.IX Item "minreq"
+Specify minimum request size in bytes. The server does not request less
+than \fBminreq\fR bytes from the client, instead waits until the buffer
+is free enough to request more bytes at once. It is recommended to not set
+this option, which will initialize this to a value that is deemed sensible
+by the server.
+.PP
+\fIExamples\fR
+.IX Subsection "Examples"
+.PP
+Play a file on default device on default server:
+.PP
+.Vb 1
+\&        ffmpeg  \-i INPUT \-f pulse "stream name"
+.Ve
+.SS "sdl"
+.IX Subsection "sdl"
+\&\s-1SDL\s0 (Simple DirectMedia Layer) output device.
+.PP
+This output device allows one to show a video stream in an \s-1SDL\s0
+window. Only one \s-1SDL\s0 window is allowed per application, so you can
+have only one instance of this output device in an application.
+.PP
+To enable this output device you need libsdl installed on your system
+when configuring your build.
+.PP
+For more information about \s-1SDL\s0, check:
+<\fBhttp://www.libsdl.org/\fR>
+.PP
+\fIOptions\fR
+.IX Subsection "Options"
+.IP "\fBwindow_title\fR" 4
+.IX Item "window_title"
+Set the \s-1SDL\s0 window title, if not specified default to the filename
+specified for the output device.
+.IP "\fBicon_title\fR" 4
+.IX Item "icon_title"
+Set the name of the iconified \s-1SDL\s0 window, if not specified it is set
+to the same value of \fIwindow_title\fR.
+.IP "\fBwindow_size\fR" 4
+.IX Item "window_size"
+Set the \s-1SDL\s0 window size, can be a string of the form
+\&\fIwidth\fRx\fIheight\fR or a video size abbreviation.
+If not specified it defaults to the size of the input video,
+downscaled according to the aspect ratio.
+.IP "\fBwindow_x\fR" 4
+.IX Item "window_x"
+.PD 0
+.IP "\fBwindow_y\fR" 4
+.IX Item "window_y"
+.PD
+Set the position of the window on the screen.
+.IP "\fBwindow_fullscreen\fR" 4
+.IX Item "window_fullscreen"
+Set fullscreen mode when non-zero value is provided.
+Default value is zero.
+.IP "\fBwindow_enable_quit\fR" 4
+.IX Item "window_enable_quit"
+Enable quit action (using window button or keyboard key)
+when non-zero value is provided.
+Default value is 1 (enable quit action)
+.PP
+\fIInteractive commands\fR
+.IX Subsection "Interactive commands"
+.PP
+The window created by the device can be controlled through the
+following interactive commands.
+.IP "\fBq, \s-1ESC\s0\fR" 4
+.IX Item "q, ESC"
+Quit the device immediately.
+.PP
+\fIExamples\fR
+.IX Subsection "Examples"
+.PP
+The following command shows the \fBffmpeg\fR output is an
+\&\s-1SDL\s0 window, forcing its size to the qcif format:
+.PP
+.Vb 1
+\&        ffmpeg \-i INPUT \-c:v rawvideo \-pix_fmt yuv420p \-window_size qcif \-f sdl "SDL output"
+.Ve
+.SS "sndio"
+.IX Subsection "sndio"
+sndio audio output device.
+.SS "v4l2"
+.IX Subsection "v4l2"
+Video4Linux2 output device.
+.SS "xv"
+.IX Subsection "xv"
+\&\s-1XV\s0 (XVideo) output device.
+.PP
+This output device allows one to show a video stream in a X Window System
+window.
+.PP
+\fIOptions\fR
+.IX Subsection "Options"
+.IP "\fBdisplay_name\fR" 4
+.IX Item "display_name"
+Specify the hardware display name, which determines the display and
+communications domain to be used.
+.Sp
+The display name or \s-1DISPLAY\s0 environment variable can be a string in
+the format \fIhostname\fR[:\fInumber\fR[.\fIscreen_number\fR]].
+.Sp
+\&\fIhostname\fR specifies the name of the host machine on which the
+display is physically attached. \fInumber\fR specifies the number of
+the display server on that host machine. \fIscreen_number\fR specifies
+the screen to be used on that server.
+.Sp
+If unspecified, it defaults to the value of the \s-1DISPLAY\s0 environment
+variable.
+.Sp
+For example, \f(CW\*(C`dual\-headed:0.1\*(C'\fR would specify screen 1 of display
+0 on the machine named ``dual\-headed''.
+.Sp
+Check the X11 specification for more detailed information about the
+display name format.
+.IP "\fBwindow_id\fR" 4
+.IX Item "window_id"
+When set to non-zero value then device doesn't create new window,
+but uses existing one with provided \fIwindow_id\fR. By default
+this options is set to zero and device creates its own window.
+.IP "\fBwindow_size\fR" 4
+.IX Item "window_size"
+Set the created window size, can be a string of the form
+\&\fIwidth\fRx\fIheight\fR or a video size abbreviation. If not
+specified it defaults to the size of the input video.
+Ignored when \fIwindow_id\fR is set.
+.IP "\fBwindow_x\fR" 4
+.IX Item "window_x"
+.PD 0
+.IP "\fBwindow_y\fR" 4
+.IX Item "window_y"
+.PD
+Set the X and Y window offsets for the created window. They are both
+set to 0 by default. The values may be ignored by the window manager.
+Ignored when \fIwindow_id\fR is set.
+.IP "\fBwindow_title\fR" 4
+.IX Item "window_title"
+Set the window title, if not specified default to the filename
+specified for the output device. Ignored when \fIwindow_id\fR is set.
+.PP
+For more information about XVideo see <\fBhttp://www.x.org/\fR>.
+.PP
+\fIExamples\fR
+.IX Subsection "Examples"
+.IP "\(bu" 4
+Decode, display and encode video input with \fBffmpeg\fR at the
+same time:
+.Sp
+.Vb 1
+\&        ffmpeg \-i INPUT OUTPUT \-f xv display
+.Ve
+.IP "\(bu" 4
+Decode and display the input video to multiple X11 windows:
+.Sp
+.Vb 1
+\&        ffmpeg \-i INPUT \-f xv normal \-vf negate \-f xv negated
+.Ve
+.SH "SEE ALSO"
+.IX Header "SEE ALSO"
+\&\fIffmpeg\fR\|(1), \fIffplay\fR\|(1), \fIffprobe\fR\|(1), \fIlibavdevice\fR\|(3)
+.SH "AUTHORS"
+.IX Header "AUTHORS"
+The FFmpeg developers.
+.PP
+For details about the authorship, see the Git history of the project
+(git://source.ffmpeg.org/ffmpeg), e.g. by typing the command
+\&\fBgit log\fR in the FFmpeg source directory, or browsing the
+online repository at <\fBhttp://source.ffmpeg.org\fR>.
+.PP
+Maintainers for the specific components are listed in the file
+\&\fI\s-1MAINTAINERS\s0\fR in the source code tree.

--
Gitblit v1.8.0