yading@10
|
1 =head1 NAME
|
yading@10
|
2
|
yading@10
|
3 ffmpeg-devices - FFmpeg devices
|
yading@10
|
4
|
yading@10
|
5 =head1 DESCRIPTION
|
yading@10
|
6
|
yading@10
|
7
|
yading@10
|
8 This document describes the input and output devices provided by the
|
yading@10
|
9 libavdevice library.
|
yading@10
|
10
|
yading@10
|
11
|
yading@10
|
12
|
yading@10
|
13 =head1 DEVICE OPTIONS
|
yading@10
|
14
|
yading@10
|
15
|
yading@10
|
16 The libavdevice library provides the same interface as
|
yading@10
|
17 libavformat. Namely, an input device is considered like a demuxer, and
|
yading@10
|
18 an output device like a muxer, and the interface and generic device
|
yading@10
|
19 options are the same provided by libavformat (see the ffmpeg-formats
|
yading@10
|
20 manual).
|
yading@10
|
21
|
yading@10
|
22 In addition each input or output device may support so-called private
|
yading@10
|
23 options, which are specific for that component.
|
yading@10
|
24
|
yading@10
|
25 Options may be set by specifying -I<option> I<value> in the
|
yading@10
|
26 FFmpeg tools, or by setting the value explicitly in the device
|
yading@10
|
27 C<AVFormatContext> options or using the F<libavutil/opt.h> API
|
yading@10
|
28 for programmatic use.
|
yading@10
|
29
|
yading@10
|
30
|
yading@10
|
31
|
yading@10
|
32 =head1 INPUT DEVICES
|
yading@10
|
33
|
yading@10
|
34
|
yading@10
|
35 Input devices are configured elements in FFmpeg which allow to access
|
yading@10
|
36 the data coming from a multimedia device attached to your system.
|
yading@10
|
37
|
yading@10
|
38 When you configure your FFmpeg build, all the supported input devices
|
yading@10
|
39 are enabled by default. You can list all available ones using the
|
yading@10
|
40 configure option "--list-indevs".
|
yading@10
|
41
|
yading@10
|
42 You can disable all the input devices using the configure option
|
yading@10
|
43 "--disable-indevs", and selectively enable an input device using the
|
yading@10
|
44 option "--enable-indev=I<INDEV>", or you can disable a particular
|
yading@10
|
45 input device using the option "--disable-indev=I<INDEV>".
|
yading@10
|
46
|
yading@10
|
47 The option "-formats" of the ff* tools will display the list of
|
yading@10
|
48 supported input devices (amongst the demuxers).
|
yading@10
|
49
|
yading@10
|
50 A description of the currently available input devices follows.
|
yading@10
|
51
|
yading@10
|
52
|
yading@10
|
53 =head2 alsa
|
yading@10
|
54
|
yading@10
|
55
|
yading@10
|
56 ALSA (Advanced Linux Sound Architecture) input device.
|
yading@10
|
57
|
yading@10
|
58 To enable this input device during configuration you need libasound
|
yading@10
|
59 installed on your system.
|
yading@10
|
60
|
yading@10
|
61 This device allows capturing from an ALSA device. The name of the
|
yading@10
|
62 device to capture has to be an ALSA card identifier.
|
yading@10
|
63
|
yading@10
|
64 An ALSA identifier has the syntax:
|
yading@10
|
65
|
yading@10
|
66 hw:<CARD>[,<DEV>[,<SUBDEV>]]
|
yading@10
|
67
|
yading@10
|
68
|
yading@10
|
69 where the I<DEV> and I<SUBDEV> components are optional.
|
yading@10
|
70
|
yading@10
|
71 The three arguments (in order: I<CARD>,I<DEV>,I<SUBDEV>)
|
yading@10
|
72 specify card number or identifier, device number and subdevice number
|
yading@10
|
73 (-1 means any).
|
yading@10
|
74
|
yading@10
|
75 To see the list of cards currently recognized by your system check the
|
yading@10
|
76 files F</proc/asound/cards> and F</proc/asound/devices>.
|
yading@10
|
77
|
yading@10
|
78 For example to capture with B<ffmpeg> from an ALSA device with
|
yading@10
|
79 card id 0, you may run the command:
|
yading@10
|
80
|
yading@10
|
81 ffmpeg -f alsa -i hw:0 alsaout.wav
|
yading@10
|
82
|
yading@10
|
83
|
yading@10
|
84 For more information see:
|
yading@10
|
85 E<lt>B<http://www.alsa-project.org/alsa-doc/alsa-lib/pcm.html>E<gt>
|
yading@10
|
86
|
yading@10
|
87
|
yading@10
|
88 =head2 bktr
|
yading@10
|
89
|
yading@10
|
90
|
yading@10
|
91 BSD video input device.
|
yading@10
|
92
|
yading@10
|
93
|
yading@10
|
94 =head2 dshow
|
yading@10
|
95
|
yading@10
|
96
|
yading@10
|
97 Windows DirectShow input device.
|
yading@10
|
98
|
yading@10
|
99 DirectShow support is enabled when FFmpeg is built with the mingw-w64 project.
|
yading@10
|
100 Currently only audio and video devices are supported.
|
yading@10
|
101
|
yading@10
|
102 Multiple devices may be opened as separate inputs, but they may also be
|
yading@10
|
103 opened on the same input, which should improve synchronism between them.
|
yading@10
|
104
|
yading@10
|
105 The input name should be in the format:
|
yading@10
|
106
|
yading@10
|
107
|
yading@10
|
108 <TYPE>=<NAME>[:<TYPE>=<NAME>]
|
yading@10
|
109
|
yading@10
|
110
|
yading@10
|
111 where I<TYPE> can be either I<audio> or I<video>,
|
yading@10
|
112 and I<NAME> is the device's name.
|
yading@10
|
113
|
yading@10
|
114
|
yading@10
|
115 =head3 Options
|
yading@10
|
116
|
yading@10
|
117
|
yading@10
|
118 If no options are specified, the device's defaults are used.
|
yading@10
|
119 If the device does not support the requested options, it will
|
yading@10
|
120 fail to open.
|
yading@10
|
121
|
yading@10
|
122
|
yading@10
|
123 =over 4
|
yading@10
|
124
|
yading@10
|
125
|
yading@10
|
126
|
yading@10
|
127 =item B<video_size>
|
yading@10
|
128
|
yading@10
|
129 Set the video size in the captured video.
|
yading@10
|
130
|
yading@10
|
131
|
yading@10
|
132 =item B<framerate>
|
yading@10
|
133
|
yading@10
|
134 Set the frame rate in the captured video.
|
yading@10
|
135
|
yading@10
|
136
|
yading@10
|
137 =item B<sample_rate>
|
yading@10
|
138
|
yading@10
|
139 Set the sample rate (in Hz) of the captured audio.
|
yading@10
|
140
|
yading@10
|
141
|
yading@10
|
142 =item B<sample_size>
|
yading@10
|
143
|
yading@10
|
144 Set the sample size (in bits) of the captured audio.
|
yading@10
|
145
|
yading@10
|
146
|
yading@10
|
147 =item B<channels>
|
yading@10
|
148
|
yading@10
|
149 Set the number of channels in the captured audio.
|
yading@10
|
150
|
yading@10
|
151
|
yading@10
|
152 =item B<list_devices>
|
yading@10
|
153
|
yading@10
|
154 If set to B<true>, print a list of devices and exit.
|
yading@10
|
155
|
yading@10
|
156
|
yading@10
|
157 =item B<list_options>
|
yading@10
|
158
|
yading@10
|
159 If set to B<true>, print a list of selected device's options
|
yading@10
|
160 and exit.
|
yading@10
|
161
|
yading@10
|
162
|
yading@10
|
163 =item B<video_device_number>
|
yading@10
|
164
|
yading@10
|
165 Set video device number for devices with same name (starts at 0,
|
yading@10
|
166 defaults to 0).
|
yading@10
|
167
|
yading@10
|
168
|
yading@10
|
169 =item B<audio_device_number>
|
yading@10
|
170
|
yading@10
|
171 Set audio device number for devices with same name (starts at 0,
|
yading@10
|
172 defaults to 0).
|
yading@10
|
173
|
yading@10
|
174
|
yading@10
|
175 =item B<pixel_format>
|
yading@10
|
176
|
yading@10
|
177 Select pixel format to be used by DirectShow. This may only be set when
|
yading@10
|
178 the video codec is not set or set to rawvideo.
|
yading@10
|
179
|
yading@10
|
180
|
yading@10
|
181 =item B<audio_buffer_size>
|
yading@10
|
182
|
yading@10
|
183 Set audio device buffer size in milliseconds (which can directly
|
yading@10
|
184 impact latency, depending on the device).
|
yading@10
|
185 Defaults to using the audio device's
|
yading@10
|
186 default buffer size (typically some multiple of 500ms).
|
yading@10
|
187 Setting this value too low can degrade performance.
|
yading@10
|
188 See also
|
yading@10
|
189 E<lt>B<http://msdn.microsoft.com/en-us/library/windows/desktop/dd377582(v=vs.85).aspx>E<gt>
|
yading@10
|
190
|
yading@10
|
191
|
yading@10
|
192 =back
|
yading@10
|
193
|
yading@10
|
194
|
yading@10
|
195
|
yading@10
|
196 =head3 Examples
|
yading@10
|
197
|
yading@10
|
198
|
yading@10
|
199
|
yading@10
|
200 =over 4
|
yading@10
|
201
|
yading@10
|
202
|
yading@10
|
203
|
yading@10
|
204 =item *
|
yading@10
|
205
|
yading@10
|
206 Print the list of DirectShow supported devices and exit:
|
yading@10
|
207
|
yading@10
|
208 $ ffmpeg -list_devices true -f dshow -i dummy
|
yading@10
|
209
|
yading@10
|
210
|
yading@10
|
211
|
yading@10
|
212 =item *
|
yading@10
|
213
|
yading@10
|
214 Open video device I<Camera>:
|
yading@10
|
215
|
yading@10
|
216 $ ffmpeg -f dshow -i video="Camera"
|
yading@10
|
217
|
yading@10
|
218
|
yading@10
|
219
|
yading@10
|
220 =item *
|
yading@10
|
221
|
yading@10
|
222 Open second video device with name I<Camera>:
|
yading@10
|
223
|
yading@10
|
224 $ ffmpeg -f dshow -video_device_number 1 -i video="Camera"
|
yading@10
|
225
|
yading@10
|
226
|
yading@10
|
227
|
yading@10
|
228 =item *
|
yading@10
|
229
|
yading@10
|
230 Open video device I<Camera> and audio device I<Microphone>:
|
yading@10
|
231
|
yading@10
|
232 $ ffmpeg -f dshow -i video="Camera":audio="Microphone"
|
yading@10
|
233
|
yading@10
|
234
|
yading@10
|
235
|
yading@10
|
236 =item *
|
yading@10
|
237
|
yading@10
|
238 Print the list of supported options in selected device and exit:
|
yading@10
|
239
|
yading@10
|
240 $ ffmpeg -list_options true -f dshow -i video="Camera"
|
yading@10
|
241
|
yading@10
|
242
|
yading@10
|
243
|
yading@10
|
244 =back
|
yading@10
|
245
|
yading@10
|
246
|
yading@10
|
247
|
yading@10
|
248 =head2 dv1394
|
yading@10
|
249
|
yading@10
|
250
|
yading@10
|
251 Linux DV 1394 input device.
|
yading@10
|
252
|
yading@10
|
253
|
yading@10
|
254 =head2 fbdev
|
yading@10
|
255
|
yading@10
|
256
|
yading@10
|
257 Linux framebuffer input device.
|
yading@10
|
258
|
yading@10
|
259 The Linux framebuffer is a graphic hardware-independent abstraction
|
yading@10
|
260 layer to show graphics on a computer monitor, typically on the
|
yading@10
|
261 console. It is accessed through a file device node, usually
|
yading@10
|
262 F</dev/fb0>.
|
yading@10
|
263
|
yading@10
|
264 For more detailed information read the file
|
yading@10
|
265 Documentation/fb/framebuffer.txt included in the Linux source tree.
|
yading@10
|
266
|
yading@10
|
267 To record from the framebuffer device F</dev/fb0> with
|
yading@10
|
268 B<ffmpeg>:
|
yading@10
|
269
|
yading@10
|
270 ffmpeg -f fbdev -r 10 -i /dev/fb0 out.avi
|
yading@10
|
271
|
yading@10
|
272
|
yading@10
|
273 You can take a single screenshot image with the command:
|
yading@10
|
274
|
yading@10
|
275 ffmpeg -f fbdev -frames:v 1 -r 1 -i /dev/fb0 screenshot.jpeg
|
yading@10
|
276
|
yading@10
|
277
|
yading@10
|
278 See also E<lt>B<http://linux-fbdev.sourceforge.net/>E<gt>, and fbset(1).
|
yading@10
|
279
|
yading@10
|
280
|
yading@10
|
281 =head2 iec61883
|
yading@10
|
282
|
yading@10
|
283
|
yading@10
|
284 FireWire DV/HDV input device using libiec61883.
|
yading@10
|
285
|
yading@10
|
286 To enable this input device, you need libiec61883, libraw1394 and
|
yading@10
|
287 libavc1394 installed on your system. Use the configure option
|
yading@10
|
288 C<--enable-libiec61883> to compile with the device enabled.
|
yading@10
|
289
|
yading@10
|
290 The iec61883 capture device supports capturing from a video device
|
yading@10
|
291 connected via IEEE1394 (FireWire), using libiec61883 and the new Linux
|
yading@10
|
292 FireWire stack (juju). This is the default DV/HDV input method in Linux
|
yading@10
|
293 Kernel 2.6.37 and later, since the old FireWire stack was removed.
|
yading@10
|
294
|
yading@10
|
295 Specify the FireWire port to be used as input file, or "auto"
|
yading@10
|
296 to choose the first port connected.
|
yading@10
|
297
|
yading@10
|
298
|
yading@10
|
299 =head3 Options
|
yading@10
|
300
|
yading@10
|
301
|
yading@10
|
302
|
yading@10
|
303 =over 4
|
yading@10
|
304
|
yading@10
|
305
|
yading@10
|
306
|
yading@10
|
307 =item B<dvtype>
|
yading@10
|
308
|
yading@10
|
309 Override autodetection of DV/HDV. This should only be used if auto
|
yading@10
|
310 detection does not work, or if usage of a different device type
|
yading@10
|
311 should be prohibited. Treating a DV device as HDV (or vice versa) will
|
yading@10
|
312 not work and result in undefined behavior.
|
yading@10
|
313 The values B<auto>, B<dv> and B<hdv> are supported.
|
yading@10
|
314
|
yading@10
|
315
|
yading@10
|
316 =item B<dvbuffer>
|
yading@10
|
317
|
yading@10
|
318 Set maxiumum size of buffer for incoming data, in frames. For DV, this
|
yading@10
|
319 is an exact value. For HDV, it is not frame exact, since HDV does
|
yading@10
|
320 not have a fixed frame size.
|
yading@10
|
321
|
yading@10
|
322
|
yading@10
|
323 =item B<dvguid>
|
yading@10
|
324
|
yading@10
|
325 Select the capture device by specifying it's GUID. Capturing will only
|
yading@10
|
326 be performed from the specified device and fails if no device with the
|
yading@10
|
327 given GUID is found. This is useful to select the input if multiple
|
yading@10
|
328 devices are connected at the same time.
|
yading@10
|
329 Look at /sys/bus/firewire/devices to find out the GUIDs.
|
yading@10
|
330
|
yading@10
|
331
|
yading@10
|
332 =back
|
yading@10
|
333
|
yading@10
|
334
|
yading@10
|
335
|
yading@10
|
336 =head3 Examples
|
yading@10
|
337
|
yading@10
|
338
|
yading@10
|
339
|
yading@10
|
340 =over 4
|
yading@10
|
341
|
yading@10
|
342
|
yading@10
|
343
|
yading@10
|
344 =item *
|
yading@10
|
345
|
yading@10
|
346 Grab and show the input of a FireWire DV/HDV device.
|
yading@10
|
347
|
yading@10
|
348 ffplay -f iec61883 -i auto
|
yading@10
|
349
|
yading@10
|
350
|
yading@10
|
351
|
yading@10
|
352 =item *
|
yading@10
|
353
|
yading@10
|
354 Grab and record the input of a FireWire DV/HDV device,
|
yading@10
|
355 using a packet buffer of 100000 packets if the source is HDV.
|
yading@10
|
356
|
yading@10
|
357 ffmpeg -f iec61883 -i auto -hdvbuffer 100000 out.mpg
|
yading@10
|
358
|
yading@10
|
359
|
yading@10
|
360
|
yading@10
|
361 =back
|
yading@10
|
362
|
yading@10
|
363
|
yading@10
|
364
|
yading@10
|
365 =head2 jack
|
yading@10
|
366
|
yading@10
|
367
|
yading@10
|
368 JACK input device.
|
yading@10
|
369
|
yading@10
|
370 To enable this input device during configuration you need libjack
|
yading@10
|
371 installed on your system.
|
yading@10
|
372
|
yading@10
|
373 A JACK input device creates one or more JACK writable clients, one for
|
yading@10
|
374 each audio channel, with name I<client_name>:input_I<N>, where
|
yading@10
|
375 I<client_name> is the name provided by the application, and I<N>
|
yading@10
|
376 is a number which identifies the channel.
|
yading@10
|
377 Each writable client will send the acquired data to the FFmpeg input
|
yading@10
|
378 device.
|
yading@10
|
379
|
yading@10
|
380 Once you have created one or more JACK readable clients, you need to
|
yading@10
|
381 connect them to one or more JACK writable clients.
|
yading@10
|
382
|
yading@10
|
383 To connect or disconnect JACK clients you can use the B<jack_connect>
|
yading@10
|
384 and B<jack_disconnect> programs, or do it through a graphical interface,
|
yading@10
|
385 for example with B<qjackctl>.
|
yading@10
|
386
|
yading@10
|
387 To list the JACK clients and their properties you can invoke the command
|
yading@10
|
388 B<jack_lsp>.
|
yading@10
|
389
|
yading@10
|
390 Follows an example which shows how to capture a JACK readable client
|
yading@10
|
391 with B<ffmpeg>.
|
yading@10
|
392
|
yading@10
|
393 # Create a JACK writable client with name "ffmpeg".
|
yading@10
|
394 $ ffmpeg -f jack -i ffmpeg -y out.wav
|
yading@10
|
395
|
yading@10
|
396 # Start the sample jack_metro readable client.
|
yading@10
|
397 $ jack_metro -b 120 -d 0.2 -f 4000
|
yading@10
|
398
|
yading@10
|
399 # List the current JACK clients.
|
yading@10
|
400 $ jack_lsp -c
|
yading@10
|
401 system:capture_1
|
yading@10
|
402 system:capture_2
|
yading@10
|
403 system:playback_1
|
yading@10
|
404 system:playback_2
|
yading@10
|
405 ffmpeg:input_1
|
yading@10
|
406 metro:120_bpm
|
yading@10
|
407
|
yading@10
|
408 # Connect metro to the ffmpeg writable client.
|
yading@10
|
409 $ jack_connect metro:120_bpm ffmpeg:input_1
|
yading@10
|
410
|
yading@10
|
411
|
yading@10
|
412 For more information read:
|
yading@10
|
413 E<lt>B<http://jackaudio.org/>E<gt>
|
yading@10
|
414
|
yading@10
|
415
|
yading@10
|
416 =head2 lavfi
|
yading@10
|
417
|
yading@10
|
418
|
yading@10
|
419 Libavfilter input virtual device.
|
yading@10
|
420
|
yading@10
|
421 This input device reads data from the open output pads of a libavfilter
|
yading@10
|
422 filtergraph.
|
yading@10
|
423
|
yading@10
|
424 For each filtergraph open output, the input device will create a
|
yading@10
|
425 corresponding stream which is mapped to the generated output. Currently
|
yading@10
|
426 only video data is supported. The filtergraph is specified through the
|
yading@10
|
427 option B<graph>.
|
yading@10
|
428
|
yading@10
|
429
|
yading@10
|
430 =head3 Options
|
yading@10
|
431
|
yading@10
|
432
|
yading@10
|
433
|
yading@10
|
434 =over 4
|
yading@10
|
435
|
yading@10
|
436
|
yading@10
|
437
|
yading@10
|
438 =item B<graph>
|
yading@10
|
439
|
yading@10
|
440 Specify the filtergraph to use as input. Each video open output must be
|
yading@10
|
441 labelled by a unique string of the form "outI<N>", where I<N> is a
|
yading@10
|
442 number starting from 0 corresponding to the mapped input stream
|
yading@10
|
443 generated by the device.
|
yading@10
|
444 The first unlabelled output is automatically assigned to the "out0"
|
yading@10
|
445 label, but all the others need to be specified explicitly.
|
yading@10
|
446
|
yading@10
|
447 If not specified defaults to the filename specified for the input
|
yading@10
|
448 device.
|
yading@10
|
449
|
yading@10
|
450
|
yading@10
|
451 =item B<graph_file>
|
yading@10
|
452
|
yading@10
|
453 Set the filename of the filtergraph to be read and sent to the other
|
yading@10
|
454 filters. Syntax of the filtergraph is the same as the one specified by
|
yading@10
|
455 the option I<graph>.
|
yading@10
|
456
|
yading@10
|
457
|
yading@10
|
458 =back
|
yading@10
|
459
|
yading@10
|
460
|
yading@10
|
461
|
yading@10
|
462 =head3 Examples
|
yading@10
|
463
|
yading@10
|
464
|
yading@10
|
465
|
yading@10
|
466 =over 4
|
yading@10
|
467
|
yading@10
|
468
|
yading@10
|
469 =item *
|
yading@10
|
470
|
yading@10
|
471 Create a color video stream and play it back with B<ffplay>:
|
yading@10
|
472
|
yading@10
|
473 ffplay -f lavfi -graph "color=c=pink [out0]" dummy
|
yading@10
|
474
|
yading@10
|
475
|
yading@10
|
476
|
yading@10
|
477 =item *
|
yading@10
|
478
|
yading@10
|
479 As the previous example, but use filename for specifying the graph
|
yading@10
|
480 description, and omit the "out0" label:
|
yading@10
|
481
|
yading@10
|
482 ffplay -f lavfi color=c=pink
|
yading@10
|
483
|
yading@10
|
484
|
yading@10
|
485
|
yading@10
|
486 =item *
|
yading@10
|
487
|
yading@10
|
488 Create three different video test filtered sources and play them:
|
yading@10
|
489
|
yading@10
|
490 ffplay -f lavfi -graph "testsrc [out0]; testsrc,hflip [out1]; testsrc,negate [out2]" test3
|
yading@10
|
491
|
yading@10
|
492
|
yading@10
|
493
|
yading@10
|
494 =item *
|
yading@10
|
495
|
yading@10
|
496 Read an audio stream from a file using the amovie source and play it
|
yading@10
|
497 back with B<ffplay>:
|
yading@10
|
498
|
yading@10
|
499 ffplay -f lavfi "amovie=test.wav"
|
yading@10
|
500
|
yading@10
|
501
|
yading@10
|
502
|
yading@10
|
503 =item *
|
yading@10
|
504
|
yading@10
|
505 Read an audio stream and a video stream and play it back with
|
yading@10
|
506 B<ffplay>:
|
yading@10
|
507
|
yading@10
|
508 ffplay -f lavfi "movie=test.avi[out0];amovie=test.wav[out1]"
|
yading@10
|
509
|
yading@10
|
510
|
yading@10
|
511
|
yading@10
|
512 =back
|
yading@10
|
513
|
yading@10
|
514
|
yading@10
|
515
|
yading@10
|
516 =head2 libdc1394
|
yading@10
|
517
|
yading@10
|
518
|
yading@10
|
519 IIDC1394 input device, based on libdc1394 and libraw1394.
|
yading@10
|
520
|
yading@10
|
521
|
yading@10
|
522 =head2 openal
|
yading@10
|
523
|
yading@10
|
524
|
yading@10
|
525 The OpenAL input device provides audio capture on all systems with a
|
yading@10
|
526 working OpenAL 1.1 implementation.
|
yading@10
|
527
|
yading@10
|
528 To enable this input device during configuration, you need OpenAL
|
yading@10
|
529 headers and libraries installed on your system, and need to configure
|
yading@10
|
530 FFmpeg with C<--enable-openal>.
|
yading@10
|
531
|
yading@10
|
532 OpenAL headers and libraries should be provided as part of your OpenAL
|
yading@10
|
533 implementation, or as an additional download (an SDK). Depending on your
|
yading@10
|
534 installation you may need to specify additional flags via the
|
yading@10
|
535 C<--extra-cflags> and C<--extra-ldflags> for allowing the build
|
yading@10
|
536 system to locate the OpenAL headers and libraries.
|
yading@10
|
537
|
yading@10
|
538 An incomplete list of OpenAL implementations follows:
|
yading@10
|
539
|
yading@10
|
540
|
yading@10
|
541 =over 4
|
yading@10
|
542
|
yading@10
|
543
|
yading@10
|
544 =item B<Creative>
|
yading@10
|
545
|
yading@10
|
546 The official Windows implementation, providing hardware acceleration
|
yading@10
|
547 with supported devices and software fallback.
|
yading@10
|
548 See E<lt>B<http://openal.org/>E<gt>.
|
yading@10
|
549
|
yading@10
|
550 =item B<OpenAL Soft>
|
yading@10
|
551
|
yading@10
|
552 Portable, open source (LGPL) software implementation. Includes
|
yading@10
|
553 backends for the most common sound APIs on the Windows, Linux,
|
yading@10
|
554 Solaris, and BSD operating systems.
|
yading@10
|
555 See E<lt>B<http://kcat.strangesoft.net/openal.html>E<gt>.
|
yading@10
|
556
|
yading@10
|
557 =item B<Apple>
|
yading@10
|
558
|
yading@10
|
559 OpenAL is part of Core Audio, the official Mac OS X Audio interface.
|
yading@10
|
560 See E<lt>B<http://developer.apple.com/technologies/mac/audio-and-video.html>E<gt>
|
yading@10
|
561
|
yading@10
|
562 =back
|
yading@10
|
563
|
yading@10
|
564
|
yading@10
|
565 This device allows to capture from an audio input device handled
|
yading@10
|
566 through OpenAL.
|
yading@10
|
567
|
yading@10
|
568 You need to specify the name of the device to capture in the provided
|
yading@10
|
569 filename. If the empty string is provided, the device will
|
yading@10
|
570 automatically select the default device. You can get the list of the
|
yading@10
|
571 supported devices by using the option I<list_devices>.
|
yading@10
|
572
|
yading@10
|
573
|
yading@10
|
574 =head3 Options
|
yading@10
|
575
|
yading@10
|
576
|
yading@10
|
577
|
yading@10
|
578 =over 4
|
yading@10
|
579
|
yading@10
|
580
|
yading@10
|
581
|
yading@10
|
582 =item B<channels>
|
yading@10
|
583
|
yading@10
|
584 Set the number of channels in the captured audio. Only the values
|
yading@10
|
585 B<1> (monaural) and B<2> (stereo) are currently supported.
|
yading@10
|
586 Defaults to B<2>.
|
yading@10
|
587
|
yading@10
|
588
|
yading@10
|
589 =item B<sample_size>
|
yading@10
|
590
|
yading@10
|
591 Set the sample size (in bits) of the captured audio. Only the values
|
yading@10
|
592 B<8> and B<16> are currently supported. Defaults to
|
yading@10
|
593 B<16>.
|
yading@10
|
594
|
yading@10
|
595
|
yading@10
|
596 =item B<sample_rate>
|
yading@10
|
597
|
yading@10
|
598 Set the sample rate (in Hz) of the captured audio.
|
yading@10
|
599 Defaults to B<44.1k>.
|
yading@10
|
600
|
yading@10
|
601
|
yading@10
|
602 =item B<list_devices>
|
yading@10
|
603
|
yading@10
|
604 If set to B<true>, print a list of devices and exit.
|
yading@10
|
605 Defaults to B<false>.
|
yading@10
|
606
|
yading@10
|
607
|
yading@10
|
608 =back
|
yading@10
|
609
|
yading@10
|
610
|
yading@10
|
611
|
yading@10
|
612 =head3 Examples
|
yading@10
|
613
|
yading@10
|
614
|
yading@10
|
615 Print the list of OpenAL supported devices and exit:
|
yading@10
|
616
|
yading@10
|
617 $ ffmpeg -list_devices true -f openal -i dummy out.ogg
|
yading@10
|
618
|
yading@10
|
619
|
yading@10
|
620 Capture from the OpenAL device F<DR-BT101 via PulseAudio>:
|
yading@10
|
621
|
yading@10
|
622 $ ffmpeg -f openal -i 'DR-BT101 via PulseAudio' out.ogg
|
yading@10
|
623
|
yading@10
|
624
|
yading@10
|
625 Capture from the default device (note the empty string '' as filename):
|
yading@10
|
626
|
yading@10
|
627 $ ffmpeg -f openal -i '' out.ogg
|
yading@10
|
628
|
yading@10
|
629
|
yading@10
|
630 Capture from two devices simultaneously, writing to two different files,
|
yading@10
|
631 within the same B<ffmpeg> command:
|
yading@10
|
632
|
yading@10
|
633 $ ffmpeg -f openal -i 'DR-BT101 via PulseAudio' out1.ogg -f openal -i 'ALSA Default' out2.ogg
|
yading@10
|
634
|
yading@10
|
635 Note: not all OpenAL implementations support multiple simultaneous capture -
|
yading@10
|
636 try the latest OpenAL Soft if the above does not work.
|
yading@10
|
637
|
yading@10
|
638
|
yading@10
|
639 =head2 oss
|
yading@10
|
640
|
yading@10
|
641
|
yading@10
|
642 Open Sound System input device.
|
yading@10
|
643
|
yading@10
|
644 The filename to provide to the input device is the device node
|
yading@10
|
645 representing the OSS input device, and is usually set to
|
yading@10
|
646 F</dev/dsp>.
|
yading@10
|
647
|
yading@10
|
648 For example to grab from F</dev/dsp> using B<ffmpeg> use the
|
yading@10
|
649 command:
|
yading@10
|
650
|
yading@10
|
651 ffmpeg -f oss -i /dev/dsp /tmp/oss.wav
|
yading@10
|
652
|
yading@10
|
653
|
yading@10
|
654 For more information about OSS see:
|
yading@10
|
655 E<lt>B<http://manuals.opensound.com/usersguide/dsp.html>E<gt>
|
yading@10
|
656
|
yading@10
|
657
|
yading@10
|
658 =head2 pulse
|
yading@10
|
659
|
yading@10
|
660
|
yading@10
|
661 pulseaudio input device.
|
yading@10
|
662
|
yading@10
|
663 To enable this input device during configuration you need libpulse-simple
|
yading@10
|
664 installed in your system.
|
yading@10
|
665
|
yading@10
|
666 The filename to provide to the input device is a source device or the
|
yading@10
|
667 string "default"
|
yading@10
|
668
|
yading@10
|
669 To list the pulse source devices and their properties you can invoke
|
yading@10
|
670 the command B<pactl list sources>.
|
yading@10
|
671
|
yading@10
|
672
|
yading@10
|
673 ffmpeg -f pulse -i default /tmp/pulse.wav
|
yading@10
|
674
|
yading@10
|
675
|
yading@10
|
676
|
yading@10
|
677 =head3 I<server> AVOption
|
yading@10
|
678
|
yading@10
|
679
|
yading@10
|
680 The syntax is:
|
yading@10
|
681
|
yading@10
|
682 -server <server name>
|
yading@10
|
683
|
yading@10
|
684
|
yading@10
|
685 Connects to a specific server.
|
yading@10
|
686
|
yading@10
|
687
|
yading@10
|
688 =head3 I<name> AVOption
|
yading@10
|
689
|
yading@10
|
690
|
yading@10
|
691 The syntax is:
|
yading@10
|
692
|
yading@10
|
693 -name <application name>
|
yading@10
|
694
|
yading@10
|
695
|
yading@10
|
696 Specify the application name pulse will use when showing active clients,
|
yading@10
|
697 by default it is the LIBAVFORMAT_IDENT string
|
yading@10
|
698
|
yading@10
|
699
|
yading@10
|
700 =head3 I<stream_name> AVOption
|
yading@10
|
701
|
yading@10
|
702
|
yading@10
|
703 The syntax is:
|
yading@10
|
704
|
yading@10
|
705 -stream_name <stream name>
|
yading@10
|
706
|
yading@10
|
707
|
yading@10
|
708 Specify the stream name pulse will use when showing active streams,
|
yading@10
|
709 by default it is "record"
|
yading@10
|
710
|
yading@10
|
711
|
yading@10
|
712 =head3 I<sample_rate> AVOption
|
yading@10
|
713
|
yading@10
|
714
|
yading@10
|
715 The syntax is:
|
yading@10
|
716
|
yading@10
|
717 -sample_rate <samplerate>
|
yading@10
|
718
|
yading@10
|
719
|
yading@10
|
720 Specify the samplerate in Hz, by default 48kHz is used.
|
yading@10
|
721
|
yading@10
|
722
|
yading@10
|
723 =head3 I<channels> AVOption
|
yading@10
|
724
|
yading@10
|
725
|
yading@10
|
726 The syntax is:
|
yading@10
|
727
|
yading@10
|
728 -channels <N>
|
yading@10
|
729
|
yading@10
|
730
|
yading@10
|
731 Specify the channels in use, by default 2 (stereo) is set.
|
yading@10
|
732
|
yading@10
|
733
|
yading@10
|
734 =head3 I<frame_size> AVOption
|
yading@10
|
735
|
yading@10
|
736
|
yading@10
|
737 The syntax is:
|
yading@10
|
738
|
yading@10
|
739 -frame_size <bytes>
|
yading@10
|
740
|
yading@10
|
741
|
yading@10
|
742 Specify the number of byte per frame, by default it is set to 1024.
|
yading@10
|
743
|
yading@10
|
744
|
yading@10
|
745 =head3 I<fragment_size> AVOption
|
yading@10
|
746
|
yading@10
|
747
|
yading@10
|
748 The syntax is:
|
yading@10
|
749
|
yading@10
|
750 -fragment_size <bytes>
|
yading@10
|
751
|
yading@10
|
752
|
yading@10
|
753 Specify the minimal buffering fragment in pulseaudio, it will affect the
|
yading@10
|
754 audio latency. By default it is unset.
|
yading@10
|
755
|
yading@10
|
756
|
yading@10
|
757 =head2 sndio
|
yading@10
|
758
|
yading@10
|
759
|
yading@10
|
760 sndio input device.
|
yading@10
|
761
|
yading@10
|
762 To enable this input device during configuration you need libsndio
|
yading@10
|
763 installed on your system.
|
yading@10
|
764
|
yading@10
|
765 The filename to provide to the input device is the device node
|
yading@10
|
766 representing the sndio input device, and is usually set to
|
yading@10
|
767 F</dev/audio0>.
|
yading@10
|
768
|
yading@10
|
769 For example to grab from F</dev/audio0> using B<ffmpeg> use the
|
yading@10
|
770 command:
|
yading@10
|
771
|
yading@10
|
772 ffmpeg -f sndio -i /dev/audio0 /tmp/oss.wav
|
yading@10
|
773
|
yading@10
|
774
|
yading@10
|
775
|
yading@10
|
776 =head2 video4linux2, v4l2
|
yading@10
|
777
|
yading@10
|
778
|
yading@10
|
779 Video4Linux2 input video device.
|
yading@10
|
780
|
yading@10
|
781 "v4l2" can be used as alias for "video4linux2".
|
yading@10
|
782
|
yading@10
|
783 If FFmpeg is built with v4l-utils support (by using the
|
yading@10
|
784 C<--enable-libv4l2> configure option), the device will always rely
|
yading@10
|
785 on libv4l2.
|
yading@10
|
786
|
yading@10
|
787 The name of the device to grab is a file device node, usually Linux
|
yading@10
|
788 systems tend to automatically create such nodes when the device
|
yading@10
|
789 (e.g. an USB webcam) is plugged into the system, and has a name of the
|
yading@10
|
790 kind F</dev/videoI<N>>, where I<N> is a number associated to
|
yading@10
|
791 the device.
|
yading@10
|
792
|
yading@10
|
793 Video4Linux2 devices usually support a limited set of
|
yading@10
|
794 I<width>xI<height> sizes and frame rates. You can check which are
|
yading@10
|
795 supported using B<-list_formats all> for Video4Linux2 devices.
|
yading@10
|
796 Some devices, like TV cards, support one or more standards. It is possible
|
yading@10
|
797 to list all the supported standards using B<-list_standards all>.
|
yading@10
|
798
|
yading@10
|
799 The time base for the timestamps is 1 microsecond. Depending on the kernel
|
yading@10
|
800 version and configuration, the timestamps may be derived from the real time
|
yading@10
|
801 clock (origin at the Unix Epoch) or the monotonic clock (origin usually at
|
yading@10
|
802 boot time, unaffected by NTP or manual changes to the clock). The
|
yading@10
|
803 B<-timestamps abs> or B<-ts abs> option can be used to force
|
yading@10
|
804 conversion into the real time clock.
|
yading@10
|
805
|
yading@10
|
806 Some usage examples of the video4linux2 device with B<ffmpeg>
|
yading@10
|
807 and B<ffplay>:
|
yading@10
|
808
|
yading@10
|
809 =over 4
|
yading@10
|
810
|
yading@10
|
811
|
yading@10
|
812 =item *
|
yading@10
|
813
|
yading@10
|
814 Grab and show the input of a video4linux2 device:
|
yading@10
|
815
|
yading@10
|
816 ffplay -f video4linux2 -framerate 30 -video_size hd720 /dev/video0
|
yading@10
|
817
|
yading@10
|
818
|
yading@10
|
819
|
yading@10
|
820 =item *
|
yading@10
|
821
|
yading@10
|
822 Grab and record the input of a video4linux2 device, leave the
|
yading@10
|
823 frame rate and size as previously set:
|
yading@10
|
824
|
yading@10
|
825 ffmpeg -f video4linux2 -input_format mjpeg -i /dev/video0 out.mpeg
|
yading@10
|
826
|
yading@10
|
827
|
yading@10
|
828 =back
|
yading@10
|
829
|
yading@10
|
830
|
yading@10
|
831 For more information about Video4Linux, check E<lt>B<http://linuxtv.org/>E<gt>.
|
yading@10
|
832
|
yading@10
|
833
|
yading@10
|
834 =head3 Options
|
yading@10
|
835
|
yading@10
|
836
|
yading@10
|
837
|
yading@10
|
838 =over 4
|
yading@10
|
839
|
yading@10
|
840
|
yading@10
|
841 =item B<standard>
|
yading@10
|
842
|
yading@10
|
843 Set the standard. Must be the name of a supported standard. To get a
|
yading@10
|
844 list of the supported standards, use the B<list_standards>
|
yading@10
|
845 option.
|
yading@10
|
846
|
yading@10
|
847
|
yading@10
|
848 =item B<channel>
|
yading@10
|
849
|
yading@10
|
850 Set the input channel number. Default to -1, which means using the
|
yading@10
|
851 previously selected channel.
|
yading@10
|
852
|
yading@10
|
853
|
yading@10
|
854 =item B<video_size>
|
yading@10
|
855
|
yading@10
|
856 Set the video frame size. The argument must be a string in the form
|
yading@10
|
857 I<WIDTH>xI<HEIGHT> or a valid size abbreviation.
|
yading@10
|
858
|
yading@10
|
859
|
yading@10
|
860 =item B<pixel_format>
|
yading@10
|
861
|
yading@10
|
862 Select the pixel format (only valid for raw video input).
|
yading@10
|
863
|
yading@10
|
864
|
yading@10
|
865 =item B<input_format>
|
yading@10
|
866
|
yading@10
|
867 Set the preferred pixel format (for raw video) or a codec name.
|
yading@10
|
868 This option allows to select the input format, when several are
|
yading@10
|
869 available.
|
yading@10
|
870
|
yading@10
|
871
|
yading@10
|
872 =item B<framerate>
|
yading@10
|
873
|
yading@10
|
874 Set the preferred video frame rate.
|
yading@10
|
875
|
yading@10
|
876
|
yading@10
|
877 =item B<list_formats>
|
yading@10
|
878
|
yading@10
|
879 List available formats (supported pixel formats, codecs, and frame
|
yading@10
|
880 sizes) and exit.
|
yading@10
|
881
|
yading@10
|
882 Available values are:
|
yading@10
|
883
|
yading@10
|
884 =over 4
|
yading@10
|
885
|
yading@10
|
886
|
yading@10
|
887 =item B<all>
|
yading@10
|
888
|
yading@10
|
889 Show all available (compressed and non-compressed) formats.
|
yading@10
|
890
|
yading@10
|
891
|
yading@10
|
892 =item B<raw>
|
yading@10
|
893
|
yading@10
|
894 Show only raw video (non-compressed) formats.
|
yading@10
|
895
|
yading@10
|
896
|
yading@10
|
897 =item B<compressed>
|
yading@10
|
898
|
yading@10
|
899 Show only compressed formats.
|
yading@10
|
900
|
yading@10
|
901 =back
|
yading@10
|
902
|
yading@10
|
903
|
yading@10
|
904
|
yading@10
|
905 =item B<list_standards>
|
yading@10
|
906
|
yading@10
|
907 List supported standards and exit.
|
yading@10
|
908
|
yading@10
|
909 Available values are:
|
yading@10
|
910
|
yading@10
|
911 =over 4
|
yading@10
|
912
|
yading@10
|
913
|
yading@10
|
914 =item B<all>
|
yading@10
|
915
|
yading@10
|
916 Show all supported standards.
|
yading@10
|
917
|
yading@10
|
918 =back
|
yading@10
|
919
|
yading@10
|
920
|
yading@10
|
921
|
yading@10
|
922 =item B<timestamps, ts>
|
yading@10
|
923
|
yading@10
|
924 Set type of timestamps for grabbed frames.
|
yading@10
|
925
|
yading@10
|
926 Available values are:
|
yading@10
|
927
|
yading@10
|
928 =over 4
|
yading@10
|
929
|
yading@10
|
930
|
yading@10
|
931 =item B<default>
|
yading@10
|
932
|
yading@10
|
933 Use timestamps from the kernel.
|
yading@10
|
934
|
yading@10
|
935
|
yading@10
|
936 =item B<abs>
|
yading@10
|
937
|
yading@10
|
938 Use absolute timestamps (wall clock).
|
yading@10
|
939
|
yading@10
|
940
|
yading@10
|
941 =item B<mono2abs>
|
yading@10
|
942
|
yading@10
|
943 Force conversion from monotonic to absolute timestamps.
|
yading@10
|
944
|
yading@10
|
945 =back
|
yading@10
|
946
|
yading@10
|
947
|
yading@10
|
948 Default value is C<default>.
|
yading@10
|
949
|
yading@10
|
950 =back
|
yading@10
|
951
|
yading@10
|
952
|
yading@10
|
953
|
yading@10
|
954 =head2 vfwcap
|
yading@10
|
955
|
yading@10
|
956
|
yading@10
|
957 VfW (Video for Windows) capture input device.
|
yading@10
|
958
|
yading@10
|
959 The filename passed as input is the capture driver number, ranging from
|
yading@10
|
960 0 to 9. You may use "list" as filename to print a list of drivers. Any
|
yading@10
|
961 other filename will be interpreted as device number 0.
|
yading@10
|
962
|
yading@10
|
963
|
yading@10
|
964 =head2 x11grab
|
yading@10
|
965
|
yading@10
|
966
|
yading@10
|
967 X11 video input device.
|
yading@10
|
968
|
yading@10
|
969 This device allows to capture a region of an X11 display.
|
yading@10
|
970
|
yading@10
|
971 The filename passed as input has the syntax:
|
yading@10
|
972
|
yading@10
|
973 [<hostname>]:<display_number>.<screen_number>[+<x_offset>,<y_offset>]
|
yading@10
|
974
|
yading@10
|
975
|
yading@10
|
976 I<hostname>:I<display_number>.I<screen_number> specifies the
|
yading@10
|
977 X11 display name of the screen to grab from. I<hostname> can be
|
yading@10
|
978 omitted, and defaults to "localhost". The environment variable
|
yading@10
|
979 B<DISPLAY> contains the default display name.
|
yading@10
|
980
|
yading@10
|
981 I<x_offset> and I<y_offset> specify the offsets of the grabbed
|
yading@10
|
982 area with respect to the top-left border of the X11 screen. They
|
yading@10
|
983 default to 0.
|
yading@10
|
984
|
yading@10
|
985 Check the X11 documentation (e.g. man X) for more detailed information.
|
yading@10
|
986
|
yading@10
|
987 Use the B<dpyinfo> program for getting basic information about the
|
yading@10
|
988 properties of your X11 display (e.g. grep for "name" or "dimensions").
|
yading@10
|
989
|
yading@10
|
990 For example to grab from F<:0.0> using B<ffmpeg>:
|
yading@10
|
991
|
yading@10
|
992 ffmpeg -f x11grab -r 25 -s cif -i :0.0 out.mpg
|
yading@10
|
993
|
yading@10
|
994
|
yading@10
|
995 Grab at position C<10,20>:
|
yading@10
|
996
|
yading@10
|
997 ffmpeg -f x11grab -r 25 -s cif -i :0.0+10,20 out.mpg
|
yading@10
|
998
|
yading@10
|
999
|
yading@10
|
1000
|
yading@10
|
1001 =head3 Options
|
yading@10
|
1002
|
yading@10
|
1003
|
yading@10
|
1004
|
yading@10
|
1005 =over 4
|
yading@10
|
1006
|
yading@10
|
1007
|
yading@10
|
1008 =item B<draw_mouse>
|
yading@10
|
1009
|
yading@10
|
1010 Specify whether to draw the mouse pointer. A value of C<0> specify
|
yading@10
|
1011 not to draw the pointer. Default value is C<1>.
|
yading@10
|
1012
|
yading@10
|
1013
|
yading@10
|
1014 =item B<follow_mouse>
|
yading@10
|
1015
|
yading@10
|
1016 Make the grabbed area follow the mouse. The argument can be
|
yading@10
|
1017 C<centered> or a number of pixels I<PIXELS>.
|
yading@10
|
1018
|
yading@10
|
1019 When it is specified with "centered", the grabbing region follows the mouse
|
yading@10
|
1020 pointer and keeps the pointer at the center of region; otherwise, the region
|
yading@10
|
1021 follows only when the mouse pointer reaches within I<PIXELS> (greater than
|
yading@10
|
1022 zero) to the edge of region.
|
yading@10
|
1023
|
yading@10
|
1024 For example:
|
yading@10
|
1025
|
yading@10
|
1026 ffmpeg -f x11grab -follow_mouse centered -r 25 -s cif -i :0.0 out.mpg
|
yading@10
|
1027
|
yading@10
|
1028
|
yading@10
|
1029 To follow only when the mouse pointer reaches within 100 pixels to edge:
|
yading@10
|
1030
|
yading@10
|
1031 ffmpeg -f x11grab -follow_mouse 100 -r 25 -s cif -i :0.0 out.mpg
|
yading@10
|
1032
|
yading@10
|
1033
|
yading@10
|
1034
|
yading@10
|
1035 =item B<framerate>
|
yading@10
|
1036
|
yading@10
|
1037 Set the grabbing frame rate. Default value is C<ntsc>,
|
yading@10
|
1038 corresponding to a frame rate of C<30000/1001>.
|
yading@10
|
1039
|
yading@10
|
1040
|
yading@10
|
1041 =item B<show_region>
|
yading@10
|
1042
|
yading@10
|
1043 Show grabbed region on screen.
|
yading@10
|
1044
|
yading@10
|
1045 If I<show_region> is specified with C<1>, then the grabbing
|
yading@10
|
1046 region will be indicated on screen. With this option, it is easy to
|
yading@10
|
1047 know what is being grabbed if only a portion of the screen is grabbed.
|
yading@10
|
1048
|
yading@10
|
1049 For example:
|
yading@10
|
1050
|
yading@10
|
1051 ffmpeg -f x11grab -show_region 1 -r 25 -s cif -i :0.0+10,20 out.mpg
|
yading@10
|
1052
|
yading@10
|
1053
|
yading@10
|
1054 With I<follow_mouse>:
|
yading@10
|
1055
|
yading@10
|
1056 ffmpeg -f x11grab -follow_mouse centered -show_region 1 -r 25 -s cif -i :0.0 out.mpg
|
yading@10
|
1057
|
yading@10
|
1058
|
yading@10
|
1059
|
yading@10
|
1060 =item B<video_size>
|
yading@10
|
1061
|
yading@10
|
1062 Set the video frame size. Default value is C<vga>.
|
yading@10
|
1063
|
yading@10
|
1064 =back
|
yading@10
|
1065
|
yading@10
|
1066
|
yading@10
|
1067
|
yading@10
|
1068 =head1 OUTPUT DEVICES
|
yading@10
|
1069
|
yading@10
|
1070
|
yading@10
|
1071 Output devices are configured elements in FFmpeg which allow to write
|
yading@10
|
1072 multimedia data to an output device attached to your system.
|
yading@10
|
1073
|
yading@10
|
1074 When you configure your FFmpeg build, all the supported output devices
|
yading@10
|
1075 are enabled by default. You can list all available ones using the
|
yading@10
|
1076 configure option "--list-outdevs".
|
yading@10
|
1077
|
yading@10
|
1078 You can disable all the output devices using the configure option
|
yading@10
|
1079 "--disable-outdevs", and selectively enable an output device using the
|
yading@10
|
1080 option "--enable-outdev=I<OUTDEV>", or you can disable a particular
|
yading@10
|
1081 input device using the option "--disable-outdev=I<OUTDEV>".
|
yading@10
|
1082
|
yading@10
|
1083 The option "-formats" of the ff* tools will display the list of
|
yading@10
|
1084 enabled output devices (amongst the muxers).
|
yading@10
|
1085
|
yading@10
|
1086 A description of the currently available output devices follows.
|
yading@10
|
1087
|
yading@10
|
1088
|
yading@10
|
1089 =head2 alsa
|
yading@10
|
1090
|
yading@10
|
1091
|
yading@10
|
1092 ALSA (Advanced Linux Sound Architecture) output device.
|
yading@10
|
1093
|
yading@10
|
1094
|
yading@10
|
1095 =head2 caca
|
yading@10
|
1096
|
yading@10
|
1097
|
yading@10
|
1098 CACA output device.
|
yading@10
|
1099
|
yading@10
|
1100 This output devices allows to show a video stream in CACA window.
|
yading@10
|
1101 Only one CACA window is allowed per application, so you can
|
yading@10
|
1102 have only one instance of this output device in an application.
|
yading@10
|
1103
|
yading@10
|
1104 To enable this output device you need to configure FFmpeg with
|
yading@10
|
1105 C<--enable-libcaca>.
|
yading@10
|
1106 libcaca is a graphics library that outputs text instead of pixels.
|
yading@10
|
1107
|
yading@10
|
1108 For more information about libcaca, check:
|
yading@10
|
1109 E<lt>B<http://caca.zoy.org/wiki/libcaca>E<gt>
|
yading@10
|
1110
|
yading@10
|
1111
|
yading@10
|
1112 =head3 Options
|
yading@10
|
1113
|
yading@10
|
1114
|
yading@10
|
1115
|
yading@10
|
1116 =over 4
|
yading@10
|
1117
|
yading@10
|
1118
|
yading@10
|
1119
|
yading@10
|
1120 =item B<window_title>
|
yading@10
|
1121
|
yading@10
|
1122 Set the CACA window title, if not specified default to the filename
|
yading@10
|
1123 specified for the output device.
|
yading@10
|
1124
|
yading@10
|
1125
|
yading@10
|
1126 =item B<window_size>
|
yading@10
|
1127
|
yading@10
|
1128 Set the CACA window size, can be a string of the form
|
yading@10
|
1129 I<width>xI<height> or a video size abbreviation.
|
yading@10
|
1130 If not specified it defaults to the size of the input video.
|
yading@10
|
1131
|
yading@10
|
1132
|
yading@10
|
1133 =item B<driver>
|
yading@10
|
1134
|
yading@10
|
1135 Set display driver.
|
yading@10
|
1136
|
yading@10
|
1137
|
yading@10
|
1138 =item B<algorithm>
|
yading@10
|
1139
|
yading@10
|
1140 Set dithering algorithm. Dithering is necessary
|
yading@10
|
1141 because the picture being rendered has usually far more colours than
|
yading@10
|
1142 the available palette.
|
yading@10
|
1143 The accepted values are listed with C<-list_dither algorithms>.
|
yading@10
|
1144
|
yading@10
|
1145
|
yading@10
|
1146 =item B<antialias>
|
yading@10
|
1147
|
yading@10
|
1148 Set antialias method. Antialiasing smoothens the rendered
|
yading@10
|
1149 image and avoids the commonly seen staircase effect.
|
yading@10
|
1150 The accepted values are listed with C<-list_dither antialiases>.
|
yading@10
|
1151
|
yading@10
|
1152
|
yading@10
|
1153 =item B<charset>
|
yading@10
|
1154
|
yading@10
|
1155 Set which characters are going to be used when rendering text.
|
yading@10
|
1156 The accepted values are listed with C<-list_dither charsets>.
|
yading@10
|
1157
|
yading@10
|
1158
|
yading@10
|
1159 =item B<color>
|
yading@10
|
1160
|
yading@10
|
1161 Set color to be used when rendering text.
|
yading@10
|
1162 The accepted values are listed with C<-list_dither colors>.
|
yading@10
|
1163
|
yading@10
|
1164
|
yading@10
|
1165 =item B<list_drivers>
|
yading@10
|
1166
|
yading@10
|
1167 If set to B<true>, print a list of available drivers and exit.
|
yading@10
|
1168
|
yading@10
|
1169
|
yading@10
|
1170 =item B<list_dither>
|
yading@10
|
1171
|
yading@10
|
1172 List available dither options related to the argument.
|
yading@10
|
1173 The argument must be one of C<algorithms>, C<antialiases>,
|
yading@10
|
1174 C<charsets>, C<colors>.
|
yading@10
|
1175
|
yading@10
|
1176 =back
|
yading@10
|
1177
|
yading@10
|
1178
|
yading@10
|
1179
|
yading@10
|
1180 =head3 Examples
|
yading@10
|
1181
|
yading@10
|
1182
|
yading@10
|
1183
|
yading@10
|
1184 =over 4
|
yading@10
|
1185
|
yading@10
|
1186
|
yading@10
|
1187 =item *
|
yading@10
|
1188
|
yading@10
|
1189 The following command shows the B<ffmpeg> output is an
|
yading@10
|
1190 CACA window, forcing its size to 80x25:
|
yading@10
|
1191
|
yading@10
|
1192 ffmpeg -i INPUT -vcodec rawvideo -pix_fmt rgb24 -window_size 80x25 -f caca -
|
yading@10
|
1193
|
yading@10
|
1194
|
yading@10
|
1195
|
yading@10
|
1196 =item *
|
yading@10
|
1197
|
yading@10
|
1198 Show the list of available drivers and exit:
|
yading@10
|
1199
|
yading@10
|
1200 ffmpeg -i INPUT -pix_fmt rgb24 -f caca -list_drivers true -
|
yading@10
|
1201
|
yading@10
|
1202
|
yading@10
|
1203
|
yading@10
|
1204 =item *
|
yading@10
|
1205
|
yading@10
|
1206 Show the list of available dither colors and exit:
|
yading@10
|
1207
|
yading@10
|
1208 ffmpeg -i INPUT -pix_fmt rgb24 -f caca -list_dither colors -
|
yading@10
|
1209
|
yading@10
|
1210
|
yading@10
|
1211 =back
|
yading@10
|
1212
|
yading@10
|
1213
|
yading@10
|
1214
|
yading@10
|
1215 =head2 oss
|
yading@10
|
1216
|
yading@10
|
1217
|
yading@10
|
1218 OSS (Open Sound System) output device.
|
yading@10
|
1219
|
yading@10
|
1220
|
yading@10
|
1221 =head2 sdl
|
yading@10
|
1222
|
yading@10
|
1223
|
yading@10
|
1224 SDL (Simple DirectMedia Layer) output device.
|
yading@10
|
1225
|
yading@10
|
1226 This output devices allows to show a video stream in an SDL
|
yading@10
|
1227 window. Only one SDL window is allowed per application, so you can
|
yading@10
|
1228 have only one instance of this output device in an application.
|
yading@10
|
1229
|
yading@10
|
1230 To enable this output device you need libsdl installed on your system
|
yading@10
|
1231 when configuring your build.
|
yading@10
|
1232
|
yading@10
|
1233 For more information about SDL, check:
|
yading@10
|
1234 E<lt>B<http://www.libsdl.org/>E<gt>
|
yading@10
|
1235
|
yading@10
|
1236
|
yading@10
|
1237 =head3 Options
|
yading@10
|
1238
|
yading@10
|
1239
|
yading@10
|
1240
|
yading@10
|
1241 =over 4
|
yading@10
|
1242
|
yading@10
|
1243
|
yading@10
|
1244
|
yading@10
|
1245 =item B<window_title>
|
yading@10
|
1246
|
yading@10
|
1247 Set the SDL window title, if not specified default to the filename
|
yading@10
|
1248 specified for the output device.
|
yading@10
|
1249
|
yading@10
|
1250
|
yading@10
|
1251 =item B<icon_title>
|
yading@10
|
1252
|
yading@10
|
1253 Set the name of the iconified SDL window, if not specified it is set
|
yading@10
|
1254 to the same value of I<window_title>.
|
yading@10
|
1255
|
yading@10
|
1256
|
yading@10
|
1257 =item B<window_size>
|
yading@10
|
1258
|
yading@10
|
1259 Set the SDL window size, can be a string of the form
|
yading@10
|
1260 I<width>xI<height> or a video size abbreviation.
|
yading@10
|
1261 If not specified it defaults to the size of the input video,
|
yading@10
|
1262 downscaled according to the aspect ratio.
|
yading@10
|
1263
|
yading@10
|
1264 =back
|
yading@10
|
1265
|
yading@10
|
1266
|
yading@10
|
1267
|
yading@10
|
1268 =head3 Examples
|
yading@10
|
1269
|
yading@10
|
1270
|
yading@10
|
1271 The following command shows the B<ffmpeg> output is an
|
yading@10
|
1272 SDL window, forcing its size to the qcif format:
|
yading@10
|
1273
|
yading@10
|
1274 ffmpeg -i INPUT -vcodec rawvideo -pix_fmt yuv420p -window_size qcif -f sdl "SDL output"
|
yading@10
|
1275
|
yading@10
|
1276
|
yading@10
|
1277
|
yading@10
|
1278 =head2 sndio
|
yading@10
|
1279
|
yading@10
|
1280
|
yading@10
|
1281 sndio audio output device.
|
yading@10
|
1282
|
yading@10
|
1283
|
yading@10
|
1284
|
yading@10
|
1285 =head1 SEE ALSO
|
yading@10
|
1286
|
yading@10
|
1287
|
yading@10
|
1288
|
yading@10
|
1289 ffmpeg(1), ffplay(1), ffprobe(1), ffserver(1), libavdevice(3)
|
yading@10
|
1290
|
yading@10
|
1291
|
yading@10
|
1292 =head1 AUTHORS
|
yading@10
|
1293
|
yading@10
|
1294
|
yading@10
|
1295 The FFmpeg developers.
|
yading@10
|
1296
|
yading@10
|
1297 For details about the authorship, see the Git history of the project
|
yading@10
|
1298 (git://source.ffmpeg.org/ffmpeg), e.g. by typing the command
|
yading@10
|
1299 B<git log> in the FFmpeg source directory, or browsing the
|
yading@10
|
1300 online repository at E<lt>B<http://source.ffmpeg.org>E<gt>.
|
yading@10
|
1301
|
yading@10
|
1302 Maintainers for the specific components are listed in the file
|
yading@10
|
1303 F<MAINTAINERS> in the source code tree.
|
yading@10
|
1304
|
yading@10
|
1305
|
yading@10
|
1306
|