]> git.sesse.net Git - ffmpeg/blobdiff - doc/indevs.texi
ffmpeg: Check that frames are user type before treating them as such
[ffmpeg] / doc / indevs.texi
index 79f786f8e06f40fca0ab63f76982fffc4f7f9e8d..561b92bb3b1bc5a72cd7fe3b6e27270a7d15ec49 100644 (file)
@@ -42,7 +42,7 @@ specify card number or identifier, device number and subdevice number
 To see the list of cards currently recognized by your system check the
 files @file{/proc/asound/cards} and @file{/proc/asound/devices}.
 
-For example to capture with @file{ffmpeg} from an ALSA device with
+For example to capture with @command{ffmpeg} from an ALSA device with
 card id 0, you may run the command:
 @example
 ffmpeg -f alsa -i hw:0 alsaout.wav
@@ -104,6 +104,14 @@ If set to @option{true}, print a list of devices and exit.
 If set to @option{true}, print a list of selected device's options
 and exit.
 
+@item video_device_number
+Set video device number for devices with same name (starts at 0,
+defaults to 0).
+
+@item audio_device_number
+Set audio device number for devices with same name (starts at 0,
+defaults to 0).
+
 @end table
 
 @subsection Examples
@@ -122,6 +130,12 @@ Open video device @var{Camera}:
 $ ffmpeg -f dshow -i video="Camera"
 @end example
 
+@item
+Open second video device with name @var{Camera}:
+@example
+$ ffmpeg -f dshow -video_device_number 1 -i video="Camera"
+@end example
+
 @item
 Open video device @var{Camera} and audio device @var{Microphone}:
 @example
@@ -153,14 +167,14 @@ For more detailed information read the file
 Documentation/fb/framebuffer.txt included in the Linux source tree.
 
 To record from the framebuffer device @file{/dev/fb0} with
-@file{ffmpeg}:
+@command{ffmpeg}:
 @example
 ffmpeg -f fbdev -r 10 -i /dev/fb0 out.avi
 @end example
 
 You can take a single screenshot image with the command:
 @example
