yading@10: .\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14) yading@10: .\" yading@10: .\" Standard preamble: yading@10: .\" ======================================================================== yading@10: .de Sp \" Vertical space (when we can't use .PP) yading@10: .if t .sp .5v yading@10: .if n .sp yading@10: .. yading@10: .de Vb \" Begin verbatim text yading@10: .ft CW yading@10: .nf yading@10: .ne \\$1 yading@10: .. yading@10: .de Ve \" End verbatim text yading@10: .ft R yading@10: .fi yading@10: .. yading@10: .\" Set up some character translations and predefined strings. \*(-- will yading@10: .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left yading@10: .\" double quote, and \*(R" will give a right double quote. \*(C+ will yading@10: .\" give a nicer C++. Capital omega is used to do unbreakable dashes and yading@10: .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, yading@10: .\" nothing in troff, for use with C<>. yading@10: .tr \(*W- yading@10: .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' yading@10: .ie n \{\ yading@10: . ds -- \(*W- yading@10: . ds PI pi yading@10: . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch yading@10: . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch yading@10: . ds L" "" yading@10: . ds R" "" yading@10: . ds C` "" yading@10: . ds C' "" yading@10: 'br\} yading@10: .el\{\ yading@10: . ds -- \|\(em\| yading@10: . ds PI \(*p yading@10: . ds L" `` yading@10: . ds R" '' yading@10: 'br\} yading@10: .\" yading@10: .\" Escape single quotes in literal strings from groff's Unicode transform. yading@10: .ie \n(.g .ds Aq \(aq yading@10: .el .ds Aq ' yading@10: .\" yading@10: .\" If the F register is turned on, we'll generate index entries on stderr for yading@10: .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index yading@10: .\" entries marked with X<> in POD. Of course, you'll have to process the yading@10: .\" output yourself in some meaningful fashion. yading@10: .ie \nF \{\ yading@10: . de IX yading@10: . tm Index:\\$1\t\\n%\t"\\$2" yading@10: .. yading@10: . nr % 0 yading@10: . rr F yading@10: .\} yading@10: .el \{\ yading@10: . de IX yading@10: .. yading@10: .\} yading@10: .\" yading@10: .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). yading@10: .\" Fear. Run. Save yourself. No user-serviceable parts. yading@10: . \" fudge factors for nroff and troff yading@10: .if n \{\ yading@10: . ds #H 0 yading@10: . ds #V .8m yading@10: . ds #F .3m yading@10: . ds #[ \f1 yading@10: . ds #] \fP yading@10: .\} yading@10: .if t \{\ yading@10: . ds #H ((1u-(\\\\n(.fu%2u))*.13m) yading@10: . ds #V .6m yading@10: . ds #F 0 yading@10: . ds #[ \& yading@10: . ds #] \& yading@10: .\} yading@10: . \" simple accents for nroff and troff yading@10: .if n \{\ yading@10: . ds ' \& yading@10: . ds ` \& yading@10: . ds ^ \& yading@10: . ds , \& yading@10: . ds ~ ~ yading@10: . ds / yading@10: .\} yading@10: .if t \{\ yading@10: . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" yading@10: . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' yading@10: . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' yading@10: . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' yading@10: . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' yading@10: . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' yading@10: .\} yading@10: . \" troff and (daisy-wheel) nroff accents yading@10: .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' yading@10: .ds 8 \h'\*(#H'\(*b\h'-\*(#H' yading@10: .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] yading@10: .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' yading@10: .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' yading@10: .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] yading@10: .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] yading@10: .ds ae a\h'-(\w'a'u*4/10)'e yading@10: .ds Ae A\h'-(\w'A'u*4/10)'E yading@10: . \" corrections for vroff yading@10: .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' yading@10: .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' yading@10: . \" for low resolution devices (crt and lpr) yading@10: .if \n(.H>23 .if \n(.V>19 \ yading@10: \{\ yading@10: . ds : e yading@10: . ds 8 ss yading@10: . ds o a yading@10: . ds d- d\h'-1'\(ga yading@10: . ds D- D\h'-1'\(hy yading@10: . ds th \o'bp' yading@10: . ds Th \o'LP' yading@10: . ds ae ae yading@10: . ds Ae AE yading@10: .\} yading@10: .rm #[ #] #H #V #F C yading@10: .\" ======================================================================== yading@10: .\" yading@10: .IX Title "FFMPEG-DEVICES 1" yading@10: .TH FFMPEG-DEVICES 1 "2013-04-21" " " " " yading@10: .\" For nroff, turn off justification. Always turn off hyphenation; it makes yading@10: .\" way too many mistakes in technical documents. yading@10: .if n .ad l yading@10: .nh yading@10: .SH "NAME" yading@10: ffmpeg\-devices \- FFmpeg devices yading@10: .SH "DESCRIPTION" yading@10: .IX Header "DESCRIPTION" yading@10: This document describes the input and output devices provided by the yading@10: libavdevice library. yading@10: .SH "DEVICE OPTIONS" yading@10: .IX Header "DEVICE OPTIONS" yading@10: The libavdevice library provides the same interface as yading@10: libavformat. Namely, an input device is considered like a demuxer, and yading@10: an output device like a muxer, and the interface and generic device yading@10: options are the same provided by libavformat (see the ffmpeg-formats yading@10: manual). yading@10: .PP yading@10: In addition each input or output device may support so-called private yading@10: options, which are specific for that component. yading@10: .PP yading@10: Options may be set by specifying \-\fIoption\fR \fIvalue\fR in the yading@10: FFmpeg tools, or by setting the value explicitly in the device yading@10: \&\f(CW\*(C`AVFormatContext\*(C'\fR options or using the \fIlibavutil/opt.h\fR \s-1API\s0 yading@10: for programmatic use. yading@10: .SH "INPUT DEVICES" yading@10: .IX Header "INPUT DEVICES" yading@10: Input devices are configured elements in FFmpeg which allow to access yading@10: the data coming from a multimedia device attached to your system. yading@10: .PP yading@10: When you configure your FFmpeg build, all the supported input devices yading@10: are enabled by default. You can list all available ones using the yading@10: configure option \*(L"\-\-list\-indevs\*(R". yading@10: .PP yading@10: You can disable all the input devices using the configure option yading@10: \&\*(L"\-\-disable\-indevs\*(R", and selectively enable an input device using the yading@10: option "\-\-enable\-indev=\fI\s-1INDEV\s0\fR\*(L", or you can disable a particular yading@10: input device using the option \*(R"\-\-disable\-indev=\fI\s-1INDEV\s0\fR". yading@10: .PP yading@10: The option \*(L"\-formats\*(R" of the ff* tools will display the list of yading@10: supported input devices (amongst the demuxers). yading@10: .PP yading@10: A description of the currently available input devices follows. yading@10: .SS "alsa" yading@10: .IX Subsection "alsa" yading@10: \&\s-1ALSA\s0 (Advanced Linux Sound Architecture) input device. yading@10: .PP yading@10: To enable this input device during configuration you need libasound yading@10: installed on your system. yading@10: .PP yading@10: This device allows capturing from an \s-1ALSA\s0 device. The name of the yading@10: device to capture has to be an \s-1ALSA\s0 card identifier. yading@10: .PP yading@10: An \s-1ALSA\s0 identifier has the syntax: yading@10: .PP yading@10: .Vb 1 yading@10: \& hw:[,[,]] yading@10: .Ve yading@10: .PP yading@10: where the \fI\s-1DEV\s0\fR and \fI\s-1SUBDEV\s0\fR components are optional. yading@10: .PP yading@10: The three arguments (in order: \fI\s-1CARD\s0\fR,\fI\s-1DEV\s0\fR,\fI\s-1SUBDEV\s0\fR) yading@10: specify card number or identifier, device number and subdevice number yading@10: (\-1 means any). yading@10: .PP yading@10: To see the list of cards currently recognized by your system check the yading@10: files \fI/proc/asound/cards\fR and \fI/proc/asound/devices\fR. yading@10: .PP yading@10: For example to capture with \fBffmpeg\fR from an \s-1ALSA\s0 device with yading@10: card id 0, you may run the command: yading@10: .PP yading@10: .Vb 1 yading@10: \& ffmpeg \-f alsa \-i hw:0 alsaout.wav yading@10: .Ve yading@10: .PP yading@10: For more information see: yading@10: <\fBhttp://www.alsa\-project.org/alsa\-doc/alsa\-lib/pcm.html\fR> yading@10: .SS "bktr" yading@10: .IX Subsection "bktr" yading@10: \&\s-1BSD\s0 video input device. yading@10: .SS "dshow" yading@10: .IX Subsection "dshow" yading@10: Windows DirectShow input device. yading@10: .PP yading@10: DirectShow support is enabled when FFmpeg is built with the mingw\-w64 project. yading@10: Currently only audio and video devices are supported. yading@10: .PP yading@10: Multiple devices may be opened as separate inputs, but they may also be yading@10: opened on the same input, which should improve synchronism between them. yading@10: .PP yading@10: The input name should be in the format: yading@10: .PP yading@10: .Vb 1 yading@10: \& =[:=] yading@10: .Ve yading@10: .PP yading@10: where \fI\s-1TYPE\s0\fR can be either \fIaudio\fR or \fIvideo\fR, yading@10: and \fI\s-1NAME\s0\fR is the device's name. yading@10: .PP yading@10: \fIOptions\fR yading@10: .IX Subsection "Options" yading@10: .PP yading@10: If no options are specified, the device's defaults are used. yading@10: If the device does not support the requested options, it will yading@10: fail to open. yading@10: .IP "\fBvideo_size\fR" 4 yading@10: .IX Item "video_size" yading@10: Set the video size in the captured video. yading@10: .IP "\fBframerate\fR" 4 yading@10: .IX Item "framerate" yading@10: Set the frame rate in the captured video. yading@10: .IP "\fBsample_rate\fR" 4 yading@10: .IX Item "sample_rate" yading@10: Set the sample rate (in Hz) of the captured audio. yading@10: .IP "\fBsample_size\fR" 4 yading@10: .IX Item "sample_size" yading@10: Set the sample size (in bits) of the captured audio. yading@10: .IP "\fBchannels\fR" 4 yading@10: .IX Item "channels" yading@10: Set the number of channels in the captured audio. yading@10: .IP "\fBlist_devices\fR" 4 yading@10: .IX Item "list_devices" yading@10: If set to \fBtrue\fR, print a list of devices and exit. yading@10: .IP "\fBlist_options\fR" 4 yading@10: .IX Item "list_options" yading@10: If set to \fBtrue\fR, print a list of selected device's options yading@10: and exit. yading@10: .IP "\fBvideo_device_number\fR" 4 yading@10: .IX Item "video_device_number" yading@10: Set video device number for devices with same name (starts at 0, yading@10: defaults to 0). yading@10: .IP "\fBaudio_device_number\fR" 4 yading@10: .IX Item "audio_device_number" yading@10: Set audio device number for devices with same name (starts at 0, yading@10: defaults to 0). yading@10: .IP "\fBpixel_format\fR" 4 yading@10: .IX Item "pixel_format" yading@10: Select pixel format to be used by DirectShow. This may only be set when yading@10: the video codec is not set or set to rawvideo. yading@10: .IP "\fBaudio_buffer_size\fR" 4 yading@10: .IX Item "audio_buffer_size" yading@10: Set audio device buffer size in milliseconds (which can directly yading@10: impact latency, depending on the device). yading@10: Defaults to using the audio device's yading@10: default buffer size (typically some multiple of 500ms). yading@10: Setting this value too low can degrade performance. yading@10: See also yading@10: <\fBhttp://msdn.microsoft.com/en\-us/library/windows/desktop/dd377582(v=vs.85).aspx\fR> yading@10: .PP yading@10: \fIExamples\fR yading@10: .IX Subsection "Examples" yading@10: .IP "\(bu" 4 yading@10: Print the list of DirectShow supported devices and exit: yading@10: .Sp yading@10: .Vb 1 yading@10: \& $ ffmpeg \-list_devices true \-f dshow \-i dummy yading@10: .Ve yading@10: .IP "\(bu" 4 yading@10: Open video device \fICamera\fR: yading@10: .Sp yading@10: .Vb 1 yading@10: \& $ ffmpeg \-f dshow \-i video="Camera" yading@10: .Ve yading@10: .IP "\(bu" 4 yading@10: Open second video device with name \fICamera\fR: yading@10: .Sp yading@10: .Vb 1 yading@10: \& $ ffmpeg \-f dshow \-video_device_number 1 \-i video="Camera" yading@10: .Ve yading@10: .IP "\(bu" 4 yading@10: Open video device \fICamera\fR and audio device \fIMicrophone\fR: yading@10: .Sp yading@10: .Vb 1 yading@10: \& $ ffmpeg \-f dshow \-i video="Camera":audio="Microphone" yading@10: .Ve yading@10: .IP "\(bu" 4 yading@10: Print the list of supported options in selected device and exit: yading@10: .Sp yading@10: .Vb 1 yading@10: \& $ ffmpeg \-list_options true \-f dshow \-i video="Camera" yading@10: .Ve yading@10: .SS "dv1394" yading@10: .IX Subsection "dv1394" yading@10: Linux \s-1DV\s0 1394 input device. yading@10: .SS "fbdev" yading@10: .IX Subsection "fbdev" yading@10: Linux framebuffer input device. yading@10: .PP yading@10: The Linux framebuffer is a graphic hardware-independent abstraction yading@10: layer to show graphics on a computer monitor, typically on the yading@10: console. It is accessed through a file device node, usually yading@10: \&\fI/dev/fb0\fR. yading@10: .PP yading@10: For more detailed information read the file yading@10: Documentation/fb/framebuffer.txt included in the Linux source tree. yading@10: .PP yading@10: To record from the framebuffer device \fI/dev/fb0\fR with yading@10: \&\fBffmpeg\fR: yading@10: .PP yading@10: .Vb 1 yading@10: \& ffmpeg \-f fbdev \-r 10 \-i /dev/fb0 out.avi yading@10: .Ve yading@10: .PP yading@10: You can take a single screenshot image with the command: yading@10: .PP yading@10: .Vb 1 yading@10: \& ffmpeg \-f fbdev \-frames:v 1 \-r 1 \-i /dev/fb0 screenshot.jpeg yading@10: .Ve yading@10: .PP yading@10: See also <\fBhttp://linux\-fbdev.sourceforge.net/\fR>, and \fIfbset\fR\|(1). yading@10: .SS "iec61883" yading@10: .IX Subsection "iec61883" yading@10: FireWire \s-1DV/HDV\s0 input device using libiec61883. yading@10: .PP yading@10: To enable this input device, you need libiec61883, libraw1394 and yading@10: libavc1394 installed on your system. Use the configure option yading@10: \&\f(CW\*(C`\-\-enable\-libiec61883\*(C'\fR to compile with the device enabled. yading@10: .PP yading@10: The iec61883 capture device supports capturing from a video device yading@10: connected via \s-1IEEE1394\s0 (FireWire), using libiec61883 and the new Linux yading@10: FireWire stack (juju). This is the default \s-1DV/HDV\s0 input method in Linux yading@10: Kernel 2.6.37 and later, since the old FireWire stack was removed. yading@10: .PP yading@10: Specify the FireWire port to be used as input file, or \*(L"auto\*(R" yading@10: to choose the first port connected. yading@10: .PP yading@10: \fIOptions\fR yading@10: .IX Subsection "Options" yading@10: .IP "\fBdvtype\fR" 4 yading@10: .IX Item "dvtype" yading@10: Override autodetection of \s-1DV/HDV\s0. This should only be used if auto yading@10: detection does not work, or if usage of a different device type yading@10: should be prohibited. Treating a \s-1DV\s0 device as \s-1HDV\s0 (or vice versa) will yading@10: not work and result in undefined behavior. yading@10: The values \fBauto\fR, \fBdv\fR and \fBhdv\fR are supported. yading@10: .IP "\fBdvbuffer\fR" 4 yading@10: .IX Item "dvbuffer" yading@10: Set maxiumum size of buffer for incoming data, in frames. For \s-1DV\s0, this yading@10: is an exact value. For \s-1HDV\s0, it is not frame exact, since \s-1HDV\s0 does yading@10: not have a fixed frame size. yading@10: .IP "\fBdvguid\fR" 4 yading@10: .IX Item "dvguid" yading@10: Select the capture device by specifying it's \s-1GUID\s0. Capturing will only yading@10: be performed from the specified device and fails if no device with the yading@10: given \s-1GUID\s0 is found. This is useful to select the input if multiple yading@10: devices are connected at the same time. yading@10: Look at /sys/bus/firewire/devices to find out the GUIDs. yading@10: .PP yading@10: \fIExamples\fR yading@10: .IX Subsection "Examples" yading@10: .IP "\(bu" 4 yading@10: Grab and show the input of a FireWire \s-1DV/HDV\s0 device. yading@10: .Sp yading@10: .Vb 1 yading@10: \& ffplay \-f iec61883 \-i auto yading@10: .Ve yading@10: .IP "\(bu" 4 yading@10: Grab and record the input of a FireWire \s-1DV/HDV\s0 device, yading@10: using a packet buffer of 100000 packets if the source is \s-1HDV\s0. yading@10: .Sp yading@10: .Vb 1 yading@10: \& ffmpeg \-f iec61883 \-i auto \-hdvbuffer 100000 out.mpg yading@10: .Ve yading@10: .SS "jack" yading@10: .IX Subsection "jack" yading@10: \&\s-1JACK\s0 input device. yading@10: .PP yading@10: To enable this input device during configuration you need libjack yading@10: installed on your system. yading@10: .PP yading@10: A \s-1JACK\s0 input device creates one or more \s-1JACK\s0 writable clients, one for yading@10: each audio channel, with name \fIclient_name\fR:input_\fIN\fR, where yading@10: \&\fIclient_name\fR is the name provided by the application, and \fIN\fR yading@10: is a number which identifies the channel. yading@10: Each writable client will send the acquired data to the FFmpeg input yading@10: device. yading@10: .PP yading@10: Once you have created one or more \s-1JACK\s0 readable clients, you need to yading@10: connect them to one or more \s-1JACK\s0 writable clients. yading@10: .PP yading@10: To connect or disconnect \s-1JACK\s0 clients you can use the \fBjack_connect\fR yading@10: and \fBjack_disconnect\fR programs, or do it through a graphical interface, yading@10: for example with \fBqjackctl\fR. yading@10: .PP yading@10: To list the \s-1JACK\s0 clients and their properties you can invoke the command yading@10: \&\fBjack_lsp\fR. yading@10: .PP yading@10: Follows an example which shows how to capture a \s-1JACK\s0 readable client yading@10: with \fBffmpeg\fR. yading@10: .PP yading@10: .Vb 2 yading@10: \& # Create a JACK writable client with name "ffmpeg". yading@10: \& $ ffmpeg \-f jack \-i ffmpeg \-y out.wav yading@10: \& yading@10: \& # Start the sample jack_metro readable client. yading@10: \& $ jack_metro \-b 120 \-d 0.2 \-f 4000 yading@10: \& yading@10: \& # List the current JACK clients. yading@10: \& $ jack_lsp \-c yading@10: \& system:capture_1 yading@10: \& system:capture_2 yading@10: \& system:playback_1 yading@10: \& system:playback_2 yading@10: \& ffmpeg:input_1 yading@10: \& metro:120_bpm yading@10: \& yading@10: \& # Connect metro to the ffmpeg writable client. yading@10: \& $ jack_connect metro:120_bpm ffmpeg:input_1 yading@10: .Ve yading@10: .PP yading@10: For more information read: yading@10: <\fBhttp://jackaudio.org/\fR> yading@10: .SS "lavfi" yading@10: .IX Subsection "lavfi" yading@10: Libavfilter input virtual device. yading@10: .PP yading@10: This input device reads data from the open output pads of a libavfilter yading@10: filtergraph. yading@10: .PP yading@10: For each filtergraph open output, the input device will create a yading@10: corresponding stream which is mapped to the generated output. Currently yading@10: only video data is supported. The filtergraph is specified through the yading@10: option \fBgraph\fR. yading@10: .PP yading@10: \fIOptions\fR yading@10: .IX Subsection "Options" yading@10: .IP "\fBgraph\fR" 4 yading@10: .IX Item "graph" yading@10: Specify the filtergraph to use as input. Each video open output must be yading@10: labelled by a unique string of the form "out\fIN\fR", where \fIN\fR is a yading@10: number starting from 0 corresponding to the mapped input stream yading@10: generated by the device. yading@10: The first unlabelled output is automatically assigned to the \*(L"out0\*(R" yading@10: label, but all the others need to be specified explicitly. yading@10: .Sp yading@10: If not specified defaults to the filename specified for the input yading@10: device. yading@10: .IP "\fBgraph_file\fR" 4 yading@10: .IX Item "graph_file" yading@10: Set the filename of the filtergraph to be read and sent to the other yading@10: filters. Syntax of the filtergraph is the same as the one specified by yading@10: the option \fIgraph\fR. yading@10: .PP yading@10: \fIExamples\fR yading@10: .IX Subsection "Examples" yading@10: .IP "\(bu" 4 yading@10: Create a color video stream and play it back with \fBffplay\fR: yading@10: .Sp yading@10: .Vb 1 yading@10: \& ffplay \-f lavfi \-graph "color=c=pink [out0]" dummy yading@10: .Ve yading@10: .IP "\(bu" 4 yading@10: As the previous example, but use filename for specifying the graph yading@10: description, and omit the \*(L"out0\*(R" label: yading@10: .Sp yading@10: .Vb 1 yading@10: \& ffplay \-f lavfi color=c=pink yading@10: .Ve yading@10: .IP "\(bu" 4 yading@10: Create three different video test filtered sources and play them: yading@10: .Sp yading@10: .Vb 1 yading@10: \& ffplay \-f lavfi \-graph "testsrc [out0]; testsrc,hflip [out1]; testsrc,negate [out2]" test3 yading@10: .Ve yading@10: .IP "\(bu" 4 yading@10: Read an audio stream from a file using the amovie source and play it yading@10: back with \fBffplay\fR: yading@10: .Sp yading@10: .Vb 1 yading@10: \& ffplay \-f lavfi "amovie=test.wav" yading@10: .Ve yading@10: .IP "\(bu" 4 yading@10: Read an audio stream and a video stream and play it back with yading@10: \&\fBffplay\fR: yading@10: .Sp yading@10: .Vb 1 yading@10: \& ffplay \-f lavfi "movie=test.avi[out0];amovie=test.wav[out1]" yading@10: .Ve yading@10: .SS "libdc1394" yading@10: .IX Subsection "libdc1394" yading@10: \&\s-1IIDC1394\s0 input device, based on libdc1394 and libraw1394. yading@10: .SS "openal" yading@10: .IX Subsection "openal" yading@10: The OpenAL input device provides audio capture on all systems with a yading@10: working OpenAL 1.1 implementation. yading@10: .PP yading@10: To enable this input device during configuration, you need OpenAL yading@10: headers and libraries installed on your system, and need to configure yading@10: FFmpeg with \f(CW\*(C`\-\-enable\-openal\*(C'\fR. yading@10: .PP yading@10: OpenAL headers and libraries should be provided as part of your OpenAL yading@10: implementation, or as an additional download (an \s-1SDK\s0). Depending on your yading@10: installation you may need to specify additional flags via the yading@10: \&\f(CW\*(C`\-\-extra\-cflags\*(C'\fR and \f(CW\*(C`\-\-extra\-ldflags\*(C'\fR for allowing the build yading@10: system to locate the OpenAL headers and libraries. yading@10: .PP yading@10: An incomplete list of OpenAL implementations follows: yading@10: .IP "\fBCreative\fR" 4 yading@10: .IX Item "Creative" yading@10: The official Windows implementation, providing hardware acceleration yading@10: with supported devices and software fallback. yading@10: See <\fBhttp://openal.org/\fR>. yading@10: .IP "\fBOpenAL Soft\fR" 4 yading@10: .IX Item "OpenAL Soft" yading@10: Portable, open source (\s-1LGPL\s0) software implementation. Includes yading@10: backends for the most common sound APIs on the Windows, Linux, yading@10: Solaris, and \s-1BSD\s0 operating systems. yading@10: See <\fBhttp://kcat.strangesoft.net/openal.html\fR>. yading@10: .IP "\fBApple\fR" 4 yading@10: .IX Item "Apple" yading@10: OpenAL is part of Core Audio, the official Mac \s-1OS\s0 X Audio interface. yading@10: See <\fBhttp://developer.apple.com/technologies/mac/audio\-and\-video.html\fR> yading@10: .PP yading@10: This device allows to capture from an audio input device handled yading@10: through OpenAL. yading@10: .PP yading@10: You need to specify the name of the device to capture in the provided yading@10: filename. If the empty string is provided, the device will yading@10: automatically select the default device. You can get the list of the yading@10: supported devices by using the option \fIlist_devices\fR. yading@10: .PP yading@10: \fIOptions\fR yading@10: .IX Subsection "Options" yading@10: .IP "\fBchannels\fR" 4 yading@10: .IX Item "channels" yading@10: Set the number of channels in the captured audio. Only the values yading@10: \&\fB1\fR (monaural) and \fB2\fR (stereo) are currently supported. yading@10: Defaults to \fB2\fR. yading@10: .IP "\fBsample_size\fR" 4 yading@10: .IX Item "sample_size" yading@10: Set the sample size (in bits) of the captured audio. Only the values yading@10: \&\fB8\fR and \fB16\fR are currently supported. Defaults to yading@10: \&\fB16\fR. yading@10: .IP "\fBsample_rate\fR" 4 yading@10: .IX Item "sample_rate" yading@10: Set the sample rate (in Hz) of the captured audio. yading@10: Defaults to \fB44.1k\fR. yading@10: .IP "\fBlist_devices\fR" 4 yading@10: .IX Item "list_devices" yading@10: If set to \fBtrue\fR, print a list of devices and exit. yading@10: Defaults to \fBfalse\fR. yading@10: .PP yading@10: \fIExamples\fR yading@10: .IX Subsection "Examples" yading@10: .PP yading@10: Print the list of OpenAL supported devices and exit: yading@10: .PP yading@10: .Vb 1 yading@10: \& $ ffmpeg \-list_devices true \-f openal \-i dummy out.ogg yading@10: .Ve yading@10: .PP yading@10: Capture from the OpenAL device \fI\s-1DR\-BT101\s0 via PulseAudio\fR: yading@10: .PP yading@10: .Vb 1 yading@10: \& $ ffmpeg \-f openal \-i \*(AqDR\-BT101 via PulseAudio\*(Aq out.ogg yading@10: .Ve yading@10: .PP yading@10: Capture from the default device (note the empty string '' as filename): yading@10: .PP yading@10: .Vb 1 yading@10: \& $ ffmpeg \-f openal \-i \*(Aq\*(Aq out.ogg yading@10: .Ve yading@10: .PP yading@10: Capture from two devices simultaneously, writing to two different files, yading@10: within the same \fBffmpeg\fR command: yading@10: .PP yading@10: .Vb 1 yading@10: \& $ ffmpeg \-f openal \-i \*(AqDR\-BT101 via PulseAudio\*(Aq out1.ogg \-f openal \-i \*(AqALSA Default\*(Aq out2.ogg yading@10: .Ve yading@10: .PP yading@10: Note: not all OpenAL implementations support multiple simultaneous capture \- yading@10: try the latest OpenAL Soft if the above does not work. yading@10: .SS "oss" yading@10: .IX Subsection "oss" yading@10: Open Sound System input device. yading@10: .PP yading@10: The filename to provide to the input device is the device node yading@10: representing the \s-1OSS\s0 input device, and is usually set to yading@10: \&\fI/dev/dsp\fR. yading@10: .PP yading@10: For example to grab from \fI/dev/dsp\fR using \fBffmpeg\fR use the yading@10: command: yading@10: .PP yading@10: .Vb 1 yading@10: \& ffmpeg \-f oss \-i /dev/dsp /tmp/oss.wav yading@10: .Ve yading@10: .PP yading@10: For more information about \s-1OSS\s0 see: yading@10: <\fBhttp://manuals.opensound.com/usersguide/dsp.html\fR> yading@10: .SS "pulse" yading@10: .IX Subsection "pulse" yading@10: pulseaudio input device. yading@10: .PP yading@10: To enable this input device during configuration you need libpulse-simple yading@10: installed in your system. yading@10: .PP yading@10: The filename to provide to the input device is a source device or the yading@10: string \*(L"default\*(R" yading@10: .PP yading@10: To list the pulse source devices and their properties you can invoke yading@10: the command \fBpactl list sources\fR. yading@10: .PP yading@10: .Vb 1 yading@10: \& ffmpeg \-f pulse \-i default /tmp/pulse.wav yading@10: .Ve yading@10: .PP yading@10: \fI\fIserver\fI AVOption\fR yading@10: .IX Subsection "server AVOption" yading@10: .PP yading@10: The syntax is: yading@10: .PP yading@10: .Vb 1 yading@10: \& \-server yading@10: .Ve yading@10: .PP yading@10: Connects to a specific server. yading@10: .PP yading@10: \fI\fIname\fI AVOption\fR yading@10: .IX Subsection "name AVOption" yading@10: .PP yading@10: The syntax is: yading@10: .PP yading@10: .Vb 1 yading@10: \& \-name yading@10: .Ve yading@10: .PP yading@10: Specify the application name pulse will use when showing active clients, yading@10: by default it is the \s-1LIBAVFORMAT_IDENT\s0 string yading@10: .PP yading@10: \fI\fIstream_name\fI AVOption\fR yading@10: .IX Subsection "stream_name AVOption" yading@10: .PP yading@10: The syntax is: yading@10: .PP yading@10: .Vb 1 yading@10: \& \-stream_name yading@10: .Ve yading@10: .PP yading@10: Specify the stream name pulse will use when showing active streams, yading@10: by default it is \*(L"record\*(R" yading@10: .PP yading@10: \fI\fIsample_rate\fI AVOption\fR yading@10: .IX Subsection "sample_rate AVOption" yading@10: .PP yading@10: The syntax is: yading@10: .PP yading@10: .Vb 1 yading@10: \& \-sample_rate yading@10: .Ve yading@10: .PP yading@10: Specify the samplerate in Hz, by default 48kHz is used. yading@10: .PP yading@10: \fI\fIchannels\fI AVOption\fR yading@10: .IX Subsection "channels AVOption" yading@10: .PP yading@10: The syntax is: yading@10: .PP yading@10: .Vb 1 yading@10: \& \-channels yading@10: .Ve yading@10: .PP yading@10: Specify the channels in use, by default 2 (stereo) is set. yading@10: .PP yading@10: \fI\fIframe_size\fI AVOption\fR yading@10: .IX Subsection "frame_size AVOption" yading@10: .PP yading@10: The syntax is: yading@10: .PP yading@10: .Vb 1 yading@10: \& \-frame_size yading@10: .Ve yading@10: .PP yading@10: Specify the number of byte per frame, by default it is set to 1024. yading@10: .PP yading@10: \fI\fIfragment_size\fI AVOption\fR yading@10: .IX Subsection "fragment_size AVOption" yading@10: .PP yading@10: The syntax is: yading@10: .PP yading@10: .Vb 1 yading@10: \& \-fragment_size yading@10: .Ve yading@10: .PP yading@10: Specify the minimal buffering fragment in pulseaudio, it will affect the yading@10: audio latency. By default it is unset. yading@10: .SS "sndio" yading@10: .IX Subsection "sndio" yading@10: sndio input device. yading@10: .PP yading@10: To enable this input device during configuration you need libsndio yading@10: installed on your system. yading@10: .PP yading@10: The filename to provide to the input device is the device node yading@10: representing the sndio input device, and is usually set to yading@10: \&\fI/dev/audio0\fR. yading@10: .PP yading@10: For example to grab from \fI/dev/audio0\fR using \fBffmpeg\fR use the yading@10: command: yading@10: .PP yading@10: .Vb 1 yading@10: \& ffmpeg \-f sndio \-i /dev/audio0 /tmp/oss.wav yading@10: .Ve yading@10: .SS "video4linux2, v4l2" yading@10: .IX Subsection "video4linux2, v4l2" yading@10: Video4Linux2 input video device. yading@10: .PP yading@10: \&\*(L"v4l2\*(R" can be used as alias for \*(L"video4linux2\*(R". yading@10: .PP yading@10: If FFmpeg is built with v4l\-utils support (by using the yading@10: \&\f(CW\*(C`\-\-enable\-libv4l2\*(C'\fR configure option), the device will always rely yading@10: on libv4l2. yading@10: .PP yading@10: The name of the device to grab is a file device node, usually Linux yading@10: systems tend to automatically create such nodes when the device yading@10: (e.g. an \s-1USB\s0 webcam) is plugged into the system, and has a name of the yading@10: kind \fI/dev/video\fIN\fI\fR, where \fIN\fR is a number associated to yading@10: the device. yading@10: .PP yading@10: Video4Linux2 devices usually support a limited set of yading@10: \&\fIwidth\fRx\fIheight\fR sizes and frame rates. You can check which are yading@10: supported using \fB\-list_formats all\fR for Video4Linux2 devices. yading@10: Some devices, like \s-1TV\s0 cards, support one or more standards. It is possible yading@10: to list all the supported standards using \fB\-list_standards all\fR. yading@10: .PP yading@10: The time base for the timestamps is 1 microsecond. Depending on the kernel yading@10: version and configuration, the timestamps may be derived from the real time yading@10: clock (origin at the Unix Epoch) or the monotonic clock (origin usually at yading@10: boot time, unaffected by \s-1NTP\s0 or manual changes to the clock). The yading@10: \&\fB\-timestamps abs\fR or \fB\-ts abs\fR option can be used to force yading@10: conversion into the real time clock. yading@10: .PP yading@10: Some usage examples of the video4linux2 device with \fBffmpeg\fR yading@10: and \fBffplay\fR: yading@10: .IP "\(bu" 4 yading@10: Grab and show the input of a video4linux2 device: yading@10: .Sp yading@10: .Vb 1 yading@10: \& ffplay \-f video4linux2 \-framerate 30 \-video_size hd720 /dev/video0 yading@10: .Ve yading@10: .IP "\(bu" 4 yading@10: Grab and record the input of a video4linux2 device, leave the yading@10: frame rate and size as previously set: yading@10: .Sp yading@10: .Vb 1 yading@10: \& ffmpeg \-f video4linux2 \-input_format mjpeg \-i /dev/video0 out.mpeg yading@10: .Ve yading@10: .PP yading@10: For more information about Video4Linux, check <\fBhttp://linuxtv.org/\fR>. yading@10: .PP yading@10: \fIOptions\fR yading@10: .IX Subsection "Options" yading@10: .IP "\fBstandard\fR" 4 yading@10: .IX Item "standard" yading@10: Set the standard. Must be the name of a supported standard. To get a yading@10: list of the supported standards, use the \fBlist_standards\fR yading@10: option. yading@10: .IP "\fBchannel\fR" 4 yading@10: .IX Item "channel" yading@10: Set the input channel number. Default to \-1, which means using the yading@10: previously selected channel. yading@10: .IP "\fBvideo_size\fR" 4 yading@10: .IX Item "video_size" yading@10: Set the video frame size. The argument must be a string in the form yading@10: \&\fI\s-1WIDTH\s0\fRx\fI\s-1HEIGHT\s0\fR or a valid size abbreviation. yading@10: .IP "\fBpixel_format\fR" 4 yading@10: .IX Item "pixel_format" yading@10: Select the pixel format (only valid for raw video input). yading@10: .IP "\fBinput_format\fR" 4 yading@10: .IX Item "input_format" yading@10: Set the preferred pixel format (for raw video) or a codec name. yading@10: This option allows to select the input format, when several are yading@10: available. yading@10: .IP "\fBframerate\fR" 4 yading@10: .IX Item "framerate" yading@10: Set the preferred video frame rate. yading@10: .IP "\fBlist_formats\fR" 4 yading@10: .IX Item "list_formats" yading@10: List available formats (supported pixel formats, codecs, and frame yading@10: sizes) and exit. yading@10: .Sp yading@10: Available values are: yading@10: .RS 4 yading@10: .IP "\fBall\fR" 4 yading@10: .IX Item "all" yading@10: Show all available (compressed and non-compressed) formats. yading@10: .IP "\fBraw\fR" 4 yading@10: .IX Item "raw" yading@10: Show only raw video (non-compressed) formats. yading@10: .IP "\fBcompressed\fR" 4 yading@10: .IX Item "compressed" yading@10: Show only compressed formats. yading@10: .RE yading@10: .RS 4 yading@10: .RE yading@10: .IP "\fBlist_standards\fR" 4 yading@10: .IX Item "list_standards" yading@10: List supported standards and exit. yading@10: .Sp yading@10: Available values are: yading@10: .RS 4 yading@10: .IP "\fBall\fR" 4 yading@10: .IX Item "all" yading@10: Show all supported standards. yading@10: .RE yading@10: .RS 4 yading@10: .RE yading@10: .IP "\fBtimestamps, ts\fR" 4 yading@10: .IX Item "timestamps, ts" yading@10: Set type of timestamps for grabbed frames. yading@10: .Sp yading@10: Available values are: yading@10: .RS 4 yading@10: .IP "\fBdefault\fR" 4 yading@10: .IX Item "default" yading@10: Use timestamps from the kernel. yading@10: .IP "\fBabs\fR" 4 yading@10: .IX Item "abs" yading@10: Use absolute timestamps (wall clock). yading@10: .IP "\fBmono2abs\fR" 4 yading@10: .IX Item "mono2abs" yading@10: Force conversion from monotonic to absolute timestamps. yading@10: .RE yading@10: .RS 4 yading@10: .Sp yading@10: Default value is \f(CW\*(C`default\*(C'\fR. yading@10: .RE yading@10: .SS "vfwcap" yading@10: .IX Subsection "vfwcap" yading@10: VfW (Video for Windows) capture input device. yading@10: .PP yading@10: The filename passed as input is the capture driver number, ranging from yading@10: 0 to 9. You may use \*(L"list\*(R" as filename to print a list of drivers. Any yading@10: other filename will be interpreted as device number 0. yading@10: .SS "x11grab" yading@10: .IX Subsection "x11grab" yading@10: X11 video input device. yading@10: .PP yading@10: This device allows to capture a region of an X11 display. yading@10: .PP yading@10: The filename passed as input has the syntax: yading@10: .PP yading@10: .Vb 1 yading@10: \& []:.[+,] yading@10: .Ve yading@10: .PP yading@10: \&\fIhostname\fR:\fIdisplay_number\fR.\fIscreen_number\fR specifies the yading@10: X11 display name of the screen to grab from. \fIhostname\fR can be yading@10: omitted, and defaults to \*(L"localhost\*(R". The environment variable yading@10: \&\fB\s-1DISPLAY\s0\fR contains the default display name. yading@10: .PP yading@10: \&\fIx_offset\fR and \fIy_offset\fR specify the offsets of the grabbed yading@10: area with respect to the top-left border of the X11 screen. They yading@10: default to 0. yading@10: .PP yading@10: Check the X11 documentation (e.g. man X) for more detailed information. yading@10: .PP yading@10: Use the \fBdpyinfo\fR program for getting basic information about the yading@10: properties of your X11 display (e.g. grep for \*(L"name\*(R" or \*(L"dimensions\*(R"). yading@10: .PP yading@10: For example to grab from \fI:0.0\fR using \fBffmpeg\fR: yading@10: .PP yading@10: .Vb 1 yading@10: \& ffmpeg \-f x11grab \-r 25 \-s cif \-i :0.0 out.mpg yading@10: .Ve yading@10: .PP yading@10: Grab at position \f(CW\*(C`10,20\*(C'\fR: yading@10: .PP yading@10: .Vb 1 yading@10: \& ffmpeg \-f x11grab \-r 25 \-s cif \-i :0.0+10,20 out.mpg yading@10: .Ve yading@10: .PP yading@10: \fIOptions\fR yading@10: .IX Subsection "Options" yading@10: .IP "\fBdraw_mouse\fR" 4 yading@10: .IX Item "draw_mouse" yading@10: Specify whether to draw the mouse pointer. A value of \f(CW0\fR specify yading@10: not to draw the pointer. Default value is \f(CW1\fR. yading@10: .IP "\fBfollow_mouse\fR" 4 yading@10: .IX Item "follow_mouse" yading@10: Make the grabbed area follow the mouse. The argument can be yading@10: \&\f(CW\*(C`centered\*(C'\fR or a number of pixels \fI\s-1PIXELS\s0\fR. yading@10: .Sp yading@10: When it is specified with \*(L"centered\*(R", the grabbing region follows the mouse yading@10: pointer and keeps the pointer at the center of region; otherwise, the region yading@10: follows only when the mouse pointer reaches within \fI\s-1PIXELS\s0\fR (greater than yading@10: zero) to the edge of region. yading@10: .Sp yading@10: For example: yading@10: .Sp yading@10: .Vb 1 yading@10: \& ffmpeg \-f x11grab \-follow_mouse centered \-r 25 \-s cif \-i :0.0 out.mpg yading@10: .Ve yading@10: .Sp yading@10: To follow only when the mouse pointer reaches within 100 pixels to edge: yading@10: .Sp yading@10: .Vb 1 yading@10: \& ffmpeg \-f x11grab \-follow_mouse 100 \-r 25 \-s cif \-i :0.0 out.mpg yading@10: .Ve yading@10: .IP "\fBframerate\fR" 4 yading@10: .IX Item "framerate" yading@10: Set the grabbing frame rate. Default value is \f(CW\*(C`ntsc\*(C'\fR, yading@10: corresponding to a frame rate of \f(CW\*(C`30000/1001\*(C'\fR. yading@10: .IP "\fBshow_region\fR" 4 yading@10: .IX Item "show_region" yading@10: Show grabbed region on screen. yading@10: .Sp yading@10: If \fIshow_region\fR is specified with \f(CW1\fR, then the grabbing yading@10: region will be indicated on screen. With this option, it is easy to yading@10: know what is being grabbed if only a portion of the screen is grabbed. yading@10: .Sp yading@10: For example: yading@10: .Sp yading@10: .Vb 1 yading@10: \& ffmpeg \-f x11grab \-show_region 1 \-r 25 \-s cif \-i :0.0+10,20 out.mpg yading@10: .Ve yading@10: .Sp yading@10: With \fIfollow_mouse\fR: yading@10: .Sp yading@10: .Vb 1 yading@10: \& ffmpeg \-f x11grab \-follow_mouse centered \-show_region 1 \-r 25 \-s cif \-i :0.0 out.mpg yading@10: .Ve yading@10: .IP "\fBvideo_size\fR" 4 yading@10: .IX Item "video_size" yading@10: Set the video frame size. Default value is \f(CW\*(C`vga\*(C'\fR. yading@10: .SH "OUTPUT DEVICES" yading@10: .IX Header "OUTPUT DEVICES" yading@10: Output devices are configured elements in FFmpeg which allow to write yading@10: multimedia data to an output device attached to your system. yading@10: .PP yading@10: When you configure your FFmpeg build, all the supported output devices yading@10: are enabled by default. You can list all available ones using the yading@10: configure option \*(L"\-\-list\-outdevs\*(R". yading@10: .PP yading@10: You can disable all the output devices using the configure option yading@10: \&\*(L"\-\-disable\-outdevs\*(R", and selectively enable an output device using the yading@10: option "\-\-enable\-outdev=\fI\s-1OUTDEV\s0\fR\*(L", or you can disable a particular yading@10: input device using the option \*(R"\-\-disable\-outdev=\fI\s-1OUTDEV\s0\fR". yading@10: .PP yading@10: The option \*(L"\-formats\*(R" of the ff* tools will display the list of yading@10: enabled output devices (amongst the muxers). yading@10: .PP yading@10: A description of the currently available output devices follows. yading@10: .SS "alsa" yading@10: .IX Subsection "alsa" yading@10: \&\s-1ALSA\s0 (Advanced Linux Sound Architecture) output device. yading@10: .SS "caca" yading@10: .IX Subsection "caca" yading@10: \&\s-1CACA\s0 output device. yading@10: .PP yading@10: This output devices allows to show a video stream in \s-1CACA\s0 window. yading@10: Only one \s-1CACA\s0 window is allowed per application, so you can yading@10: have only one instance of this output device in an application. yading@10: .PP yading@10: To enable this output device you need to configure FFmpeg with yading@10: \&\f(CW\*(C`\-\-enable\-libcaca\*(C'\fR. yading@10: libcaca is a graphics library that outputs text instead of pixels. yading@10: .PP yading@10: For more information about libcaca, check: yading@10: <\fBhttp://caca.zoy.org/wiki/libcaca\fR> yading@10: .PP yading@10: \fIOptions\fR yading@10: .IX Subsection "Options" yading@10: .IP "\fBwindow_title\fR" 4 yading@10: .IX Item "window_title" yading@10: Set the \s-1CACA\s0 window title, if not specified default to the filename yading@10: specified for the output device. yading@10: .IP "\fBwindow_size\fR" 4 yading@10: .IX Item "window_size" yading@10: Set the \s-1CACA\s0 window size, can be a string of the form yading@10: \&\fIwidth\fRx\fIheight\fR or a video size abbreviation. yading@10: If not specified it defaults to the size of the input video. yading@10: .IP "\fBdriver\fR" 4 yading@10: .IX Item "driver" yading@10: Set display driver. yading@10: .IP "\fBalgorithm\fR" 4 yading@10: .IX Item "algorithm" yading@10: Set dithering algorithm. Dithering is necessary yading@10: because the picture being rendered has usually far more colours than yading@10: the available palette. yading@10: The accepted values are listed with \f(CW\*(C`\-list_dither algorithms\*(C'\fR. yading@10: .IP "\fBantialias\fR" 4 yading@10: .IX Item "antialias" yading@10: Set antialias method. Antialiasing smoothens the rendered yading@10: image and avoids the commonly seen staircase effect. yading@10: The accepted values are listed with \f(CW\*(C`\-list_dither antialiases\*(C'\fR. yading@10: .IP "\fBcharset\fR" 4 yading@10: .IX Item "charset" yading@10: Set which characters are going to be used when rendering text. yading@10: The accepted values are listed with \f(CW\*(C`\-list_dither charsets\*(C'\fR. yading@10: .IP "\fBcolor\fR" 4 yading@10: .IX Item "color" yading@10: Set color to be used when rendering text. yading@10: The accepted values are listed with \f(CW\*(C`\-list_dither colors\*(C'\fR. yading@10: .IP "\fBlist_drivers\fR" 4 yading@10: .IX Item "list_drivers" yading@10: If set to \fBtrue\fR, print a list of available drivers and exit. yading@10: .IP "\fBlist_dither\fR" 4 yading@10: .IX Item "list_dither" yading@10: List available dither options related to the argument. yading@10: The argument must be one of \f(CW\*(C`algorithms\*(C'\fR, \f(CW\*(C`antialiases\*(C'\fR, yading@10: \&\f(CW\*(C`charsets\*(C'\fR, \f(CW\*(C`colors\*(C'\fR. yading@10: .PP yading@10: \fIExamples\fR yading@10: .IX Subsection "Examples" yading@10: .IP "\(bu" 4 yading@10: The following command shows the \fBffmpeg\fR output is an yading@10: \&\s-1CACA\s0 window, forcing its size to 80x25: yading@10: .Sp yading@10: .Vb 1 yading@10: \& ffmpeg \-i INPUT \-vcodec rawvideo \-pix_fmt rgb24 \-window_size 80x25 \-f caca \- yading@10: .Ve yading@10: .IP "\(bu" 4 yading@10: Show the list of available drivers and exit: yading@10: .Sp yading@10: .Vb 1 yading@10: \& ffmpeg \-i INPUT \-pix_fmt rgb24 \-f caca \-list_drivers true \- yading@10: .Ve yading@10: .IP "\(bu" 4 yading@10: Show the list of available dither colors and exit: yading@10: .Sp yading@10: .Vb 1 yading@10: \& ffmpeg \-i INPUT \-pix_fmt rgb24 \-f caca \-list_dither colors \- yading@10: .Ve yading@10: .SS "oss" yading@10: .IX Subsection "oss" yading@10: \&\s-1OSS\s0 (Open Sound System) output device. yading@10: .SS "sdl" yading@10: .IX Subsection "sdl" yading@10: \&\s-1SDL\s0 (Simple DirectMedia Layer) output device. yading@10: .PP yading@10: This output devices allows to show a video stream in an \s-1SDL\s0 yading@10: window. Only one \s-1SDL\s0 window is allowed per application, so you can yading@10: have only one instance of this output device in an application. yading@10: .PP yading@10: To enable this output device you need libsdl installed on your system yading@10: when configuring your build. yading@10: .PP yading@10: For more information about \s-1SDL\s0, check: yading@10: <\fBhttp://www.libsdl.org/\fR> yading@10: .PP yading@10: \fIOptions\fR yading@10: .IX Subsection "Options" yading@10: .IP "\fBwindow_title\fR" 4 yading@10: .IX Item "window_title" yading@10: Set the \s-1SDL\s0 window title, if not specified default to the filename yading@10: specified for the output device. yading@10: .IP "\fBicon_title\fR" 4 yading@10: .IX Item "icon_title" yading@10: Set the name of the iconified \s-1SDL\s0 window, if not specified it is set yading@10: to the same value of \fIwindow_title\fR. yading@10: .IP "\fBwindow_size\fR" 4 yading@10: .IX Item "window_size" yading@10: Set the \s-1SDL\s0 window size, can be a string of the form yading@10: \&\fIwidth\fRx\fIheight\fR or a video size abbreviation. yading@10: If not specified it defaults to the size of the input video, yading@10: downscaled according to the aspect ratio. yading@10: .PP yading@10: \fIExamples\fR yading@10: .IX Subsection "Examples" yading@10: .PP yading@10: The following command shows the \fBffmpeg\fR output is an yading@10: \&\s-1SDL\s0 window, forcing its size to the qcif format: yading@10: .PP yading@10: .Vb 1 yading@10: \& ffmpeg \-i INPUT \-vcodec rawvideo \-pix_fmt yuv420p \-window_size qcif \-f sdl "SDL output" yading@10: .Ve yading@10: .SS "sndio" yading@10: .IX Subsection "sndio" yading@10: sndio audio output device. yading@10: .SH "SEE ALSO" yading@10: .IX Header "SEE ALSO" yading@10: \&\fIffmpeg\fR\|(1), \fIffplay\fR\|(1), \fIffprobe\fR\|(1), \fIffserver\fR\|(1), \fIlibavdevice\fR\|(3) yading@10: .SH "AUTHORS" yading@10: .IX Header "AUTHORS" yading@10: The FFmpeg developers. yading@10: .PP yading@10: For details about the authorship, see the Git history of the project yading@10: (git://source.ffmpeg.org/ffmpeg), e.g. by typing the command yading@10: \&\fBgit log\fR in the FFmpeg source directory, or browsing the yading@10: online repository at <\fBhttp://source.ffmpeg.org\fR>. yading@10: .PP yading@10: Maintainers for the specific components are listed in the file yading@10: \&\fI\s-1MAINTAINERS\s0\fR in the source code tree.