New file |
| | |
| | | .\" 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. |