-ffmpeg -f fbdev -vframes 1 -r 1 -i /dev/fb0 screenshot.jpeg
+ffmpeg -f fbdev -frames:v 1 -r 1 -i /dev/fb0 screenshot.jpeg
 @end example
 
 See also @url{http://linux-fbdev.sourceforge.net/}, and fbset(1).
@@ -190,7 +204,7 @@ To list the JACK clients and their properties you can invoke the command
 @file{jack_lsp}.
 
 Follows an example which shows how to capture a JACK readable client
-with @file{ffmpeg}.
+with @command{ffmpeg}.
 @example
 # Create a JACK writable client with name "ffmpeg".
 $ ffmpeg -f jack -i ffmpeg -y out.wav
@@ -226,9 +240,6 @@ corresponding stream which is mapped to the generated output. Currently
 only video data is supported. The filtergraph is specified through the
 option @option{graph}.
 
-To enable this input device, you need to configure your build with
-@code{--enable-libavfilter}.
-
 @subsection Options
 
 @table @option
@@ -239,7 +250,7 @@ labelled by a unique string of the form "out@var{N}", where @var{N} 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 "out0"
-label, but all the others need to be specified explicitely.
+label, but all the others need to be specified explicitly.
 
 If not specified defaults to the filename specified for the input
 device.
@@ -384,7 +395,7 @@ The filename to provide to the input device is the device node
 representing the OSS input device, and is usually set to
 @file{/dev/dsp}.
 
-For example to grab from @file{/dev/dsp} using @file{ffmpeg} use the
+For example to grab from @file{/dev/dsp} using @command{ffmpeg} use the
 command:
 @example
 ffmpeg -f oss -i /dev/dsp /tmp/oss.wav
@@ -393,6 +404,89 @@ ffmpeg -f oss -i /dev/dsp /tmp/oss.wav
 For more information about OSS see:
 @url{http://manuals.opensound.com/usersguide/dsp.html}
 
+@section pulse
+
+pulseaudio input device.
+
+To enable this input device during configuration you need libpulse-simple
+installed in your system.
+
+The filename to provide to the input device is a source device or the
+string "default"
+
+To list the pulse source devices and their properties you can invoke
+the command @file{pactl list sources}.
+
+@example
+ffmpeg -f pulse -i default /tmp/pulse.wav
+@end example
+
+@subsection @var{server} AVOption
+
+The syntax is:
+@example
+-server @var{server name}
+@end example
+
+Connects to a specific server.
+
+@subsection @var{name} AVOption
+
+The syntax is:
+@example
+-name @var{application name}
+@end example
+
+Specify the application name pulse will use when showing active clients,
+by default it is the LIBAVFORMAT_IDENT string
+
+@subsection @var{stream_name} AVOption
+
+The syntax is:
+@example
+-stream_name @var{stream name}
+@end example
+
+Specify the stream name pulse will use when showing active streams,
+by default it is "record"
+
+@subsection @var{sample_rate} AVOption
+
+The syntax is:
+@example
+-sample_rate @var{samplerate}
+@end example
+
+Specify the samplerate in Hz, by default 48kHz is used.
+
+@subsection @var{channels} AVOption
+
+The syntax is:
+@example
+-channels @var{N}
+@end example
+
+Specify the channels in use, by default 2 (stereo) is set.
+
+@subsection @var{frame_size} AVOption
+
+The syntax is:
+@example
+-frame_size @var{bytes}
+@end example
+
+Specify the number of byte per frame, by default it is set to 1024.
+
+@subsection @var{fragment_size} AVOption
+
+The syntax is:
+@example
+-fragment_size @var{bytes}
+@end example
+
+Specify the minimal buffering fragment in pulseaudio, it will affect the
+audio latency. By default it is unset.
+
 @section sndio
 
 sndio input device.
@@ -404,7 +498,7 @@ The filename to provide to the input device is the device node
 representing the sndio input device, and is usually set to
 @file{/dev/audio0}.
 
-For example to grab from @file{/dev/audio0} using @file{ffmpeg} use the
+For example to grab from @file{/dev/audio0} using @command{ffmpeg} use the
 command:
 @example
 ffmpeg -f sndio -i /dev/audio0 /tmp/oss.wav
@@ -421,18 +515,21 @@ kind @file{/dev/video@var{N}}, where @var{N} is a number associated to
 the device.
 
 Video4Linux and Video4Linux2 devices only support a limited set of
-@var{width}x@var{height} sizes and framerates. You can check which are
+@var{width}x@var{height} sizes and frame rates. You can check which are
 supported for example with the command @file{dov4l} for Video4Linux
 devices and the command @file{v4l-info} for Video4Linux2 devices.
 
 If the size for the device is set to 0x0, the input device will
-try to autodetect the size to use.
+try to auto-detect the size to use.
 Only for the video4linux2 device, if the frame rate is set to 0/0 the
 input device will use the frame rate value already set in the driver.
 
 Video4Linux support is deprecated since Linux 2.6.30, and will be
 dropped in later versions.
 
+Note that if FFmpeg is build with v4l-utils support ("--enable-libv4l2"
+option), it will always be used.
+
 Follow some usage examples of the video4linux devices with the ff*
 tools.
 @example
@@ -440,15 +537,18 @@ tools.
 # to the default of 25/1.
 ffplay -s 320x240 -f video4linux /dev/video0
 
-# Grab and show the input of a video4linux2 device, autoadjust size.
+# Grab and show the input of a video4linux2 device, auto-adjust size.
 ffplay -f video4linux2 /dev/video0
 
-# Grab and record the input of a video4linux2 device, autoadjust size,
+# Grab and record the input of a video4linux2 device, auto-adjust size,
 # frame rate value defaults to 0/0 so it is read from the video4linux2
 # driver.
 ffmpeg -f video4linux2 -i /dev/video0 out.mpeg
 @end example
 
+"v4l" and "v4l2" can be used as aliases for the respective "video4linux" and
+"video4linux2".
+
 @section vfwcap
 
 VfW (Video for Windows) capture input device.
@@ -470,7 +570,7 @@ The filename passed as input has the syntax:
 
 @var{hostname}:@var{display_number}.@var{screen_number} specifies the
 X11 display name of the screen to grab from. @var{hostname} can be
-ommitted, and defaults to "localhost". The environment variable
+omitted, and defaults to "localhost". The environment variable
 @env{DISPLAY} contains the default display name.
 
 @var{x_offset} and @var{y_offset} specify the offsets of the grabbed
@@ -482,7 +582,7 @@ Check the X11 documentation (e.g. man X) for more detailed information.
 Use the @file{dpyinfo} program for getting basic information about the
 properties of your X11 display (e.g. grep for "name" or "dimensions").
 
-For example to grab from @file{:0.0} using @file{ffmpeg}:
+For example to grab from @file{:0.0} using @command{ffmpeg}:
 @example
 ffmpeg -f x11grab -r 25 -s cif -i :0.0 out.mpg