1@chapter Input Devices 2@c man begin INPUT DEVICES 3 4Input devices are configured elements in FFmpeg which enable accessing 5the data coming from a multimedia device attached to your system. 6 7When you configure your FFmpeg build, all the supported input devices 8are enabled by default. You can list all available ones using the 9configure option "--list-indevs". 10 11You can disable all the input devices using the configure option 12"--disable-indevs", and selectively enable an input device using the 13option "--enable-indev=@var{INDEV}", or you can disable a particular 14input device using the option "--disable-indev=@var{INDEV}". 15 16The option "-devices" of the ff* tools will display the list of 17supported input devices. 18 19A description of the currently available input devices follows. 20 21@section alsa 22 23ALSA (Advanced Linux Sound Architecture) input device. 24 25To enable this input device during configuration you need libasound 26installed on your system. 27 28This device allows capturing from an ALSA device. The name of the 29device to capture has to be an ALSA card identifier. 30 31An ALSA identifier has the syntax: 32@example 33hw:@var{CARD}[,@var{DEV}[,@var{SUBDEV}]] 34@end example 35 36where the @var{DEV} and @var{SUBDEV} components are optional. 37 38The three arguments (in order: @var{CARD},@var{DEV},@var{SUBDEV}) 39specify card number or identifier, device number and subdevice number 40(-1 means any). 41 42To see the list of cards currently recognized by your system check the 43files @file{/proc/asound/cards} and @file{/proc/asound/devices}. 44 45For example to capture with @command{ffmpeg} from an ALSA device with 46card id 0, you may run the command: 47@example 48ffmpeg -f alsa -i hw:0 alsaout.wav 49@end example 50 51For more information see: 52@url{http://www.alsa-project.org/alsa-doc/alsa-lib/pcm.html} 53 54@subsection Options 55 56@table @option 57 58@item sample_rate 59Set the sample rate in Hz. Default is 48000. 60 61@item channels 62Set the number of channels. Default is 2. 63 64@end table 65 66@section android_camera 67 68Android camera input device. 69 70This input devices uses the Android Camera2 NDK API which is 71available on devices with API level 24+. The availability of 72android_camera is autodetected during configuration. 73 74This device allows capturing from all cameras on an Android device, 75which are integrated into the Camera2 NDK API. 76 77The available cameras are enumerated internally and can be selected 78with the @var{camera_index} parameter. The input file string is 79discarded. 80 81Generally the back facing camera has index 0 while the front facing 82camera has index 1. 83 84@subsection Options 85 86@table @option 87 88@item video_size 89Set the video size given as a string such as 640x480 or hd720. 90Falls back to the first available configuration reported by 91Android if requested video size is not available or by default. 92 93@item framerate 94Set the video framerate. 95Falls back to the first available configuration reported by 96Android if requested framerate is not available or by default (-1). 97 98@item camera_index 99Set the index of the camera to use. Default is 0. 100 101@item input_queue_size 102Set the maximum number of frames to buffer. Default is 5. 103 104@end table 105 106@section avfoundation 107 108AVFoundation input device. 109 110AVFoundation is the currently recommended framework by Apple for streamgrabbing on OSX >= 10.7 as well as on iOS. 111 112The input filename has to be given in the following syntax: 113@example 114-i "[[VIDEO]:[AUDIO]]" 115@end example 116The first entry selects the video input while the latter selects the audio input. 117The stream has to be specified by the device name or the device index as shown by the device list. 118Alternatively, the video and/or audio input device can be chosen by index using the 119@option{ 120 -video_device_index <INDEX> 121} 122and/or 123@option{ 124 -audio_device_index <INDEX> 125} 126, overriding any 127device name or index given in the input filename. 128 129All available devices can be enumerated by using @option{-list_devices true}, listing 130all device names and corresponding indices. 131 132There are two device name aliases: 133@table @code 134 135@item default 136Select the AVFoundation default device of the corresponding type. 137 138@item none 139Do not record the corresponding media type. 140This is equivalent to specifying an empty device name or index. 141 142@end table 143 144@subsection Options 145 146AVFoundation supports the following options: 147 148@table @option 149 150@item -list_devices <TRUE|FALSE> 151If set to true, a list of all available input devices is given showing all 152device names and indices. 153 154@item -video_device_index <INDEX> 155Specify the video device by its index. Overrides anything given in the input filename. 156 157@item -audio_device_index <INDEX> 158Specify the audio device by its index. Overrides anything given in the input filename. 159 160@item -pixel_format <FORMAT> 161Request the video device to use a specific pixel format. 162If the specified format is not supported, a list of available formats is given 163and the first one in this list is used instead. Available pixel formats are: 164@code{monob, rgb555be, rgb555le, rgb565be, rgb565le, rgb24, bgr24, 0rgb, bgr0, 0bgr, rgb0, 165 bgr48be, uyvy422, yuva444p, yuva444p16le, yuv444p, yuv422p16, yuv422p10, yuv444p10, 166 yuv420p, nv12, yuyv422, gray} 167 168@item -framerate 169Set the grabbing frame rate. Default is @code{ntsc}, corresponding to a 170frame rate of @code{30000/1001}. 171 172@item -video_size 173Set the video frame size. 174 175@item -capture_cursor 176Capture the mouse pointer. Default is 0. 177 178@item -capture_mouse_clicks 179Capture the screen mouse clicks. Default is 0. 180 181@item -capture_raw_data 182Capture the raw device data. Default is 0. 183Using this option may result in receiving the underlying data delivered to the AVFoundation framework. E.g. for muxed devices that sends raw DV data to the framework (like tape-based camcorders), setting this option to false results in extracted video frames captured in the designated pixel format only. Setting this option to true results in receiving the raw DV stream untouched. 184@end table 185 186@subsection Examples 187 188@itemize 189 190@item 191Print the list of AVFoundation supported devices and exit: 192@example 193$ ffmpeg -f avfoundation -list_devices true -i "" 194@end example 195 196@item 197Record video from video device 0 and audio from audio device 0 into out.avi: 198@example 199$ ffmpeg -f avfoundation -i "0:0" out.avi 200@end example 201 202@item 203Record video from video device 2 and audio from audio device 1 into out.avi: 204@example 205$ ffmpeg -f avfoundation -video_device_index 2 -i ":1" out.avi 206@end example 207 208@item 209Record video from the system default video device using the pixel format bgr0 and do not record any audio into out.avi: 210@example 211$ ffmpeg -f avfoundation -pixel_format bgr0 -i "default:none" out.avi 212@end example 213 214@item 215Record raw DV data from a suitable input device and write the output into out.dv: 216@example 217$ ffmpeg -f avfoundation -capture_raw_data true -i "zr100:none" out.dv 218@end example 219 220 221@end itemize 222 223@section bktr 224 225BSD video input device. 226 227@subsection Options 228 229@table @option 230 231@item framerate 232Set the frame rate. 233 234@item video_size 235Set the video frame size. Default is @code{vga}. 236 237@item standard 238 239Available values are: 240@table @samp 241@item pal 242 243@item ntsc 244 245@item secam 246 247@item paln 248 249@item palm 250 251@item ntscj 252 253@end table 254 255@end table 256 257@section decklink 258 259The decklink input device provides capture capabilities for Blackmagic 260DeckLink devices. 261 262To enable this input device, you need the Blackmagic DeckLink SDK and you 263need to configure with the appropriate @code{--extra-cflags} 264and @code{--extra-ldflags}. 265On Windows, you need to run the IDL files through @command{widl}. 266 267DeckLink is very picky about the formats it supports. Pixel format of the 268input can be set with @option{raw_format}. 269Framerate and video size must be determined for your device with 270@command{-list_formats 1}. Audio sample rate is always 48 kHz and the number 271of channels can be 2, 8 or 16. Note that all audio channels are bundled in one single 272audio track. 273 274@subsection Options 275 276@table @option 277 278@item list_devices 279If set to @option{true}, print a list of devices and exit. 280Defaults to @option{false}. This option is deprecated, please use the 281@code{-sources} option of ffmpeg to list the available input devices. 282 283@item list_formats 284If set to @option{true}, print a list of supported formats and exit. 285Defaults to @option{false}. 286 287@item format_code <FourCC> 288This sets the input video format to the format given by the FourCC. To see 289the supported values of your device(s) use @option{list_formats}. 290Note that there is a FourCC @option{'pal '} that can also be used 291as @option{pal} (3 letters). 292Default behavior is autodetection of the input video format, if the hardware 293supports it. 294 295@item raw_format 296Set the pixel format of the captured video. 297Available values are: 298@table @samp 299@item auto 300 301This is the default which means 8-bit YUV 422 or 8-bit ARGB if format 302autodetection is used, 8-bit YUV 422 otherwise. 303 304@item uyvy422 305 3068-bit YUV 422. 307 308@item yuv422p10 309 31010-bit YUV 422. 311 312@item argb 313 3148-bit RGB. 315 316@item bgra 317 3188-bit RGB. 319 320@item rgb10 321 32210-bit RGB. 323 324@end table 325 326@item teletext_lines 327If set to nonzero, an additional teletext stream will be captured from the 328vertical ancillary data. Both SD PAL (576i) and HD (1080i or 1080p) 329sources are supported. In case of HD sources, OP47 packets are decoded. 330 331This option is a bitmask of the SD PAL VBI lines captured, specifically lines 6 332to 22, and lines 318 to 335. Line 6 is the LSB in the mask. Selected lines 333which do not contain teletext information will be ignored. You can use the 334special @option{all} constant to select all possible lines, or 335@option{standard} to skip lines 6, 318 and 319, which are not compatible with 336all receivers. 337 338For SD sources, ffmpeg needs to be compiled with @code{--enable-libzvbi}. For 339HD sources, on older (pre-4K) DeckLink card models you have to capture in 10 340bit mode. 341 342@item channels 343Defines number of audio channels to capture. Must be @samp{2}, @samp{8} or @samp{16}. 344Defaults to @samp{2}. 345 346@item duplex_mode 347Sets the decklink device duplex mode. Must be @samp{unset}, @samp{half} or @samp{full}. 348Defaults to @samp{unset}. 349 350@item timecode_format 351Timecode type to include in the frame and video stream metadata. Must be 352@samp{none}, @samp{rp188vitc}, @samp{rp188vitc2}, @samp{rp188ltc}, 353@samp{rp188hfr}, @samp{rp188any}, @samp{vitc}, @samp{vitc2}, or @samp{serial}. 354Defaults to @samp{none} (not included). 355 356In order to properly support 50/60 fps timecodes, the ordering of the queried 357timecode types for @samp{rp188any} is HFR, VITC1, VITC2 and LTC for >30 fps 358content. Note that this is slightly different to the ordering used by the 359DeckLink API, which is HFR, VITC1, LTC, VITC2. 360 361@item video_input 362Sets the video input source. Must be @samp{unset}, @samp{sdi}, @samp{hdmi}, 363@samp{optical_sdi}, @samp{component}, @samp{composite} or @samp{s_video}. 364Defaults to @samp{unset}. 365 366@item audio_input 367Sets the audio input source. Must be @samp{unset}, @samp{embedded}, 368@samp{aes_ebu}, @samp{analog}, @samp{analog_xlr}, @samp{analog_rca} or 369@samp{microphone}. Defaults to @samp{unset}. 370 371@item video_pts 372Sets the video packet timestamp source. Must be @samp{video}, @samp{audio}, 373@samp{reference}, @samp{wallclock} or @samp{abs_wallclock}. 374Defaults to @samp{video}. 375 376@item audio_pts 377Sets the audio packet timestamp source. Must be @samp{video}, @samp{audio}, 378@samp{reference}, @samp{wallclock} or @samp{abs_wallclock}. 379Defaults to @samp{audio}. 380 381@item draw_bars 382If set to @samp{true}, color bars are drawn in the event of a signal loss. 383Defaults to @samp{true}. 384 385@item queue_size 386Sets maximum input buffer size in bytes. If the buffering reaches this value, 387incoming frames will be dropped. 388Defaults to @samp{1073741824}. 389 390@item audio_depth 391Sets the audio sample bit depth. Must be @samp{16} or @samp{32}. 392Defaults to @samp{16}. 393 394@item decklink_copyts 395If set to @option{true}, timestamps are forwarded as they are without removing 396the initial offset. 397Defaults to @option{false}. 398 399@item timestamp_align 400Capture start time alignment in seconds. If set to nonzero, input frames are 401dropped till the system timestamp aligns with configured value. 402Alignment difference of up to one frame duration is tolerated. 403This is useful for maintaining input synchronization across N different 404hardware devices deployed for 'N-way' redundancy. The system time of different 405hardware devices should be synchronized with protocols such as NTP or PTP, 406before using this option. 407Note that this method is not foolproof. In some border cases input 408synchronization may not happen due to thread scheduling jitters in the OS. 409Either sync could go wrong by 1 frame or in a rarer case 410@option{timestamp_align} seconds. 411Defaults to @samp{0}. 412 413@item wait_for_tc (@emph{bool}) 414Drop frames till a frame with timecode is received. Sometimes serial timecode 415isn't received with the first input frame. If that happens, the stored stream 416timecode will be inaccurate. If this option is set to @option{true}, input frames 417are dropped till a frame with timecode is received. 418Option @var{timecode_format} must be specified. 419Defaults to @option{false}. 420 421@item enable_klv(@emph{bool}) 422If set to @option{true}, extracts KLV data from VANC and outputs KLV packets. 423KLV VANC packets are joined based on MID and PSC fields and aggregated into 424one KLV packet. 425Defaults to @option{false}. 426 427@end table 428 429@subsection Examples 430 431@itemize 432 433@item 434List input devices: 435@example 436ffmpeg -sources decklink 437@end example 438 439@item 440List supported formats: 441@example 442ffmpeg -f decklink -list_formats 1 -i 'Intensity Pro' 443@end example 444 445@item 446Capture video clip at 1080i50: 447@example 448ffmpeg -format_code Hi50 -f decklink -i 'Intensity Pro' -c:a copy -c:v copy output.avi 449@end example 450 451@item 452Capture video clip at 1080i50 10 bit: 453@example 454ffmpeg -raw_format yuv422p10 -format_code Hi50 -f decklink -i 'UltraStudio Mini Recorder' -c:a copy -c:v copy output.avi 455@end example 456 457@item 458Capture video clip at 1080i50 with 16 audio channels: 459@example 460ffmpeg -channels 16 -format_code Hi50 -f decklink -i 'UltraStudio Mini Recorder' -c:a copy -c:v copy output.avi 461@end example 462 463@end itemize 464 465@section dshow 466 467Windows DirectShow input device. 468 469DirectShow support is enabled when FFmpeg is built with the mingw-w64 project. 470Currently only audio and video devices are supported. 471 472Multiple devices may be opened as separate inputs, but they may also be 473opened on the same input, which should improve synchronism between them. 474 475The input name should be in the format: 476 477@example 478@var{TYPE}=@var{NAME}[:@var{TYPE}=@var{NAME}] 479@end example 480 481where @var{TYPE} can be either @var{audio} or @var{video}, 482and @var{NAME} is the device's name or alternative name.. 483 484@subsection Options 485 486If no options are specified, the device's defaults are used. 487If the device does not support the requested options, it will 488fail to open. 489 490@table @option 491 492@item video_size 493Set the video size in the captured video. 494 495@item framerate 496Set the frame rate in the captured video. 497 498@item sample_rate 499Set the sample rate (in Hz) of the captured audio. 500 501@item sample_size 502Set the sample size (in bits) of the captured audio. 503 504@item channels 505Set the number of channels in the captured audio. 506 507@item list_devices 508If set to @option{true}, print a list of devices and exit. 509 510@item list_options 511If set to @option{true}, print a list of selected device's options 512and exit. 513 514@item video_device_number 515Set video device number for devices with the same name (starts at 0, 516defaults to 0). 517 518@item audio_device_number 519Set audio device number for devices with the same name (starts at 0, 520defaults to 0). 521 522@item pixel_format 523Select pixel format to be used by DirectShow. This may only be set when 524the video codec is not set or set to rawvideo. 525 526@item audio_buffer_size 527Set audio device buffer size in milliseconds (which can directly 528impact latency, depending on the device). 529Defaults to using the audio device's 530default buffer size (typically some multiple of 500ms). 531Setting this value too low can degrade performance. 532See also 533@url{http://msdn.microsoft.com/en-us/library/windows/desktop/dd377582(v=vs.85).aspx} 534 535@item video_pin_name 536Select video capture pin to use by name or alternative name. 537 538@item audio_pin_name 539Select audio capture pin to use by name or alternative name. 540 541@item crossbar_video_input_pin_number 542Select video input pin number for crossbar device. This will be 543routed to the crossbar device's Video Decoder output pin. 544Note that changing this value can affect future invocations 545(sets a new default) until system reboot occurs. 546 547@item crossbar_audio_input_pin_number 548Select audio input pin number for crossbar device. This will be 549routed to the crossbar device's Audio Decoder output pin. 550Note that changing this value can affect future invocations 551(sets a new default) until system reboot occurs. 552 553@item show_video_device_dialog 554If set to @option{true}, before capture starts, popup a display dialog 555to the end user, allowing them to change video filter properties 556and configurations manually. 557Note that for crossbar devices, adjusting values in this dialog 558may be needed at times to toggle between PAL (25 fps) and NTSC (29.97) 559input frame rates, sizes, interlacing, etc. Changing these values can 560enable different scan rates/frame rates and avoiding green bars at 561the bottom, flickering scan lines, etc. 562Note that with some devices, changing these properties can also affect future 563invocations (sets new defaults) until system reboot occurs. 564 565@item show_audio_device_dialog 566If set to @option{true}, before capture starts, popup a display dialog 567to the end user, allowing them to change audio filter properties 568and configurations manually. 569 570@item show_video_crossbar_connection_dialog 571If set to @option{true}, before capture starts, popup a display 572dialog to the end user, allowing them to manually 573modify crossbar pin routings, when it opens a video device. 574 575@item show_audio_crossbar_connection_dialog 576If set to @option{true}, before capture starts, popup a display 577dialog to the end user, allowing them to manually 578modify crossbar pin routings, when it opens an audio device. 579 580@item show_analog_tv_tuner_dialog 581If set to @option{true}, before capture starts, popup a display 582dialog to the end user, allowing them to manually 583modify TV channels and frequencies. 584 585@item show_analog_tv_tuner_audio_dialog 586If set to @option{true}, before capture starts, popup a display 587dialog to the end user, allowing them to manually 588modify TV audio (like mono vs. stereo, Language A,B or C). 589 590@item audio_device_load 591Load an audio capture filter device from file instead of searching 592it by name. It may load additional parameters too, if the filter 593supports the serialization of its properties to. 594To use this an audio capture source has to be specified, but it can 595be anything even fake one. 596 597@item audio_device_save 598Save the currently used audio capture filter device and its 599parameters (if the filter supports it) to a file. 600If a file with the same name exists it will be overwritten. 601 602@item video_device_load 603Load a video capture filter device from file instead of searching 604it by name. It may load additional parameters too, if the filter 605supports the serialization of its properties to. 606To use this a video capture source has to be specified, but it can 607be anything even fake one. 608 609@item video_device_save 610Save the currently used video capture filter device and its 611parameters (if the filter supports it) to a file. 612If a file with the same name exists it will be overwritten. 613 614@end table 615 616@subsection Examples 617 618@itemize 619 620@item 621Print the list of DirectShow supported devices and exit: 622@example 623$ ffmpeg -list_devices true -f dshow -i dummy 624@end example 625 626@item 627Open video device @var{Camera}: 628@example 629$ ffmpeg -f dshow -i video="Camera" 630@end example 631 632@item 633Open second video device with name @var{Camera}: 634@example 635$ ffmpeg -f dshow -video_device_number 1 -i video="Camera" 636@end example 637 638@item 639Open video device @var{Camera} and audio device @var{Microphone}: 640@example 641$ ffmpeg -f dshow -i video="Camera":audio="Microphone" 642@end example 643 644@item 645Print the list of supported options in selected device and exit: 646@example 647$ ffmpeg -list_options true -f dshow -i video="Camera" 648@end example 649 650@item 651Specify pin names to capture by name or alternative name, specify alternative device name: 652@example 653$ ffmpeg -f dshow -audio_pin_name "Audio Out" -video_pin_name 2 -i video=video="@@device_pnp_\\?\pci#ven_1a0a&dev_6200&subsys_62021461&rev_01#4&e2c7dd6&0&00e1#@{65e8773d-8f56-11d0-a3b9-00a0c9223196@}\@{ca465100-deb0-4d59-818f-8c477184adf6@}":audio="Microphone" 654@end example 655 656@item 657Configure a crossbar device, specifying crossbar pins, allow user to adjust video capture properties at startup: 658@example 659$ ffmpeg -f dshow -show_video_device_dialog true -crossbar_video_input_pin_number 0 660 -crossbar_audio_input_pin_number 3 -i video="AVerMedia BDA Analog Capture":audio="AVerMedia BDA Analog Capture" 661@end example 662 663@end itemize 664 665@section fbdev 666 667Linux framebuffer input device. 668 669The Linux framebuffer is a graphic hardware-independent abstraction 670layer to show graphics on a computer monitor, typically on the 671console. It is accessed through a file device node, usually 672@file{/dev/fb0}. 673 674For more detailed information read the file 675Documentation/fb/framebuffer.txt included in the Linux source tree. 676 677See also @url{http://linux-fbdev.sourceforge.net/}, and fbset(1). 678 679To record from the framebuffer device @file{/dev/fb0} with 680@command{ffmpeg}: 681@example 682ffmpeg -f fbdev -framerate 10 -i /dev/fb0 out.avi 683@end example 684 685You can take a single screenshot image with the command: 686@example 687ffmpeg -f fbdev -framerate 1 -i /dev/fb0 -frames:v 1 screenshot.jpeg 688@end example 689 690@subsection Options 691 692@table @option 693 694@item framerate 695Set the frame rate. Default is 25. 696 697@end table 698 699@section gdigrab 700 701Win32 GDI-based screen capture device. 702 703This device allows you to capture a region of the display on Windows. 704 705There are two options for the input filename: 706@example 707desktop 708@end example 709or 710@example 711title=@var{window_title} 712@end example 713 714The first option will capture the entire desktop, or a fixed region of the 715desktop. The second option will instead capture the contents of a single 716window, regardless of its position on the screen. 717 718For example, to grab the entire desktop using @command{ffmpeg}: 719@example 720ffmpeg -f gdigrab -framerate 6 -i desktop out.mpg 721@end example 722 723Grab a 640x480 region at position @code{10,20}: 724@example 725ffmpeg -f gdigrab -framerate 6 -offset_x 10 -offset_y 20 -video_size vga -i desktop out.mpg 726@end example 727 728Grab the contents of the window named "Calculator" 729@example 730ffmpeg -f gdigrab -framerate 6 -i title=Calculator out.mpg 731@end example 732 733@subsection Options 734 735@table @option 736@item draw_mouse 737Specify whether to draw the mouse pointer. Use the value @code{0} to 738not draw the pointer. Default value is @code{1}. 739 740@item framerate 741Set the grabbing frame rate. Default value is @code{ntsc}, 742corresponding to a frame rate of @code{30000/1001}. 743 744@item show_region 745Show grabbed region on screen. 746 747If @var{show_region} is specified with @code{1}, then the grabbing 748region will be indicated on screen. With this option, it is easy to 749know what is being grabbed if only a portion of the screen is grabbed. 750 751Note that @var{show_region} is incompatible with grabbing the contents 752of a single window. 753 754For example: 755@example 756ffmpeg -f gdigrab -show_region 1 -framerate 6 -video_size cif -offset_x 10 -offset_y 20 -i desktop out.mpg 757@end example 758 759@item video_size 760Set the video frame size. The default is to capture the full screen if @file{desktop} is selected, or the full window size if @file{title=@var{window_title}} is selected. 761 762@item offset_x 763When capturing a region with @var{video_size}, set the distance from the left edge of the screen or desktop. 764 765Note 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 @var{offset_x} value to move the region to that monitor. 766 767@item offset_y 768When capturing a region with @var{video_size}, set the distance from the top edge of the screen or desktop. 769 770Note 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 @var{offset_y} value to move the region to that monitor. 771 772@end table 773 774@section iec61883 775 776FireWire DV/HDV input device using libiec61883. 777 778To enable this input device, you need libiec61883, libraw1394 and 779libavc1394 installed on your system. Use the configure option 780@code{--enable-libiec61883} to compile with the device enabled. 781 782The iec61883 capture device supports capturing from a video device 783connected via IEEE1394 (FireWire), using libiec61883 and the new Linux 784FireWire stack (juju). This is the default DV/HDV input method in Linux 785Kernel 2.6.37 and later, since the old FireWire stack was removed. 786 787Specify the FireWire port to be used as input file, or "auto" 788to choose the first port connected. 789 790@subsection Options 791 792@table @option 793 794@item dvtype 795Override autodetection of DV/HDV. This should only be used if auto 796detection does not work, or if usage of a different device type 797should be prohibited. Treating a DV device as HDV (or vice versa) will 798not work and result in undefined behavior. 799The values @option{auto}, @option{dv} and @option{hdv} are supported. 800 801@item dvbuffer 802Set maximum size of buffer for incoming data, in frames. For DV, this 803is an exact value. For HDV, it is not frame exact, since HDV does 804not have a fixed frame size. 805 806@item dvguid 807Select the capture device by specifying its GUID. Capturing will only 808be performed from the specified device and fails if no device with the 809given GUID is found. This is useful to select the input if multiple 810devices are connected at the same time. 811Look at /sys/bus/firewire/devices to find out the GUIDs. 812 813@end table 814 815@subsection Examples 816 817@itemize 818 819@item 820Grab and show the input of a FireWire DV/HDV device. 821@example 822ffplay -f iec61883 -i auto 823@end example 824 825@item 826Grab and record the input of a FireWire DV/HDV device, 827using a packet buffer of 100000 packets if the source is HDV. 828@example 829ffmpeg -f iec61883 -i auto -dvbuffer 100000 out.mpg 830@end example 831 832@end itemize 833 834@section jack 835 836JACK input device. 837 838To enable this input device during configuration you need libjack 839installed on your system. 840 841A JACK input device creates one or more JACK writable clients, one for 842each audio channel, with name @var{client_name}:input_@var{N}, where 843@var{client_name} is the name provided by the application, and @var{N} 844is a number which identifies the channel. 845Each writable client will send the acquired data to the FFmpeg input 846device. 847 848Once you have created one or more JACK readable clients, you need to 849connect them to one or more JACK writable clients. 850 851To connect or disconnect JACK clients you can use the @command{jack_connect} 852and @command{jack_disconnect} programs, or do it through a graphical interface, 853for example with @command{qjackctl}. 854 855To list the JACK clients and their properties you can invoke the command 856@command{jack_lsp}. 857 858Follows an example which shows how to capture a JACK readable client 859with @command{ffmpeg}. 860@example 861# Create a JACK writable client with name "ffmpeg". 862$ ffmpeg -f jack -i ffmpeg -y out.wav 863 864# Start the sample jack_metro readable client. 865$ jack_metro -b 120 -d 0.2 -f 4000 866 867# List the current JACK clients. 868$ jack_lsp -c 869system:capture_1 870system:capture_2 871system:playback_1 872system:playback_2 873ffmpeg:input_1 874metro:120_bpm 875 876# Connect metro to the ffmpeg writable client. 877$ jack_connect metro:120_bpm ffmpeg:input_1 878@end example 879 880For more information read: 881@url{http://jackaudio.org/} 882 883@subsection Options 884 885@table @option 886 887@item channels 888Set the number of channels. Default is 2. 889 890@end table 891 892@section kmsgrab 893 894KMS video input device. 895 896Captures the KMS scanout framebuffer associated with a specified CRTC or plane as a 897DRM object that can be passed to other hardware functions. 898 899Requires either DRM master or CAP_SYS_ADMIN to run. 900 901If you don't understand what all of that means, you probably don't want this. Look at 902@option{x11grab} instead. 903 904@subsection Options 905 906@table @option 907 908@item device 909DRM device to capture on. Defaults to @option{/dev/dri/card0}. 910 911@item format 912Pixel format of the framebuffer. This can be autodetected if you are running Linux 5.7 913or later, but needs to be provided for earlier versions. Defaults to @option{bgr0}, 914which is the most common format used by the Linux console and Xorg X server. 915 916@item format_modifier 917Format modifier to signal on output frames. This is necessary to import correctly into 918some APIs. It can be autodetected if you are running Linux 5.7 or later, but will need 919to be provided explicitly when needed in earlier versions. See the libdrm documentation 920for possible values. 921 922@item crtc_id 923KMS CRTC ID to define the capture source. The first active plane on the given CRTC 924will be used. 925 926@item plane_id 927KMS plane ID to define the capture source. Defaults to the first active plane found if 928neither @option{crtc_id} nor @option{plane_id} are specified. 929 930@item framerate 931Framerate to capture at. This is not synchronised to any page flipping or framebuffer 932changes - it just defines the interval at which the framebuffer is sampled. Sampling 933faster than the framebuffer update rate will generate independent frames with the same 934content. Defaults to @code{30}. 935 936@end table 937 938@subsection Examples 939 940@itemize 941 942@item 943Capture from the first active plane, download the result to normal frames and encode. 944This will only work if the framebuffer is both linear and mappable - if not, the result 945may be scrambled or fail to download. 946@example 947ffmpeg -f kmsgrab -i - -vf 'hwdownload,format=bgr0' output.mp4 948@end example 949 950@item 951Capture from CRTC ID 42 at 60fps, map the result to VAAPI, convert to NV12 and encode as H.264. 952@example 953ffmpeg -crtc_id 42 -framerate 60 -f kmsgrab -i - -vf 'hwmap=derive_device=vaapi,scale_vaapi=w=1920:h=1080:format=nv12' -c:v h264_vaapi output.mp4 954@end example 955 956@item 957To capture only part of a plane the output can be cropped - this can be used to capture 958a single window, as long as it has a known absolute position and size. For example, to 959capture and encode the middle quarter of a 1920x1080 plane: 960@example 961ffmpeg -f kmsgrab -i - -vf 'hwmap=derive_device=vaapi,crop=960:540:480:270,scale_vaapi=960:540:nv12' -c:v h264_vaapi output.mp4 962@end example 963 964@end itemize 965 966@section lavfi 967 968Libavfilter input virtual device. 969 970This input device reads data from the open output pads of a libavfilter 971filtergraph. 972 973For each filtergraph open output, the input device will create a 974corresponding stream which is mapped to the generated output. Currently 975only video data is supported. The filtergraph is specified through the 976option @option{graph}. 977 978@subsection Options 979 980@table @option 981 982@item graph 983Specify the filtergraph to use as input. Each video open output must be 984labelled by a unique string of the form "out@var{N}", where @var{N} is a 985number starting from 0 corresponding to the mapped input stream 986generated by the device. 987The first unlabelled output is automatically assigned to the "out0" 988label, but all the others need to be specified explicitly. 989 990The suffix "+subcc" can be appended to the output label to create an extra 991stream with the closed captions packets attached to that output 992(experimental; only for EIA-608 / CEA-708 for now). 993The subcc streams are created after all the normal streams, in the order of 994the corresponding stream. 995For example, if there is "out19+subcc", "out7+subcc" and up to "out42", the 996stream #43 is subcc for stream #7 and stream #44 is subcc for stream #19. 997 998If not specified defaults to the filename specified for the input 999device. 1000 1001@item graph_file 1002Set the filename of the filtergraph to be read and sent to the other 1003filters. Syntax of the filtergraph is the same as the one specified by 1004the option @var{graph}. 1005 1006@item dumpgraph 1007Dump graph to stderr. 1008 1009@end table 1010 1011@subsection Examples 1012 1013@itemize 1014@item 1015Create a color video stream and play it back with @command{ffplay}: 1016@example 1017ffplay -f lavfi -graph "color=c=pink [out0]" dummy 1018@end example 1019 1020@item 1021As the previous example, but use filename for specifying the graph 1022description, and omit the "out0" label: 1023@example 1024ffplay -f lavfi color=c=pink 1025@end example 1026 1027@item 1028Create three different video test filtered sources and play them: 1029@example 1030ffplay -f lavfi -graph "testsrc [out0]; testsrc,hflip [out1]; testsrc,negate [out2]" test3 1031@end example 1032 1033@item 1034Read an audio stream from a file using the amovie source and play it 1035back with @command{ffplay}: 1036@example 1037ffplay -f lavfi "amovie=test.wav" 1038@end example 1039 1040@item 1041Read an audio stream and a video stream and play it back with 1042@command{ffplay}: 1043@example 1044ffplay -f lavfi "movie=test.avi[out0];amovie=test.wav[out1]" 1045@end example 1046 1047@item 1048Dump decoded frames to images and closed captions to a file (experimental): 1049@example 1050ffmpeg -f lavfi -i "movie=test.ts[out0+subcc]" -map v frame%08d.png -map s -c copy -f rawvideo subcc.bin 1051@end example 1052 1053@end itemize 1054 1055@section libcdio 1056 1057Audio-CD input device based on libcdio. 1058 1059To enable this input device during configuration you need libcdio 1060installed on your system. It requires the configure option 1061@code{--enable-libcdio}. 1062 1063This device allows playing and grabbing from an Audio-CD. 1064 1065For example to copy with @command{ffmpeg} the entire Audio-CD in @file{/dev/sr0}, 1066you may run the command: 1067@example 1068ffmpeg -f libcdio -i /dev/sr0 cd.wav 1069@end example 1070 1071@subsection Options 1072@table @option 1073@item speed 1074Set drive reading speed. Default value is 0. 1075 1076The speed is specified CD-ROM speed units. The speed is set through 1077the libcdio @code{cdio_cddap_speed_set} function. On many CD-ROM 1078drives, specifying a value too large will result in using the fastest 1079speed. 1080 1081@item paranoia_mode 1082Set paranoia recovery mode flags. It accepts one of the following values: 1083 1084@table @samp 1085@item disable 1086@item verify 1087@item overlap 1088@item neverskip 1089@item full 1090@end table 1091 1092Default value is @samp{disable}. 1093 1094For more information about the available recovery modes, consult the 1095paranoia project documentation. 1096@end table 1097 1098@section libdc1394 1099 1100IIDC1394 input device, based on libdc1394 and libraw1394. 1101 1102Requires the configure option @code{--enable-libdc1394}. 1103 1104@subsection Options 1105@table @option 1106 1107@item framerate 1108Set the frame rate. Default is @code{ntsc}, corresponding to a frame 1109rate of @code{30000/1001}. 1110 1111@item pixel_format 1112Select the pixel format. Default is @code{uyvy422}. 1113 1114@item video_size 1115Set the video size given as a string such as @code{640x480} or @code{hd720}. 1116Default is @code{qvga}. 1117@end table 1118 1119@section openal 1120 1121The OpenAL input device provides audio capture on all systems with a 1122working OpenAL 1.1 implementation. 1123 1124To enable this input device during configuration, you need OpenAL 1125headers and libraries installed on your system, and need to configure 1126FFmpeg with @code{--enable-openal}. 1127 1128OpenAL headers and libraries should be provided as part of your OpenAL 1129implementation, or as an additional download (an SDK). Depending on your 1130installation you may need to specify additional flags via the 1131@code{--extra-cflags} and @code{--extra-ldflags} for allowing the build 1132system to locate the OpenAL headers and libraries. 1133 1134An incomplete list of OpenAL implementations follows: 1135 1136@table @strong 1137@item Creative 1138The official Windows implementation, providing hardware acceleration 1139with supported devices and software fallback. 1140See @url{http://openal.org/}. 1141@item OpenAL Soft 1142Portable, open source (LGPL) software implementation. Includes 1143backends for the most common sound APIs on the Windows, Linux, 1144Solaris, and BSD operating systems. 1145See @url{http://kcat.strangesoft.net/openal.html}. 1146@item Apple 1147OpenAL is part of Core Audio, the official Mac OS X Audio interface. 1148See @url{http://developer.apple.com/technologies/mac/audio-and-video.html} 1149@end table 1150 1151This device allows one to capture from an audio input device handled 1152through OpenAL. 1153 1154You need to specify the name of the device to capture in the provided 1155filename. If the empty string is provided, the device will 1156automatically select the default device. You can get the list of the 1157supported devices by using the option @var{list_devices}. 1158 1159@subsection Options 1160 1161@table @option 1162 1163@item channels 1164Set the number of channels in the captured audio. Only the values 1165@option{1} (monaural) and @option{2} (stereo) are currently supported. 1166Defaults to @option{2}. 1167 1168@item sample_size 1169Set the sample size (in bits) of the captured audio. Only the values 1170@option{8} and @option{16} are currently supported. Defaults to 1171@option{16}. 1172 1173@item sample_rate 1174Set the sample rate (in Hz) of the captured audio. 1175Defaults to @option{44.1k}. 1176 1177@item list_devices 1178If set to @option{true}, print a list of devices and exit. 1179Defaults to @option{false}. 1180 1181@end table 1182 1183@subsection Examples 1184 1185Print the list of OpenAL supported devices and exit: 1186@example 1187$ ffmpeg -list_devices true -f openal -i dummy out.ogg 1188@end example 1189 1190Capture from the OpenAL device @file{DR-BT101 via PulseAudio}: 1191@example 1192$ ffmpeg -f openal -i 'DR-BT101 via PulseAudio' out.ogg 1193@end example 1194 1195Capture from the default device (note the empty string '' as filename): 1196@example 1197$ ffmpeg -f openal -i '' out.ogg 1198@end example 1199 1200Capture from two devices simultaneously, writing to two different files, 1201within the same @command{ffmpeg} command: 1202@example 1203$ ffmpeg -f openal -i 'DR-BT101 via PulseAudio' out1.ogg -f openal -i 'ALSA Default' out2.ogg 1204@end example 1205Note: not all OpenAL implementations support multiple simultaneous capture - 1206try the latest OpenAL Soft if the above does not work. 1207 1208@section oss 1209 1210Open Sound System input device. 1211 1212The filename to provide to the input device is the device node 1213representing the OSS input device, and is usually set to 1214@file{/dev/dsp}. 1215 1216For example to grab from @file{/dev/dsp} using @command{ffmpeg} use the 1217command: 1218@example 1219ffmpeg -f oss -i /dev/dsp /tmp/oss.wav 1220@end example 1221 1222For more information about OSS see: 1223@url{http://manuals.opensound.com/usersguide/dsp.html} 1224 1225@subsection Options 1226 1227@table @option 1228 1229@item sample_rate 1230Set the sample rate in Hz. Default is 48000. 1231 1232@item channels 1233Set the number of channels. Default is 2. 1234 1235@end table 1236 1237@section pulse 1238 1239PulseAudio input device. 1240 1241To enable this output device you need to configure FFmpeg with @code{--enable-libpulse}. 1242 1243The filename to provide to the input device is a source device or the 1244string "default" 1245 1246To list the PulseAudio source devices and their properties you can invoke 1247the command @command{pactl list sources}. 1248 1249More information about PulseAudio can be found on @url{http://www.pulseaudio.org}. 1250 1251@subsection Options 1252@table @option 1253@item server 1254Connect to a specific PulseAudio server, specified by an IP address. 1255Default server is used when not provided. 1256 1257@item name 1258Specify the application name PulseAudio will use when showing active clients, 1259by default it is the @code{LIBAVFORMAT_IDENT} string. 1260 1261@item stream_name 1262Specify the stream name PulseAudio will use when showing active streams, 1263by default it is "record". 1264 1265@item sample_rate 1266Specify the samplerate in Hz, by default 48kHz is used. 1267 1268@item channels 1269Specify the channels in use, by default 2 (stereo) is set. 1270 1271@item frame_size 1272Specify the number of bytes per frame, by default it is set to 1024. 1273 1274@item fragment_size 1275Specify the minimal buffering fragment in PulseAudio, it will affect the 1276audio latency. By default it is unset. 1277 1278@item wallclock 1279Set the initial PTS using the current time. Default is 1. 1280 1281@end table 1282 1283@subsection Examples 1284Record a stream from default device: 1285@example 1286ffmpeg -f pulse -i default /tmp/pulse.wav 1287@end example 1288 1289@section sndio 1290 1291sndio input device. 1292 1293To enable this input device during configuration you need libsndio 1294installed on your system. 1295 1296The filename to provide to the input device is the device node 1297representing the sndio input device, and is usually set to 1298@file{/dev/audio0}. 1299 1300For example to grab from @file{/dev/audio0} using @command{ffmpeg} use the 1301command: 1302@example 1303ffmpeg -f sndio -i /dev/audio0 /tmp/oss.wav 1304@end example 1305 1306@subsection Options 1307 1308@table @option 1309 1310@item sample_rate 1311Set the sample rate in Hz. Default is 48000. 1312 1313@item channels 1314Set the number of channels. Default is 2. 1315 1316@end table 1317 1318@section video4linux2, v4l2 1319 1320Video4Linux2 input video device. 1321 1322"v4l2" can be used as alias for "video4linux2". 1323 1324If FFmpeg is built with v4l-utils support (by using the 1325@code{--enable-libv4l2} configure option), it is possible to use it with the 1326@code{-use_libv4l2} input device option. 1327 1328The name of the device to grab is a file device node, usually Linux 1329systems tend to automatically create such nodes when the device 1330(e.g. an USB webcam) is plugged into the system, and has a name of the 1331kind @file{/dev/video@var{N}}, where @var{N} is a number associated to 1332the device. 1333 1334Video4Linux2 devices usually support a limited set of 1335@var{width}x@var{height} sizes and frame rates. You can check which are 1336supported using @command{-list_formats all} for Video4Linux2 devices. 1337Some devices, like TV cards, support one or more standards. It is possible 1338to list all the supported standards using @command{-list_standards all}. 1339 1340The time base for the timestamps is 1 microsecond. Depending on the kernel 1341version and configuration, the timestamps may be derived from the real time 1342clock (origin at the Unix Epoch) or the monotonic clock (origin usually at 1343boot time, unaffected by NTP or manual changes to the clock). The 1344@option{-timestamps abs} or @option{-ts abs} option can be used to force 1345conversion into the real time clock. 1346 1347Some usage examples of the video4linux2 device with @command{ffmpeg} 1348and @command{ffplay}: 1349@itemize 1350@item 1351List supported formats for a video4linux2 device: 1352@example 1353ffplay -f video4linux2 -list_formats all /dev/video0 1354@end example 1355 1356@item 1357Grab and show the input of a video4linux2 device: 1358@example 1359ffplay -f video4linux2 -framerate 30 -video_size hd720 /dev/video0 1360@end example 1361 1362@item 1363Grab and record the input of a video4linux2 device, leave the 1364frame rate and size as previously set: 1365@example 1366ffmpeg -f video4linux2 -input_format mjpeg -i /dev/video0 out.mpeg 1367@end example 1368@end itemize 1369 1370For more information about Video4Linux, check @url{http://linuxtv.org/}. 1371 1372@subsection Options 1373 1374@table @option 1375@item standard 1376Set the standard. Must be the name of a supported standard. To get a 1377list of the supported standards, use the @option{list_standards} 1378option. 1379 1380@item channel 1381Set the input channel number. Default to -1, which means using the 1382previously selected channel. 1383 1384@item video_size 1385Set the video frame size. The argument must be a string in the form 1386@var{WIDTH}x@var{HEIGHT} or a valid size abbreviation. 1387 1388@item pixel_format 1389Select the pixel format (only valid for raw video input). 1390 1391@item input_format 1392Set the preferred pixel format (for raw video) or a codec name. 1393This option allows one to select the input format, when several are 1394available. 1395 1396@item framerate 1397Set the preferred video frame rate. 1398 1399@item list_formats 1400List available formats (supported pixel formats, codecs, and frame 1401sizes) and exit. 1402 1403Available values are: 1404@table @samp 1405@item all 1406Show all available (compressed and non-compressed) formats. 1407 1408@item raw 1409Show only raw video (non-compressed) formats. 1410 1411@item compressed 1412Show only compressed formats. 1413@end table 1414 1415@item list_standards 1416List supported standards and exit. 1417 1418Available values are: 1419@table @samp 1420@item all 1421Show all supported standards. 1422@end table 1423 1424@item timestamps, ts 1425Set type of timestamps for grabbed frames. 1426 1427Available values are: 1428@table @samp 1429@item default 1430Use timestamps from the kernel. 1431 1432@item abs 1433Use absolute timestamps (wall clock). 1434 1435@item mono2abs 1436Force conversion from monotonic to absolute timestamps. 1437@end table 1438 1439Default value is @code{default}. 1440 1441@item use_libv4l2 1442Use libv4l2 (v4l-utils) conversion functions. Default is 0. 1443 1444@end table 1445 1446@section vfwcap 1447 1448VfW (Video for Windows) capture input device. 1449 1450The filename passed as input is the capture driver number, ranging from 14510 to 9. You may use "list" as filename to print a list of drivers. Any 1452other filename will be interpreted as device number 0. 1453 1454@subsection Options 1455 1456@table @option 1457 1458@item video_size 1459Set the video frame size. 1460 1461@item framerate 1462Set the grabbing frame rate. Default value is @code{ntsc}, 1463corresponding to a frame rate of @code{30000/1001}. 1464 1465@end table 1466 1467@section x11grab 1468 1469X11 video input device. 1470 1471To enable this input device during configuration you need libxcb 1472installed on your system. It will be automatically detected during 1473configuration. 1474 1475This device allows one to capture a region of an X11 display. 1476 1477The filename passed as input has the syntax: 1478@example 1479[@var{hostname}]:@var{display_number}.@var{screen_number}[+@var{x_offset},@var{y_offset}] 1480@end example 1481 1482@var{hostname}:@var{display_number}.@var{screen_number} specifies the 1483X11 display name of the screen to grab from. @var{hostname} can be 1484omitted, and defaults to "localhost". The environment variable 1485@env{DISPLAY} contains the default display name. 1486 1487@var{x_offset} and @var{y_offset} specify the offsets of the grabbed 1488area with respect to the top-left border of the X11 screen. They 1489default to 0. 1490 1491Check the X11 documentation (e.g. @command{man X}) for more detailed 1492information. 1493 1494Use the @command{xdpyinfo} program for getting basic information about 1495the properties of your X11 display (e.g. grep for "name" or 1496"dimensions"). 1497 1498For example to grab from @file{:0.0} using @command{ffmpeg}: 1499@example 1500ffmpeg -f x11grab -framerate 25 -video_size cif -i :0.0 out.mpg 1501@end example 1502 1503Grab at position @code{10,20}: 1504@example 1505ffmpeg -f x11grab -framerate 25 -video_size cif -i :0.0+10,20 out.mpg 1506@end example 1507 1508@subsection Options 1509 1510@table @option 1511@item select_region 1512Specify whether to select the grabbing area graphically using the pointer. 1513A value of @code{1} prompts the user to select the grabbing area graphically 1514by clicking and dragging. A single click with no dragging will select the 1515whole screen. A region with zero width or height will also select the whole 1516screen. This option overwrites the @var{video_size}, @var{grab_x}, and 1517@var{grab_y} options. Default value is @code{0}. 1518 1519@item draw_mouse 1520Specify whether to draw the mouse pointer. A value of @code{0} specifies 1521not to draw the pointer. Default value is @code{1}. 1522 1523@item follow_mouse 1524Make the grabbed area follow the mouse. The argument can be 1525@code{centered} or a number of pixels @var{PIXELS}. 1526 1527When it is specified with "centered", the grabbing region follows the mouse 1528pointer and keeps the pointer at the center of region; otherwise, the region 1529follows only when the mouse pointer reaches within @var{PIXELS} (greater than 1530zero) to the edge of region. 1531 1532For example: 1533@example 1534ffmpeg -f x11grab -follow_mouse centered -framerate 25 -video_size cif -i :0.0 out.mpg 1535@end example 1536 1537To follow only when the mouse pointer reaches within 100 pixels to edge: 1538@example 1539ffmpeg -f x11grab -follow_mouse 100 -framerate 25 -video_size cif -i :0.0 out.mpg 1540@end example 1541 1542@item framerate 1543Set the grabbing frame rate. Default value is @code{ntsc}, 1544corresponding to a frame rate of @code{30000/1001}. 1545 1546@item show_region 1547Show grabbed region on screen. 1548 1549If @var{show_region} is specified with @code{1}, then the grabbing 1550region will be indicated on screen. With this option, it is easy to 1551know what is being grabbed if only a portion of the screen is grabbed. 1552 1553@item region_border 1554Set the region border thickness if @option{-show_region 1} is used. 1555Range is 1 to 128 and default is 3 (XCB-based x11grab only). 1556 1557For example: 1558@example 1559ffmpeg -f x11grab -show_region 1 -framerate 25 -video_size cif -i :0.0+10,20 out.mpg 1560@end example 1561 1562With @var{follow_mouse}: 1563@example 1564ffmpeg -f x11grab -follow_mouse centered -show_region 1 -framerate 25 -video_size cif -i :0.0 out.mpg 1565@end example 1566 1567@item window_id 1568Grab this window, instead of the whole screen. Default value is 0, which maps to 1569the whole screen (root window). 1570 1571The id of a window can be found using the @command{xwininfo} program, possibly with options -tree and 1572-root. 1573 1574If the window is later enlarged, the new area is not recorded. Video ends when 1575the window is closed, unmapped (i.e., iconified) or shrunk beyond the video 1576size (which defaults to the initial window size). 1577 1578This option disables options @option{follow_mouse} and @option{select_region}. 1579 1580@item video_size 1581Set the video frame size. Default is the full desktop or window. 1582 1583@item grab_x 1584@item grab_y 1585Set the grabbing region coordinates. They are expressed as offset from 1586the top left corner of the X11 window and correspond to the 1587@var{x_offset} and @var{y_offset} parameters in the device name. The 1588default value for both options is 0. 1589@end table 1590 1591@c man end INPUT DEVICES 1592