doc/ffmpeg.texi: apply misc fixes to the -map_channel documentation
[ffmpeg.git] / doc / ffmpeg.texi
1 \input texinfo @c -*- texinfo -*-
2
3 @settitle ffmpeg Documentation
4 @titlepage
5 @center @titlefont{ffmpeg Documentation}
6 @end titlepage
7
8 @top
9
10 @contents
11
12 @chapter Synopsis
13
14 The generic syntax is:
15
16 @example
17 @c man begin SYNOPSIS
18 ffmpeg [global options] [[infile options][@option{-i} @var{infile}]]... @{[outfile options] @var{outfile}@}...
19 @c man end
20 @end example
21
22 @chapter Description
23 @c man begin DESCRIPTION
24
25 ffmpeg is a very fast video and audio converter that can also grab from
26 a live audio/video source. It can also convert between arbitrary sample
27 rates and resize video on the fly with a high quality polyphase filter.
28
29 ffmpeg reads from an arbitrary number of input "files" (which can be regular
30 files, pipes, network streams, grabbing devices, etc.), specified by the
31 @code{-i} option, and writes to an arbitrary number of output "files", which are
32 specified by a plain output filename. Anything found on the command line which
33 cannot be interpreted as an option is considered to be an output filename.
34
35 Each input or output file can in principle contain any number of streams of
36 different types (video/audio/subtitle/attachment/data). Allowed number and/or
37 types of streams can be limited by the container format. Selecting, which
38 streams from which inputs go into output, is done either automatically or with
39 the @code{-map} option (see the Stream selection chapter).
40
41 To refer to input files in options, you must use their indices (0-based). E.g.
42 the first input file is @code{0}, the second is @code{1} etc. Similarly, streams
43 within a file are referred to by their indices. E.g. @code{2:3} refers to the
44 fourth stream in the third input file. See also the Stream specifiers chapter.
45
46 As a general rule, options are applied to the next specified
47 file. Therefore, order is important, and you can have the same
48 option on the command line multiple times. Each occurrence is
49 then applied to the next input or output file.
50 Exceptions from this rule are the global options (e.g. verbosity level),
51 which should be specified first.
52
53 Do not mix input and output files -- first specify all input files, then all
54 output files. Also do not mix options which belong to different files. All
55 options apply ONLY to the next input or output file and are reset between files.
56
57 @itemize
58 @item
59 To set the video bitrate of the output file to 64kbit/s:
60 @example
61 ffmpeg -i input.avi -b:v 64k output.avi
62 @end example
63
64 @item
65 To force the frame rate of the output file to 24 fps:
66 @example
67 ffmpeg -i input.avi -r 24 output.avi
68 @end example
69
70 @item
71 To force the frame rate of the input file (valid for raw formats only)
72 to 1 fps and the frame rate of the output file to 24 fps:
73 @example
74 ffmpeg -r 1 -i input.m2v -r 24 output.avi
75 @end example
76 @end itemize
77
78 The format option may be needed for raw input files.
79
80 @c man end DESCRIPTION
81
82 @chapter Stream selection
83 @c man begin STREAM SELECTION
84
85 By default ffmpeg includes only one stream of each type (video, audio, subtitle)
86 present in the input files and adds them to each output file.  It picks the
87 "best" of each based upon the following criteria; for video it is the stream
88 with the highest resolution, for audio the stream with the most channels, for
89 subtitle it's the first subtitle stream. In the case where several streams of
90 the same type rate equally, the lowest numbered stream is chosen.
91
92 You can disable some of those defaults by using @code{-vn/-an/-sn} options. For
93 full manual control, use the @code{-map} option, which disables the defaults just
94 described.
95
96 @c man end STREAM SELECTION
97
98 @chapter Options
99 @c man begin OPTIONS
100
101 @include avtools-common-opts.texi
102
103 @section Main options
104
105 @table @option
106
107 @item -f @var{fmt} (@emph{input/output})
108 Force input or output file format. The format is normally auto detected for input
109 files and guessed from file extension for output files, so this option is not
110 needed in most cases.
111
112 @item -i @var{filename} (@emph{input})
113 input file name
114
115 @item -y (@emph{global})
116 Overwrite output files without asking.
117
118 @item -n (@emph{global})
119 Do not overwrite output files but exit if file exists.
120
121 @item -c[:@var{stream_specifier}] @var{codec} (@emph{input/output,per-stream})
122 @itemx -codec[:@var{stream_specifier}] @var{codec} (@emph{input/output,per-stream})
123 Select an encoder (when used before an output file) or a decoder (when used
124 before an input file) for one or more streams. @var{codec} is the name of a
125 decoder/encoder or a special value @code{copy} (output only) to indicate that
126 the stream is not to be re-encoded.
127
128 For example
129 @example
130 ffmpeg -i INPUT -map 0 -c:v libx264 -c:a copy OUTPUT
131 @end example
132 encodes all video streams with libx264 and copies all audio streams.
133
134 For each stream, the last matching @code{c} option is applied, so
135 @example
136 ffmpeg -i INPUT -map 0 -c copy -c:v:1 libx264 -c:a:137 libvorbis OUTPUT
137 @end example
138 will copy all the streams except the second video, which will be encoded with
139 libx264, and the 138th audio, which will be encoded with libvorbis.
140
141 @item -t @var{duration} (@emph{output})
142 Stop writing the output after its duration reaches @var{duration}.
143 @var{duration} may be a number in seconds, or in @code{hh:mm:ss[.xxx]} form.
144
145 @item -fs @var{limit_size} (@emph{output})
146 Set the file size limit, expressed in bytes.
147
148 @item -ss @var{position} (@emph{input/output})
149 When used as an input option (before @code{-i}), seeks in this input file to
150 @var{position}. When used as an output option (before an output filename),
151 decodes but discards input until the timestamps reach @var{position}. This is
152 slower, but more accurate.
153
154 @var{position} may be either in seconds or in @code{hh:mm:ss[.xxx]} form.
155
156 @item -itsoffset @var{offset} (@emph{input})
157 Set the input time offset in seconds.
158 @code{[-]hh:mm:ss[.xxx]} syntax is also supported.
159 The offset is added to the timestamps of the input files.
160 Specifying a positive offset means that the corresponding
161 streams are delayed by @var{offset} seconds.
162
163 @item -timestamp @var{time} (@emph{output})
164 Set the recording timestamp in the container.
165 The syntax for @var{time} is:
166 @example
167 now|([(YYYY-MM-DD|YYYYMMDD)[T|t| ]]((HH[:MM[:SS[.m...]]])|(HH[MM[SS[.m...]]]))[Z|z])
168 @end example
169 If the value is "now" it takes the current time.
170 Time is local time unless 'Z' or 'z' is appended, in which case it is
171 interpreted as UTC.
172 If the year-month-day part is not specified it takes the current
173 year-month-day.
174
175 @item -metadata[:metadata_specifier] @var{key}=@var{value} (@emph{output,per-metadata})
176 Set a metadata key/value pair.
177
178 An optional @var{metadata_specifier} may be given to set metadata
179 on streams or chapters. See @code{-map_metadata} documentation for
180 details.
181
182 This option overrides metadata set with @code{-map_metadata}. It is
183 also possible to delete metadata by using an empty value.
184
185 For example, for setting the title in the output file:
186 @example
187 ffmpeg -i in.avi -metadata title="my title" out.flv
188 @end example
189
190 To set the language of the first audio stream:
191 @example
192 ffmpeg -i INPUT -metadata:s:a:1 language=eng OUTPUT
193 @end example
194
195 @item -target @var{type} (@emph{output})
196 Specify target file type (@code{vcd}, @code{svcd}, @code{dvd}, @code{dv},
197 @code{dv50}). @var{type} may be prefixed with @code{pal-}, @code{ntsc-} or
198 @code{film-} to use the corresponding standard. All the format options
199 (bitrate, codecs, buffer sizes) are then set automatically. You can just type:
200
201 @example
202 ffmpeg -i myfile.avi -target vcd /tmp/vcd.mpg
203 @end example
204
205 Nevertheless you can specify additional options as long as you know
206 they do not conflict with the standard, as in:
207
208 @example
209 ffmpeg -i myfile.avi -target vcd -bf 2 /tmp/vcd.mpg
210 @end example
211
212 @item -dframes @var{number} (@emph{output})
213 Set the number of data frames to record. This is an alias for @code{-frames:d}.
214
215 @item -frames[:@var{stream_specifier}] @var{framecount} (@emph{output,per-stream})
216 Stop writing to the stream after @var{framecount} frames.
217
218 @item -q[:@var{stream_specifier}] @var{q} (@emph{output,per-stream})
219 @itemx -qscale[:@var{stream_specifier}] @var{q} (@emph{output,per-stream})
220 Use fixed quality scale (VBR). The meaning of @var{q} is
221 codec-dependent.
222
223 @item -filter[:@var{stream_specifier}] @var{filter_graph} (@emph{output,per-stream})
224 @var{filter_graph} is a description of the filter graph to apply to
225 the stream. Use @code{-filters} to show all the available filters
226 (including also sources and sinks).
227 @item -pre[:@var{stream_specifier}] @var{preset_name} (@emph{output,per-stream})
228 Specify the preset for matching stream(s).
229
230 @item -stats (@emph{global})
231 Print encoding progress/statistics. On by default.
232
233 @item -debug_ts (@emph{global})
234 Print timestamp information. It is off by default. This option is
235 mostly useful for testing and debugging purposes, and the output
236 format may change from one version to another, so it should not be
237 employed by portable scripts.
238
239 See also the option @code{-fdebug ts}.
240
241 @item -attach @var{filename} (@emph{output})
242 Add an attachment to the output file. This is supported by a few formats
243 like Matroska for e.g. fonts used in rendering subtitles. Attachments
244 are implemented as a specific type of stream, so this option will add
245 a new stream to the file. It is then possible to use per-stream options
246 on this stream in the usual way. Attachment streams created with this
247 option will be created after all the other streams (i.e. those created
248 with @code{-map} or automatic mappings).
249
250 Note that for Matroska you also have to set the mimetype metadata tag:
251 @example
252 ffmpeg -i INPUT -attach DejaVuSans.ttf -metadata:s:2 mimetype=application/x-truetype-font out.mkv
253 @end example
254 (assuming that the attachment stream will be third in the output file).
255
256 @item -dump_attachment[:@var{stream_specifier}] @var{filename} (@emph{input,per-stream})
257 Extract the matching attachment stream into a file named @var{filename}. If
258 @var{filename} is empty, then the value of the @code{filename} metadata tag
259 will be used.
260
261 E.g. to extract the first attachment to a file named 'out.ttf':
262 @example
263 ffmpeg -dump_attachment:t:0 out.ttf INPUT
264 @end example
265 To extract all attachments to files determined by the @code{filename} tag:
266 @example
267 ffmpeg -dump_attachment:t "" INPUT
268 @end example
269
270 Technical note -- attachments are implemented as codec extradata, so this
271 option can actually be used to extract extradata from any stream, not just
272 attachments.
273
274 @end table
275
276 @section Video Options
277
278 @table @option
279 @item -vframes @var{number} (@emph{output})
280 Set the number of video frames to record. This is an alias for @code{-frames:v}.
281 @item -r[:@var{stream_specifier}] @var{fps} (@emph{input/output,per-stream})
282 Set frame rate (Hz value, fraction or abbreviation), (default = 25). For output
283 streams implies @code{-vsync cfr}.
284 @item -s[:@var{stream_specifier}] @var{size} (@emph{input/output,per-stream})
285 Set frame size. The format is @samp{wxh} (default - same as source).
286 The following abbreviations are recognized:
287 @table @samp
288 @item sqcif
289 128x96
290 @item qcif
291 176x144
292 @item cif
293 352x288
294 @item 4cif
295 704x576
296 @item 16cif
297 1408x1152
298 @item qqvga
299 160x120
300 @item qvga
301 320x240
302 @item vga
303 640x480
304 @item svga
305 800x600
306 @item xga
307 1024x768
308 @item uxga
309 1600x1200
310 @item qxga
311 2048x1536
312 @item sxga
313 1280x1024
314 @item qsxga
315 2560x2048
316 @item hsxga
317 5120x4096
318 @item wvga
319 852x480
320 @item wxga
321 1366x768
322 @item wsxga
323 1600x1024
324 @item wuxga
325 1920x1200
326 @item woxga
327 2560x1600
328 @item wqsxga
329 3200x2048
330 @item wquxga
331 3840x2400
332 @item whsxga
333 6400x4096
334 @item whuxga
335 7680x4800
336 @item cga
337 320x200
338 @item ega
339 640x350
340 @item hd480
341 852x480
342 @item hd720
343 1280x720
344 @item hd1080
345 1920x1080
346 @end table
347
348 @item -aspect[:@var{stream_specifier}] @var{aspect} (@emph{output,per-stream})
349 Set the video display aspect ratio specified by @var{aspect}.
350
351 @var{aspect} can be a floating point number string, or a string of the
352 form @var{num}:@var{den}, where @var{num} and @var{den} are the
353 numerator and denominator of the aspect ratio. For example "4:3",
354 "16:9", "1.3333", and "1.7777" are valid argument values.
355
356 @item -croptop @var{size}
357 @item -cropbottom @var{size}
358 @item -cropleft @var{size}
359 @item -cropright @var{size}
360 All the crop options have been removed. Use -vf
361 crop=width:height:x:y instead.
362
363 @item -padtop @var{size}
364 @item -padbottom @var{size}
365 @item -padleft @var{size}
366 @item -padright @var{size}
367 @item -padcolor @var{hex_color}
368 All the pad options have been removed. Use -vf
369 pad=width:height:x:y:color instead.
370
371 @item -vn (@emph{output})
372 Disable video recording.
373 @item -bt @var{tolerance}
374 Set video bitrate tolerance (in bits, default 4000k).
375 Has a minimum value of: (target_bitrate/target_framerate).
376 In 1-pass mode, bitrate tolerance specifies how far ratecontrol is
377 willing to deviate from the target average bitrate value. This is
378 not related to min/max bitrate. Lowering tolerance too much has
379 an adverse effect on quality.
380 @item -maxrate @var{bitrate}
381 Set max video bitrate (in bit/s).
382 Requires -bufsize to be set.
383 @item -minrate @var{bitrate}
384 Set min video bitrate (in bit/s).
385 Most useful in setting up a CBR encode:
386 @example
387 ffmpeg -i myfile.avi -b:v 4000k -minrate 4000k -maxrate 4000k -bufsize 1835k out.m2v
388 @end example
389 It is of little use elsewise.
390 @item -bufsize @var{size}
391 Set video buffer verifier buffer size (in bits).
392 @item -vcodec @var{codec} (@emph{output})
393 Set the video codec. This is an alias for @code{-codec:v}.
394 @item -same_quant
395 Use same quantizer as source (implies VBR).
396
397 Note that this is NOT SAME QUALITY. Do not use this option unless you know you
398 need it.
399
400 @item -pass @var{n}
401 Select the pass number (1 or 2). It is used to do two-pass
402 video encoding. The statistics of the video are recorded in the first
403 pass into a log file (see also the option -passlogfile),
404 and in the second pass that log file is used to generate the video
405 at the exact requested bitrate.
406 On pass 1, you may just deactivate audio and set output to null,
407 examples for Windows and Unix:
408 @example
409 ffmpeg -i foo.mov -c:v libxvid -pass 1 -an -f rawvideo -y NUL
410 ffmpeg -i foo.mov -c:v libxvid -pass 1 -an -f rawvideo -y /dev/null
411 @end example
412
413 @item -passlogfile @var{prefix} (@emph{global})
414 Set two-pass log file name prefix to @var{prefix}, the default file name
415 prefix is ``ffmpeg2pass''. The complete file name will be
416 @file{PREFIX-N.log}, where N is a number specific to the output
417 stream
418
419 @item -vlang @var{code}
420 Set the ISO 639 language code (3 letters) of the current video stream.
421
422 @item -vf @var{filter_graph} (@emph{output})
423 @var{filter_graph} is a description of the filter graph to apply to
424 the input video.
425 Use the option "-filters" to show all the available filters (including
426 also sources and sinks).  This is an alias for @code{-filter:v}.
427
428 @end table
429
430 @section Advanced Video Options
431
432 @table @option
433 @item -pix_fmt[:@var{stream_specifier}] @var{format} (@emph{input/output,per-stream})
434 Set pixel format. Use @code{-pix_fmts} to show all the supported
435 pixel formats.
436 @item -sws_flags @var{flags} (@emph{input/output})
437 Set SwScaler flags.
438 @item -g @var{gop_size}
439 Set the group of pictures size.
440 @item -intra
441 deprecated, use -g 1
442 @item -vdt @var{n}
443 Discard threshold.
444 @item -qmin @var{q}
445 minimum video quantizer scale (VBR)
446 @item -qmax @var{q}
447 maximum video quantizer scale (VBR)
448 @item -qdiff @var{q}
449 maximum difference between the quantizer scales (VBR)
450 @item -qblur @var{blur}
451 video quantizer scale blur (VBR) (range 0.0 - 1.0)
452 @item -qcomp @var{compression}
453 video quantizer scale compression (VBR) (default 0.5).
454 Constant of ratecontrol equation. Recommended range for default rc_eq: 0.0-1.0
455
456 @item -lmin @var{lambda}
457 minimum video lagrange factor (VBR)
458 @item -lmax @var{lambda}
459 max video lagrange factor (VBR)
460 @item -mblmin @var{lambda}
461 minimum macroblock quantizer scale (VBR)
462 @item -mblmax @var{lambda}
463 maximum macroblock quantizer scale (VBR)
464
465 These four options (lmin, lmax, mblmin, mblmax) use 'lambda' units,
466 but you may use the QP2LAMBDA constant to easily convert from 'q' units:
467 @example
468 ffmpeg -i src.ext -lmax 21*QP2LAMBDA dst.ext
469 @end example
470
471 @item -rc_init_cplx @var{complexity}
472 initial complexity for single pass encoding
473 @item -b_qfactor @var{factor}
474 qp factor between P- and B-frames
475 @item -i_qfactor @var{factor}
476 qp factor between P- and I-frames
477 @item -b_qoffset @var{offset}
478 qp offset between P- and B-frames
479 @item -i_qoffset @var{offset}
480 qp offset between P- and I-frames
481 @item -rc_eq @var{equation}
482 Set rate control equation (see section "Expression Evaluation")
483 (default = @code{tex^qComp}).
484
485 When computing the rate control equation expression, besides the
486 standard functions defined in the section "Expression Evaluation", the
487 following functions are available:
488 @table @var
489 @item bits2qp(bits)
490 @item qp2bits(qp)
491 @end table
492
493 and the following constants are available:
494 @table @var
495 @item iTex
496 @item pTex
497 @item tex
498 @item mv
499 @item fCode
500 @item iCount
501 @item mcVar
502 @item var
503 @item isI
504 @item isP
505 @item isB
506 @item avgQP
507 @item qComp
508 @item avgIITex
509 @item avgPITex
510 @item avgPPTex
511 @item avgBPTex
512 @item avgTex
513 @end table
514
515 @item -rc_override[:@var{stream_specifier}] @var{override} (@emph{output,per-stream})
516 Rate control override for specific intervals, formatted as "int,int,int"
517 list separated with slashes. Two first values are the beginning and
518 end frame numbers, last one is quantizer to use if positive, or quality
519 factor if negative.
520 @item -me_method @var{method}
521 Set motion estimation method to @var{method}.
522 Available methods are (from lowest to best quality):
523 @table @samp
524 @item zero
525 Try just the (0, 0) vector.
526 @item phods
527 @item log
528 @item x1
529 @item hex
530 @item umh
531 @item epzs
532 (default method)
533 @item full
534 exhaustive search (slow and marginally better than epzs)
535 @end table
536
537 @item -dct_algo @var{algo}
538 Set DCT algorithm to @var{algo}. Available values are:
539 @table @samp
540 @item 0
541 FF_DCT_AUTO (default)
542 @item 1
543 FF_DCT_FASTINT
544 @item 2
545 FF_DCT_INT
546 @item 3
547 FF_DCT_MMX
548 @item 4
549 FF_DCT_MLIB
550 @item 5
551 FF_DCT_ALTIVEC
552 @end table
553
554 @item -idct_algo @var{algo}
555 Set IDCT algorithm to @var{algo}. Available values are:
556 @table @samp
557 @item 0
558 FF_IDCT_AUTO (default)
559 @item 1
560 FF_IDCT_INT
561 @item 2
562 FF_IDCT_SIMPLE
563 @item 3
564 FF_IDCT_SIMPLEMMX
565 @item 4
566 FF_IDCT_LIBMPEG2MMX
567 @item 5
568 FF_IDCT_PS2
569 @item 6
570 FF_IDCT_MLIB
571 @item 7
572 FF_IDCT_ARM
573 @item 8
574 FF_IDCT_ALTIVEC
575 @item 9
576 FF_IDCT_SH4
577 @item 10
578 FF_IDCT_SIMPLEARM
579 @end table
580
581 @item -er @var{n}
582 Set error resilience to @var{n}.
583 @table @samp
584 @item 1
585 FF_ER_CAREFUL (default)
586 @item 2
587 FF_ER_COMPLIANT
588 @item 3
589 FF_ER_AGGRESSIVE
590 @item 4
591 FF_ER_VERY_AGGRESSIVE
592 @end table
593
594 @item -ec @var{bit_mask}
595 Set error concealment to @var{bit_mask}. @var{bit_mask} is a bit mask of
596 the following values:
597 @table @samp
598 @item 1
599 FF_EC_GUESS_MVS (default = enabled)
600 @item 2
601 FF_EC_DEBLOCK (default = enabled)
602 @end table
603
604 @item -bf @var{frames}
605 Use 'frames' B-frames (supported for MPEG-1, MPEG-2 and MPEG-4).
606 @item -mbd @var{mode}
607 macroblock decision
608 @table @samp
609 @item 0
610 FF_MB_DECISION_SIMPLE: Use mb_cmp (cannot change it yet in ffmpeg).
611 @item 1
612 FF_MB_DECISION_BITS: Choose the one which needs the fewest bits.
613 @item 2
614 FF_MB_DECISION_RD: rate distortion
615 @end table
616
617 @item -4mv
618 Use four motion vector by macroblock (MPEG-4 only).
619 @item -part
620 Use data partitioning (MPEG-4 only).
621 @item -bug @var{param}
622 Work around encoder bugs that are not auto-detected.
623 @item -strict @var{strictness}
624 How strictly to follow the standards.
625 @item -aic
626 Enable Advanced intra coding (h263+).
627 @item -umv
628 Enable Unlimited Motion Vector (h263+)
629
630 @item -deinterlace
631 Deinterlace pictures.
632 This option is deprecated since the deinterlacing is very low quality.
633 Use the yadif filter with @code{-filter:v yadif}.
634 @item -ilme
635 Force interlacing support in encoder (MPEG-2 and MPEG-4 only).
636 Use this option if your input file is interlaced and you want
637 to keep the interlaced format for minimum losses.
638 The alternative is to deinterlace the input stream with
639 @option{-deinterlace}, but deinterlacing introduces losses.
640 @item -psnr
641 Calculate PSNR of compressed frames.
642 @item -vstats
643 Dump video coding statistics to @file{vstats_HHMMSS.log}.
644 @item -vstats_file @var{file}
645 Dump video coding statistics to @var{file}.
646 @item -top[:@var{stream_specifier}] @var{n} (@emph{output,per-stream})
647 top=1/bottom=0/auto=-1 field first
648 @item -dc @var{precision}
649 Intra_dc_precision.
650 @item -vtag @var{fourcc/tag} (@emph{output})
651 Force video tag/fourcc. This is an alias for @code{-tag:v}.
652 @item -qphist (@emph{global})
653 Show QP histogram
654 @item -vbsf @var{bitstream_filter}
655 Deprecated see -bsf
656 @item -force_key_frames[:@var{stream_specifier}] @var{time}[,@var{time}...] (@emph{output,per-stream})
657 Force key frames at the specified timestamps, more precisely at the first
658 frames after each specified time.
659 This option can be useful to ensure that a seek point is present at a
660 chapter mark or any other designated place in the output file.
661 The timestamps must be specified in ascending order.
662
663 @item -copyinkf[:@var{stream_specifier}] (@emph{output,per-stream})
664 When doing stream copy, copy also non-key frames found at the
665 beginning.
666 @end table
667
668 @section Audio Options
669
670 @table @option
671 @item -aframes @var{number} (@emph{output})
672 Set the number of audio frames to record. This is an alias for @code{-frames:a}.
673 @item -ar[:@var{stream_specifier}] @var{freq} (@emph{input/output,per-stream})
674 Set the audio sampling frequency. For output streams it is set by
675 default to the frequency of the corresponding input stream. For input
676 streams this option only makes sense for audio grabbing devices and raw
677 demuxers and is mapped to the corresponding demuxer options.
678 @item -aq @var{q} (@emph{output})
679 Set the audio quality (codec-specific, VBR). This is an alias for -q:a.
680 @item -ac[:@var{stream_specifier}] @var{channels} (@emph{input/output,per-stream})
681 Set the number of audio channels. For output streams it is set by
682 default to the number of input audio channels. For input streams
683 this option only makes sense for audio grabbing devices and raw demuxers
684 and is mapped to the corresponding demuxer options.
685 @item -an (@emph{output})
686 Disable audio recording.
687 @item -acodec @var{codec} (@emph{input/output})
688 Set the audio codec. This is an alias for @code{-codec:a}.
689 @item -sample_fmt[:@var{stream_specifier}] @var{sample_fmt} (@emph{output,per-stream})
690 Set the audio sample format. Use @code{-sample_fmts} to get a list
691 of supported sample formats.
692 @end table
693
694 @section Advanced Audio options:
695
696 @table @option
697 @item -atag @var{fourcc/tag} (@emph{output})
698 Force audio tag/fourcc. This is an alias for @code{-tag:a}.
699 @item -audio_service_type @var{type}
700 Set the type of service that the audio stream contains.
701 @table @option
702 @item ma
703 Main Audio Service (default)
704 @item ef
705 Effects
706 @item vi
707 Visually Impaired
708 @item hi
709 Hearing Impaired
710 @item di
711 Dialogue
712 @item co
713 Commentary
714 @item em
715 Emergency
716 @item vo
717 Voice Over
718 @item ka
719 Karaoke
720 @end table
721 @item -absf @var{bitstream_filter}
722 Deprecated, see -bsf
723 @end table
724
725 @section Subtitle options:
726
727 @table @option
728 @item -slang @var{code}
729 Set the ISO 639 language code (3 letters) of the current subtitle stream.
730 @item -scodec @var{codec} (@emph{input/output})
731 Set the subtitle codec. This is an alias for @code{-codec:s}.
732 @item -sn (@emph{output})
733 Disable subtitle recording.
734 @item -sbsf @var{bitstream_filter}
735 Deprecated, see -bsf
736 @end table
737
738 @section Audio/Video grab options
739
740 @table @option
741 @item -isync (@emph{global})
742 Synchronize read on input.
743 @end table
744
745 @section Advanced options
746
747 @table @option
748 @item -map [-]@var{input_file_id}[:@var{stream_specifier}][,@var{sync_file_id}[:@var{stream_specifier}]] (@emph{output})
749
750 Designate one or more input streams as a source for the output file. Each input
751 stream is identified by the input file index @var{input_file_id} and
752 the input stream index @var{input_stream_id} within the input
753 file. Both indices start at 0. If specified,
754 @var{sync_file_id}:@var{stream_specifier} sets which input stream
755 is used as a presentation sync reference.
756
757 The first @code{-map} option on the command line specifies the
758 source for output stream 0, the second @code{-map} option specifies
759 the source for output stream 1, etc.
760
761 A @code{-} character before the stream identifier creates a "negative" mapping.
762 It disables matching streams from already created mappings.
763
764 For example, to map ALL streams from the first input file to output
765 @example
766 ffmpeg -i INPUT -map 0 output
767 @end example
768
769 For example, if you have two audio streams in the first input file,
770 these streams are identified by "0:0" and "0:1". You can use
771 @code{-map} to select which streams to place in an output file. For
772 example:
773 @example
774 ffmpeg -i INPUT -map 0:1 out.wav
775 @end example
776 will map the input stream in @file{INPUT} identified by "0:1" to
777 the (single) output stream in @file{out.wav}.
778
779 For example, to select the stream with index 2 from input file
780 @file{a.mov} (specified by the identifier "0:2"), and stream with
781 index 6 from input @file{b.mov} (specified by the identifier "1:6"),
782 and copy them to the output file @file{out.mov}:
783 @example
784 ffmpeg -i a.mov -i b.mov -c copy -map 0:2 -map 1:6 out.mov
785 @end example
786
787 To select all video and the third audio stream from an input file:
788 @example
789 ffmpeg -i INPUT -map 0:v -map 0:a:2 OUTPUT
790 @end example
791
792 To map all the streams except the second audio, use negative mappings
793 @example
794 ffmpeg -i INPUT -map 0 -map -0:a:1 OUTPUT
795 @end example
796
797 Note that using this option disables the default mappings for this output file.
798
799 @item -map_channel [@var{input_file_id}.@var{stream_specifier}.@var{channel_id}|-1][:@var{output_file_id}.@var{stream_specifier}]
800 Map an audio channel from a given input to an output. If
801 @var{output_file_id}.@var{stream_specifier} is not set, the audio channel will
802 be mapped on all the audio streams.
803
804 Using "-1" instead of
805 @var{input_file_id}.@var{stream_specifier}.@var{channel_id} will map a muted
806 channel.
807
808 For example, assuming @var{INPUT} is a stereo audio file, you can switch the
809 two audio channels with the following command:
810 @example
811 ffmpeg -i INPUT -map_channel 0.0.1 -map_channel 0.0.0 OUTPUT
812 @end example
813
814 If you want to mute the first channel and keep the second:
815 @example
816 ffmpeg -i INPUT -map_channel -1 -map_channel 0.0.1 OUTPUT
817 @end example
818
819 The order of the "-map_channel" option specifies the order of the channels in
820 the output stream. The output channel layout is guessed from the number of
821 channels mapped (mono if one "-map_channel", stereo if two, etc.). Using "-ac"
822 in combination of "-map_channel" makes the channel gain levels to be updated if
823 input and output channel layouts don't match (for instance two "-map_channel"
824 options and "-ac 6").
825
826 You can also extract each channel of an input to specific outputs; the following
827 command extracts two channels of the @var{INPUT} audio stream (file 0, stream 0)
828 to the respective @var{OUTPUT_CH0} and @var{OUTPUT_CH1} outputs:
829 @example
830 ffmpeg -i INPUT -map_channel 0.0.0 OUTPUT_CH0 -map_channel 0.0.1 OUTPUT_CH1
831 @end example
832
833 The following example splits the channels of a stereo input into two separate
834 streams, which are put into the same output file:
835 @example
836 ffmpeg -i stereo.wav -map 0:0 -map 0:0 -map_channel 0.0.0:0.0 -map_channel 0.0.1:0.1 -y out.ogg
837 @end example
838
839 Note that currently each output stream can only contain channels from a single
840 input stream; you can't for example use "-map_channel" to pick multiple input
841 audio channels contained in different streams (from the same or different files)
842 and merge them into a single output stream. It is therefore not currently
843 possible, for example, to turn two separate mono streams into a single stereo
844 stream. However splitting a stereo stream into two single channel mono streams
845 is possible.
846
847 If you need this feature, a possible workaround is to use the @emph{amerge}
848 filter. For example, if you need to merge a media (here @file{input.mkv}) with 2
849 mono audio streams into one single stereo channel audio stream (and keep the
850 video stream), you can use the following command:
851 @example
852 ffmpeg -i input.mkv -f lavfi -i "
853 amovie=input.mkv:si=1 [a1];
854 amovie=input.mkv:si=2 [a2];
855 [a1][a2] amerge" -c:a pcm_s16le -c:v copy output.mkv
856 @end example
857
858 @item -map_metadata[:@var{metadata_spec_out}] @var{infile}[:@var{metadata_spec_in}] (@emph{output,per-metadata})
859 Set metadata information of the next output file from @var{infile}. Note that
860 those are file indices (zero-based), not filenames.
861 Optional @var{metadata_spec_in/out} parameters specify, which metadata to copy.
862 A metadata specifier can have the following forms:
863 @table @option
864 @item @var{g}
865 global metadata, i.e. metadata that applies to the whole file
866
867 @item @var{s}[:@var{stream_spec}]
868 per-stream metadata. @var{stream_spec} is a stream specifier as described
869 in the @ref{Stream specifiers} chapter. In an input metadata specifier, the first
870 matching stream is copied from. In an output metadata specifier, all matching
871 streams are copied to.
872
873 @item @var{c}:@var{chapter_index}
874 per-chapter metadata. @var{chapter_index} is the zero-based chapter index.
875
876 @item @var{p}:@var{program_index}
877 per-program metadata. @var{program_index} is the zero-based program index.
878 @end table
879 If metadata specifier is omitted, it defaults to global.
880
881 By default, global metadata is copied from the first input file,
882 per-stream and per-chapter metadata is copied along with streams/chapters. These
883 default mappings are disabled by creating any mapping of the relevant type. A negative
884 file index can be used to create a dummy mapping that just disables automatic copying.
885
886 For example to copy metadata from the first stream of the input file to global metadata
887 of the output file:
888 @example
889 ffmpeg -i in.ogg -map_metadata 0:s:0 out.mp3
890 @end example
891
892 To do the reverse, i.e. copy global metadata to all audio streams:
893 @example
894 ffmpeg -i in.mkv -map_metadata:s:a 0:g out.mkv
895 @end example
896 Note that simple @code{0} would work as well in this example, since global
897 metadata is assumed by default.
898
899 @item -map_chapters @var{input_file_index} (@emph{output})
900 Copy chapters from input file with index @var{input_file_index} to the next
901 output file. If no chapter mapping is specified, then chapters are copied from
902 the first input file with at least one chapter. Use a negative file index to
903 disable any chapter copying.
904 @item -debug @var{category}
905 Print specific debug info.
906 @var{category} is a number or a string containing one of the following values:
907 @table @samp
908 @item bitstream
909 @item buffers
910 picture buffer allocations
911 @item bugs
912 @item dct_coeff
913 @item er
914 error recognition
915 @item mb_type
916 macroblock (MB) type
917 @item mmco
918 memory management control operations (H.264)
919 @item mv
920 motion vector
921 @item pict
922 picture info
923 @item pts
924 @item qp
925 per-block quantization parameter (QP)
926 @item rc
927 rate control
928 @item skip
929 @item startcode
930 @item thread_ops
931 threading operations
932 @item vis_mb_type
933 visualize block types
934 @item vis_qp
935 visualize quantization parameter (QP), lower QP are tinted greener
936 @end table
937 @item -benchmark (@emph{global})
938 Show benchmarking information at the end of an encode.
939 Shows CPU time used and maximum memory consumption.
940 Maximum memory consumption is not supported on all systems,
941 it will usually display as 0 if not supported.
942 @item -timelimit @var{duration} (@emph{global})
943 Exit after ffmpeg has been running for @var{duration} seconds.
944 @item -dump (@emph{global})
945 Dump each input packet to stderr.
946 @item -hex (@emph{global})
947 When dumping packets, also dump the payload.
948 @item -ps @var{size}
949 Set RTP payload size in bytes.
950 @item -re (@emph{input})
951 Read input at native frame rate. Mainly used to simulate a grab device.
952 @item -loop_input
953 Loop over the input stream. Currently it works only for image
954 streams. This option is used for automatic FFserver testing.
955 This option is deprecated, use -loop 1.
956 @item -loop_output @var{number_of_times}
957 Repeatedly loop output for formats that support looping such as animated GIF
958 (0 will loop the output infinitely).
959 This option is deprecated, use -loop.
960 @item -threads @var{count}
961 Thread count.
962 @item -vsync @var{parameter}
963 Video sync method.
964 For compatibility reasons old values can be specified as numbers.
965 Newly added values will have to be specified as strings always.
966
967 @table @option
968 @item 0, passthrough
969 Each frame is passed with its timestamp from the demuxer to the muxer.
970 @item 1, cfr
971 Frames will be duplicated and dropped to achieve exactly the requested
972 constant framerate.
973 @item 2, vfr
974 Frames are passed through with their timestamp or dropped so as to
975 prevent 2 frames from having the same timestamp.
976 @item drop
977 As passthrough but destroys all timestamps, making the muxer generate
978 fresh timestamps based on frame-rate.
979 @item -1, auto
980 Chooses between 1 and 2 depending on muxer capabilities. This is the
981 default method.
982 @end table
983
984 With -map you can select from which stream the timestamps should be
985 taken. You can leave either video or audio unchanged and sync the
986 remaining stream(s) to the unchanged one.
987
988 @item -async @var{samples_per_second}
989 Audio sync method. "Stretches/squeezes" the audio stream to match the timestamps,
990 the parameter is the maximum samples per second by which the audio is changed.
991 -async 1 is a special case where only the start of the audio stream is corrected
992 without any later correction.
993 @item -copyts
994 Copy timestamps from input to output.
995 @item -copytb
996 Copy input stream time base from input to output when stream copying.
997 @item -shortest
998 Finish encoding when the shortest input stream ends.
999 @item -dts_delta_threshold
1000 Timestamp discontinuity delta threshold.
1001 @item -muxdelay @var{seconds} (@emph{input})
1002 Set the maximum demux-decode delay.
1003 @item -muxpreload @var{seconds} (@emph{input})
1004 Set the initial demux-decode delay.
1005 @item -streamid @var{output-stream-index}:@var{new-value} (@emph{output})
1006 Assign a new stream-id value to an output stream. This option should be
1007 specified prior to the output filename to which it applies.
1008 For the situation where multiple output files exist, a streamid
1009 may be reassigned to a different value.
1010
1011 For example, to set the stream 0 PID to 33 and the stream 1 PID to 36 for
1012 an output mpegts file:
1013 @example
1014 ffmpeg -i infile -streamid 0:33 -streamid 1:36 out.ts
1015 @end example
1016
1017 @item -bsf[:@var{stream_specifier}] @var{bitstream_filters} (@emph{output,per-stream})
1018 Set bitstream filters for matching streams. @var{bistream_filters} is
1019 a comma-separated list of bitstream filters. Use the @code{-bsfs} option
1020 to get the list of bitstream filters.
1021 @example
1022 ffmpeg -i h264.mp4 -c:v copy -bsf:v h264_mp4toannexb -an out.h264
1023 @end example
1024 @example
1025 ffmpeg -i file.mov -an -vn -bsf:s mov2textsub -c:s copy -f rawvideo sub.txt
1026 @end example
1027
1028 @item -tag[:@var{stream_specifier}] @var{codec_tag} (@emph{per-stream})
1029 Force a tag/fourcc for matching streams.
1030
1031 @item -timecode @var{hh}:@var{mm}:@var{ss}SEP@var{ff}
1032 Specify Timecode for writing. @var{SEP} is ':' for non drop timecode and ';'
1033 (or '.') for drop.
1034 @example
1035 ffmpeg -i input.mpg -timecode 01:02:03.04 -r 30000/1001 -s ntsc output.mpg
1036 @end example
1037 @end table
1038
1039 @section Preset files
1040 A preset file contains a sequence of @var{option}=@var{value} pairs,
1041 one for each line, specifying a sequence of options which would be
1042 awkward to specify on the command line. Lines starting with the hash
1043 ('#') character are ignored and are used to provide comments. Check
1044 the @file{presets} directory in the FFmpeg source tree for examples.
1045
1046 Preset files are specified with the @code{vpre}, @code{apre},
1047 @code{spre}, and @code{fpre} options. The @code{fpre} option takes the
1048 filename of the preset instead of a preset name as input and can be
1049 used for any kind of codec. For the @code{vpre}, @code{apre}, and
1050 @code{spre} options, the options specified in a preset file are
1051 applied to the currently selected codec of the same type as the preset
1052 option.
1053
1054 The argument passed to the @code{vpre}, @code{apre}, and @code{spre}
1055 preset options identifies the preset file to use according to the
1056 following rules:
1057
1058 First ffmpeg searches for a file named @var{arg}.ffpreset in the
1059 directories @file{$FFMPEG_DATADIR} (if set), and @file{$HOME/.ffmpeg}, and in
1060 the datadir defined at configuration time (usually @file{PREFIX/share/ffmpeg})
1061 or in a @file{ffpresets} folder along the executable on win32,
1062 in that order. For example, if the argument is @code{libx264-max}, it will
1063 search for the file @file{libx264-max.ffpreset}.
1064
1065 If no such file is found, then ffmpeg will search for a file named
1066 @var{codec_name}-@var{arg}.ffpreset in the above-mentioned
1067 directories, where @var{codec_name} is the name of the codec to which
1068 the preset file options will be applied. For example, if you select
1069 the video codec with @code{-vcodec libx264} and use @code{-vpre max},
1070 then it will search for the file @file{libx264-max.ffpreset}.
1071 @c man end OPTIONS
1072
1073 @chapter Tips
1074 @c man begin TIPS
1075
1076 @itemize
1077 @item
1078 For streaming at very low bitrate application, use a low frame rate
1079 and a small GOP size. This is especially true for RealVideo where
1080 the Linux player does not seem to be very fast, so it can miss
1081 frames. An example is:
1082
1083 @example
1084 ffmpeg -g 3 -r 3 -t 10 -b:v 50k -s qcif -f rv10 /tmp/b.rm
1085 @end example
1086
1087 @item
1088 The parameter 'q' which is displayed while encoding is the current
1089 quantizer. The value 1 indicates that a very good quality could
1090 be achieved. The value 31 indicates the worst quality. If q=31 appears
1091 too often, it means that the encoder cannot compress enough to meet
1092 your bitrate. You must either increase the bitrate, decrease the
1093 frame rate or decrease the frame size.
1094
1095 @item
1096 If your computer is not fast enough, you can speed up the
1097 compression at the expense of the compression ratio. You can use
1098 '-me zero' to speed up motion estimation, and '-intra' to disable
1099 motion estimation completely (you have only I-frames, which means it
1100 is about as good as JPEG compression).
1101
1102 @item
1103 To have very low audio bitrates, reduce the sampling frequency
1104 (down to 22050 Hz for MPEG audio, 22050 or 11025 for AC-3).
1105
1106 @item
1107 To have a constant quality (but a variable bitrate), use the option
1108 '-qscale n' when 'n' is between 1 (excellent quality) and 31 (worst
1109 quality).
1110
1111 @end itemize
1112 @c man end TIPS
1113
1114 @chapter Examples
1115 @c man begin EXAMPLES
1116
1117 @section Preset files
1118
1119 A preset file contains a sequence of @var{option=value} pairs, one for
1120 each line, specifying a sequence of options which can be specified also on
1121 the command line. Lines starting with the hash ('#') character are ignored and
1122 are used to provide comments. Empty lines are also ignored. Check the
1123 @file{presets} directory in the FFmpeg source tree for examples.
1124
1125 Preset files are specified with the @code{pre} option, this option takes a
1126 preset name as input.  FFmpeg searches for a file named @var{preset_name}.avpreset in
1127 the directories @file{$AVCONV_DATADIR} (if set), and @file{$HOME/.ffmpeg}, and in
1128 the data directory defined at configuration time (usually @file{$PREFIX/share/ffmpeg})
1129 in that order.  For example, if the argument is @code{libx264-max}, it will
1130 search for the file @file{libx264-max.avpreset}.
1131
1132 @section Video and Audio grabbing
1133
1134 If you specify the input format and device then ffmpeg can grab video
1135 and audio directly.
1136
1137 @example
1138 ffmpeg -f oss -i /dev/dsp -f video4linux2 -i /dev/video0 /tmp/out.mpg
1139 @end example
1140
1141 Or with an ALSA audio source (mono input, card id 1) instead of OSS:
1142 @example
1143 ffmpeg -f alsa -ac 1 -i hw:1 -f video4linux2 -i /dev/video0 /tmp/out.mpg
1144 @end example
1145
1146 Note that you must activate the right video source and channel before
1147 launching ffmpeg with any TV viewer such as
1148 @uref{http://linux.bytesex.org/xawtv/, xawtv} by Gerd Knorr. You also
1149 have to set the audio recording levels correctly with a
1150 standard mixer.
1151
1152 @section X11 grabbing
1153
1154 Grab the X11 display with ffmpeg via
1155
1156 @example
1157 ffmpeg -f x11grab -s cif -r 25 -i :0.0 /tmp/out.mpg
1158 @end example
1159
1160 0.0 is display.screen number of your X11 server, same as
1161 the DISPLAY environment variable.
1162
1163 @example
1164 ffmpeg -f x11grab -s cif -r 25 -i :0.0+10,20 /tmp/out.mpg
1165 @end example
1166
1167 0.0 is display.screen number of your X11 server, same as the DISPLAY environment
1168 variable. 10 is the x-offset and 20 the y-offset for the grabbing.
1169
1170 @section Video and Audio file format conversion
1171
1172 Any supported file format and protocol can serve as input to ffmpeg:
1173
1174 Examples:
1175 @itemize
1176 @item
1177 You can use YUV files as input:
1178
1179 @example
1180 ffmpeg -i /tmp/test%d.Y /tmp/out.mpg
1181 @end example
1182
1183 It will use the files:
1184 @example
1185 /tmp/test0.Y, /tmp/test0.U, /tmp/test0.V,
1186 /tmp/test1.Y, /tmp/test1.U, /tmp/test1.V, etc...
1187 @end example
1188
1189 The Y files use twice the resolution of the U and V files. They are
1190 raw files, without header. They can be generated by all decent video
1191 decoders. You must specify the size of the image with the @option{-s} option
1192 if ffmpeg cannot guess it.
1193
1194 @item
1195 You can input from a raw YUV420P file:
1196
1197 @example
1198 ffmpeg -i /tmp/test.yuv /tmp/out.avi
1199 @end example
1200
1201 test.yuv is a file containing raw YUV planar data. Each frame is composed
1202 of the Y plane followed by the U and V planes at half vertical and
1203 horizontal resolution.
1204
1205 @item
1206 You can output to a raw YUV420P file:
1207
1208 @example
1209 ffmpeg -i mydivx.avi hugefile.yuv
1210 @end example
1211
1212 @item
1213 You can set several input files and output files:
1214
1215 @example
1216 ffmpeg -i /tmp/a.wav -s 640x480 -i /tmp/a.yuv /tmp/a.mpg
1217 @end example
1218
1219 Converts the audio file a.wav and the raw YUV video file a.yuv
1220 to MPEG file a.mpg.
1221
1222 @item
1223 You can also do audio and video conversions at the same time:
1224
1225 @example
1226 ffmpeg -i /tmp/a.wav -ar 22050 /tmp/a.mp2
1227 @end example
1228
1229 Converts a.wav to MPEG audio at 22050 Hz sample rate.
1230
1231 @item
1232 You can encode to several formats at the same time and define a
1233 mapping from input stream to output streams:
1234
1235 @example
1236 ffmpeg -i /tmp/a.wav -map 0:a -b:a 64k /tmp/a.mp2 -map 0:a -b:a 128k /tmp/b.mp2
1237 @end example
1238
1239 Converts a.wav to a.mp2 at 64 kbits and to b.mp2 at 128 kbits. '-map
1240 file:index' specifies which input stream is used for each output
1241 stream, in the order of the definition of output streams.
1242
1243 @item
1244 You can transcode decrypted VOBs:
1245
1246 @example
1247 ffmpeg -i snatch_1.vob -f avi -c:v mpeg4 -b:v 800k -g 300 -bf 2 -c:a libmp3lame -b:a 128k snatch.avi
1248 @end example
1249
1250 This is a typical DVD ripping example; the input is a VOB file, the
1251 output an AVI file with MPEG-4 video and MP3 audio. Note that in this
1252 command we use B-frames so the MPEG-4 stream is DivX5 compatible, and
1253 GOP size is 300 which means one intra frame every 10 seconds for 29.97fps
1254 input video. Furthermore, the audio stream is MP3-encoded so you need
1255 to enable LAME support by passing @code{--enable-libmp3lame} to configure.
1256 The mapping is particularly useful for DVD transcoding
1257 to get the desired audio language.
1258
1259 NOTE: To see the supported input formats, use @code{ffmpeg -formats}.
1260
1261 @item
1262 You can extract images from a video, or create a video from many images:
1263
1264 For extracting images from a video:
1265 @example
1266 ffmpeg -i foo.avi -r 1 -s WxH -f image2 foo-%03d.jpeg
1267 @end example
1268
1269 This will extract one video frame per second from the video and will
1270 output them in files named @file{foo-001.jpeg}, @file{foo-002.jpeg},
1271 etc. Images will be rescaled to fit the new WxH values.
1272
1273 If you want to extract just a limited number of frames, you can use the
1274 above command in combination with the -vframes or -t option, or in
1275 combination with -ss to start extracting from a certain point in time.
1276
1277 For creating a video from many images:
1278 @example
1279 ffmpeg -f image2 -i foo-%03d.jpeg -r 12 -s WxH foo.avi
1280 @end example
1281
1282 The syntax @code{foo-%03d.jpeg} specifies to use a decimal number
1283 composed of three digits padded with zeroes to express the sequence
1284 number. It is the same syntax supported by the C printf function, but
1285 only formats accepting a normal integer are suitable.
1286
1287 @item
1288 You can put many streams of the same type in the output:
1289
1290 @example
1291 ffmpeg -i test1.avi -i test2.avi -map 0.3 -map 0.2 -map 0.1 -map 0.0 -c copy test12.nut
1292 @end example
1293
1294 The resulting output file @file{test12.avi} will contain first four streams from
1295 the input file in reverse order.
1296
1297 @end itemize
1298 @c man end EXAMPLES
1299
1300 @include eval.texi
1301 @include decoders.texi
1302 @include encoders.texi
1303 @include demuxers.texi
1304 @include muxers.texi
1305 @include indevs.texi
1306 @include outdevs.texi
1307 @include protocols.texi
1308 @include bitstream_filters.texi
1309 @include filters.texi
1310 @include metadata.texi
1311
1312 @ignore
1313
1314 @setfilename ffmpeg
1315 @settitle ffmpeg video converter
1316
1317 @c man begin SEEALSO
1318 ffplay(1), ffprobe(1), ffserver(1) and the FFmpeg HTML documentation
1319 @c man end
1320
1321 @c man begin AUTHORS
1322 See git history
1323 @c man end
1324
1325 @end ignore
1326
1327 @bye