Mercurial > hg > pmhd
diff ffmpeg/doc/ffmpeg-codecs.1 @ 10:6840f77b83aa
commit
author | Yading Song <yading.song@eecs.qmul.ac.uk> |
---|---|
date | Sun, 21 Apr 2013 10:55:35 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ffmpeg/doc/ffmpeg-codecs.1 Sun Apr 21 10:55:35 2013 +0200 @@ -0,0 +1,2707 @@ +.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14) +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. \*(C+ will +.\" give a nicer C++. Capital omega is used to do unbreakable dashes and +.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, +.\" nothing in troff, for use with C<>. +.tr \(*W- +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +'br\} +.\" +.\" Escape single quotes in literal strings from groff's Unicode transform. +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" +.\" If the F register is turned on, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.ie \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. nr % 0 +. rr F +.\} +.el \{\ +. de IX +.. +.\} +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "FFMPEG-CODECS 1" +.TH FFMPEG-CODECS 1 "2013-04-21" " " " " +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.if n .ad l +.nh +.SH "NAME" +ffmpeg\-codecs \- FFmpeg codecs +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +This document describes the codecs (decoders and encoders) provided by +the libavcodec library. +.SH "CODEC OPTIONS" +.IX Header "CODEC OPTIONS" +libavcodec provides some generic global options, which can be set on +all the encoders and decoders. In addition each codec may support +so-called private options, which are specific for a given codec. +.PP +Sometimes, a global option may only affect a specific kind of codec, +and may be unsensical or ignored by another, so you need to be aware +of the meaning of the specified options. Also some options are +meant only for decoding or encoding. +.PP +Options may be set by specifying \-\fIoption\fR \fIvalue\fR in the +FFmpeg tools, or by setting the value explicitly in the +\&\f(CW\*(C`AVCodecContext\*(C'\fR options or using the \fIlibavutil/opt.h\fR \s-1API\s0 +for programmatic use. +.PP +The list of supported options follow: +.IP "\fBb\fR \fIinteger\fR \fB(\fR\fIencoding,audio,video\fR\fB)\fR" 4 +.IX Item "b integer (encoding,audio,video)" +Set bitrate in bits/s. Default value is 200K. +.IP "\fBab\fR \fIinteger\fR \fB(\fR\fIencoding,audio\fR\fB)\fR" 4 +.IX Item "ab integer (encoding,audio)" +Set audio bitrate (in bits/s). Default value is 128K. +.IP "\fBbt\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "bt integer (encoding,video)" +Set video bitrate tolerance (in bits/s). In 1\-pass mode, bitrate +tolerance specifies how far ratecontrol is willing to deviate from the +target average bitrate value. This is not related to min/max +bitrate. Lowering tolerance too much has an adverse effect on quality. +.IP "\fBflags\fR \fIflags\fR \fB(\fR\fIdecoding/encoding,audio,video,subtitles\fR\fB)\fR" 4 +.IX Item "flags flags (decoding/encoding,audio,video,subtitles)" +Set generic flags. +.Sp +Possible values: +.RS 4 +.IP "\fBmv4\fR" 4 +.IX Item "mv4" +Use four motion vector by macroblock (mpeg4). +.IP "\fBqpel\fR" 4 +.IX Item "qpel" +Use 1/4 pel motion compensation. +.IP "\fBloop\fR" 4 +.IX Item "loop" +Use loop filter. +.IP "\fBqscale\fR" 4 +.IX Item "qscale" +Use fixed qscale. +.IP "\fBgmc\fR" 4 +.IX Item "gmc" +Use gmc. +.IP "\fBmv0\fR" 4 +.IX Item "mv0" +Always try a mb with mv=<0,0>. +.IP "\fBinput_preserved\fR" 4 +.IX Item "input_preserved" +.PD 0 +.IP "\fBpass1\fR" 4 +.IX Item "pass1" +.PD +Use internal 2pass ratecontrol in first pass mode. +.IP "\fBpass2\fR" 4 +.IX Item "pass2" +Use internal 2pass ratecontrol in second pass mode. +.IP "\fBgray\fR" 4 +.IX Item "gray" +Only decode/encode grayscale. +.IP "\fBemu_edge\fR" 4 +.IX Item "emu_edge" +Do not draw edges. +.IP "\fBpsnr\fR" 4 +.IX Item "psnr" +Set error[?] variables during encoding. +.IP "\fBtruncated\fR" 4 +.IX Item "truncated" +.PD 0 +.IP "\fBnaq\fR" 4 +.IX Item "naq" +.PD +Normalize adaptive quantization. +.IP "\fBildct\fR" 4 +.IX Item "ildct" +Use interlaced \s-1DCT\s0. +.IP "\fBlow_delay\fR" 4 +.IX Item "low_delay" +Force low delay. +.IP "\fBglobal_header\fR" 4 +.IX Item "global_header" +Place global headers in extradata instead of every keyframe. +.IP "\fBbitexact\fR" 4 +.IX Item "bitexact" +Use only bitexact stuff (except (I)DCT). +.IP "\fBaic\fR" 4 +.IX Item "aic" +Apply H263 advanced intra coding / mpeg4 ac prediction. +.IP "\fBcbp\fR" 4 +.IX Item "cbp" +Deprecated, use mpegvideo private options instead. +.IP "\fBqprd\fR" 4 +.IX Item "qprd" +Deprecated, use mpegvideo private options instead. +.IP "\fBilme\fR" 4 +.IX Item "ilme" +Apply interlaced motion estimation. +.IP "\fBcgop\fR" 4 +.IX Item "cgop" +Use closed gop. +.RE +.RS 4 +.RE +.IP "\fBsub_id\fR \fIinteger\fR" 4 +.IX Item "sub_id integer" +Deprecated, currently unused. +.IP "\fBme_method\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "me_method integer (encoding,video)" +Set motion estimation method. +.Sp +Possible values: +.RS 4 +.IP "\fBzero\fR" 4 +.IX Item "zero" +zero motion estimation (fastest) +.IP "\fBfull\fR" 4 +.IX Item "full" +full motion estimation (slowest) +.IP "\fBepzs\fR" 4 +.IX Item "epzs" +\&\s-1EPZS\s0 motion estimation (default) +.IP "\fBesa\fR" 4 +.IX Item "esa" +esa motion estimation (alias for full) +.IP "\fBtesa\fR" 4 +.IX Item "tesa" +tesa motion estimation +.IP "\fBdia\fR" 4 +.IX Item "dia" +dia motion estimation (alias for epzs) +.IP "\fBlog\fR" 4 +.IX Item "log" +log motion estimation +.IP "\fBphods\fR" 4 +.IX Item "phods" +phods motion estimation +.IP "\fBx1\fR" 4 +.IX Item "x1" +X1 motion estimation +.IP "\fBhex\fR" 4 +.IX Item "hex" +hex motion estimation +.IP "\fBumh\fR" 4 +.IX Item "umh" +umh motion estimation +.IP "\fBiter\fR" 4 +.IX Item "iter" +iter motion estimation +.RE +.RS 4 +.RE +.IP "\fBextradata_size\fR \fIinteger\fR" 4 +.IX Item "extradata_size integer" +Set extradata size. +.IP "\fBtime_base\fR \fIrational number\fR" 4 +.IX Item "time_base rational number" +Set codec time base. +.Sp +It is the fundamental unit of time (in seconds) in terms of which +frame timestamps are represented. For fixed-fps content, timebase +should be \f(CW\*(C`1 / frame_rate\*(C'\fR and timestamp increments should be +identically 1. +.IP "\fBg\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "g integer (encoding,video)" +Set the group of picture size. Default value is 12. +.IP "\fBar\fR \fIinteger\fR \fB(\fR\fIdecoding/encoding,audio\fR\fB)\fR" 4 +.IX Item "ar integer (decoding/encoding,audio)" +Set audio sampling rate (in Hz). +.IP "\fBac\fR \fIinteger\fR \fB(\fR\fIdecoding/encoding,audio\fR\fB)\fR" 4 +.IX Item "ac integer (decoding/encoding,audio)" +Set number of audio channels. +.IP "\fBcutoff\fR \fIinteger\fR \fB(\fR\fIencoding,audio\fR\fB)\fR" 4 +.IX Item "cutoff integer (encoding,audio)" +Set cutoff bandwidth. +.IP "\fBframe_size\fR \fIinteger\fR \fB(\fR\fIencoding,audio\fR\fB)\fR" 4 +.IX Item "frame_size integer (encoding,audio)" +Set audio frame size. +.Sp +Each submitted frame except the last must contain exactly frame_size +samples per channel. May be 0 when the codec has +\&\s-1CODEC_CAP_VARIABLE_FRAME_SIZE\s0 set, in that case the frame size is not +restricted. It is set by some decoders to indicate constant frame +size. +.IP "\fBframe_number\fR \fIinteger\fR" 4 +.IX Item "frame_number integer" +Set the frame number. +.IP "\fBdelay\fR \fIinteger\fR" 4 +.IX Item "delay integer" +.PD 0 +.IP "\fBqcomp\fR \fIfloat\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "qcomp float (encoding,video)" +.PD +Set video quantizer scale compression (\s-1VBR\s0). It is used as a constant +in the ratecontrol equation. Recommended range for default rc_eq: +0.0\-1.0. +.IP "\fBqblur\fR \fIfloat\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "qblur float (encoding,video)" +Set video quantizer scale blur (\s-1VBR\s0). +.IP "\fBqmin\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "qmin integer (encoding,video)" +Set min video quantizer scale (\s-1VBR\s0). Must be included between \-1 and +69, default value is 2. +.IP "\fBqmax\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "qmax integer (encoding,video)" +Set max video quantizer scale (\s-1VBR\s0). Must be included between \-1 and +1024, default value is 31. +.IP "\fBqdiff\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "qdiff integer (encoding,video)" +Set max difference between the quantizer scale (\s-1VBR\s0). +.IP "\fBbf\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "bf integer (encoding,video)" +Set max number of B frames. +.IP "\fBb_qfactor\fR \fIfloat\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "b_qfactor float (encoding,video)" +Set qp factor between P and B frames. +.IP "\fBrc_strategy\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "rc_strategy integer (encoding,video)" +Set ratecontrol method. +.IP "\fBb_strategy\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "b_strategy integer (encoding,video)" +Set strategy to choose between I/P/B\-frames. +.IP "\fBps\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "ps integer (encoding,video)" +Set \s-1RTP\s0 payload size in bytes. +.IP "\fBmv_bits\fR \fIinteger\fR" 4 +.IX Item "mv_bits integer" +.PD 0 +.IP "\fBheader_bits\fR \fIinteger\fR" 4 +.IX Item "header_bits integer" +.IP "\fBi_tex_bits\fR \fIinteger\fR" 4 +.IX Item "i_tex_bits integer" +.IP "\fBp_tex_bits\fR \fIinteger\fR" 4 +.IX Item "p_tex_bits integer" +.IP "\fBi_count\fR \fIinteger\fR" 4 +.IX Item "i_count integer" +.IP "\fBp_count\fR \fIinteger\fR" 4 +.IX Item "p_count integer" +.IP "\fBskip_count\fR \fIinteger\fR" 4 +.IX Item "skip_count integer" +.IP "\fBmisc_bits\fR \fIinteger\fR" 4 +.IX Item "misc_bits integer" +.IP "\fBframe_bits\fR \fIinteger\fR" 4 +.IX Item "frame_bits integer" +.IP "\fBcodec_tag\fR \fIinteger\fR" 4 +.IX Item "codec_tag integer" +.IP "\fBbug\fR \fIflags\fR \fB(\fR\fIdecoding,video\fR\fB)\fR" 4 +.IX Item "bug flags (decoding,video)" +.PD +Workaround not auto detected encoder bugs. +.Sp +Possible values: +.RS 4 +.IP "\fBautodetect\fR" 4 +.IX Item "autodetect" +.PD 0 +.IP "\fBold_msmpeg4\fR" 4 +.IX Item "old_msmpeg4" +.PD +some old lavc generated msmpeg4v3 files (no autodetection) +.IP "\fBxvid_ilace\fR" 4 +.IX Item "xvid_ilace" +Xvid interlacing bug (autodetected if fourcc==XVIX) +.IP "\fBump4\fR" 4 +.IX Item "ump4" +(autodetected if fourcc==UMP4) +.IP "\fBno_padding\fR" 4 +.IX Item "no_padding" +padding bug (autodetected) +.IP "\fBamv\fR" 4 +.IX Item "amv" +.PD 0 +.IP "\fBac_vlc\fR" 4 +.IX Item "ac_vlc" +.PD +illegal vlc bug (autodetected per fourcc) +.IP "\fBqpel_chroma\fR" 4 +.IX Item "qpel_chroma" +.PD 0 +.IP "\fBstd_qpel\fR" 4 +.IX Item "std_qpel" +.PD +old standard qpel (autodetected per fourcc/version) +.IP "\fBqpel_chroma2\fR" 4 +.IX Item "qpel_chroma2" +.PD 0 +.IP "\fBdirect_blocksize\fR" 4 +.IX Item "direct_blocksize" +.PD +direct-qpel-blocksize bug (autodetected per fourcc/version) +.IP "\fBedge\fR" 4 +.IX Item "edge" +edge padding bug (autodetected per fourcc/version) +.IP "\fBhpel_chroma\fR" 4 +.IX Item "hpel_chroma" +.PD 0 +.IP "\fBdc_clip\fR" 4 +.IX Item "dc_clip" +.IP "\fBms\fR" 4 +.IX Item "ms" +.PD +Workaround various bugs in microsoft broken decoders. +.IP "\fBtrunc\fR" 4 +.IX Item "trunc" +trancated frames +.RE +.RS 4 +.RE +.IP "\fBlelim\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "lelim integer (encoding,video)" +Set single coefficient elimination threshold for luminance (negative +values also consider \s-1DC\s0 coefficient). +.IP "\fBcelim\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "celim integer (encoding,video)" +Set single coefficient elimination threshold for chrominance (negative +values also consider dc coefficient) +.IP "\fBstrict\fR \fIinteger\fR \fB(\fR\fIdecoding/encoding,audio,video\fR\fB)\fR" 4 +.IX Item "strict integer (decoding/encoding,audio,video)" +Specify how strictly to follow the standards. +.Sp +Possible values: +.RS 4 +.IP "\fBvery\fR" 4 +.IX Item "very" +strictly conform to a older more strict version of the spec or reference software +.IP "\fBstrict\fR" 4 +.IX Item "strict" +strictly conform to all the things in the spec no matter what consequences +.IP "\fBnormal\fR" 4 +.IX Item "normal" +.PD 0 +.IP "\fBunofficial\fR" 4 +.IX Item "unofficial" +.PD +allow unofficial extensions +.IP "\fBexperimental\fR" 4 +.IX Item "experimental" +allow non standardized experimental things +.RE +.RS 4 +.RE +.IP "\fBb_qoffset\fR \fIfloat\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "b_qoffset float (encoding,video)" +Set \s-1QP\s0 offset between P and B frames. +.IP "\fBerr_detect\fR \fIflags\fR \fB(\fR\fIdecoding,audio,video\fR\fB)\fR" 4 +.IX Item "err_detect flags (decoding,audio,video)" +Set error detection flags. +.Sp +Possible values: +.RS 4 +.IP "\fBcrccheck\fR" 4 +.IX Item "crccheck" +verify embedded CRCs +.IP "\fBbitstream\fR" 4 +.IX Item "bitstream" +detect bitstream specification deviations +.IP "\fBbuffer\fR" 4 +.IX Item "buffer" +detect improper bitstream length +.IP "\fBexplode\fR" 4 +.IX Item "explode" +abort decoding on minor error detection +.IP "\fBcareful\fR" 4 +.IX Item "careful" +consider things that violate the spec and have not been seen in the wild as errors +.IP "\fBcompliant\fR" 4 +.IX Item "compliant" +consider all spec non compliancies as errors +.IP "\fBaggressive\fR" 4 +.IX Item "aggressive" +consider things that a sane encoder should not do as an error +.RE +.RS 4 +.RE +.IP "\fBhas_b_frames\fR \fIinteger\fR" 4 +.IX Item "has_b_frames integer" +.PD 0 +.IP "\fBblock_align\fR \fIinteger\fR" 4 +.IX Item "block_align integer" +.IP "\fBmpeg_quant\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "mpeg_quant integer (encoding,video)" +.PD +Use \s-1MPEG\s0 quantizers instead of H.263. +.IP "\fBqsquish\fR \fIfloat\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "qsquish float (encoding,video)" +How to keep quantizer between qmin and qmax (0 = clip, 1 = use +differentiable function). +.IP "\fBrc_qmod_amp\fR \fIfloat\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "rc_qmod_amp float (encoding,video)" +Set experimental quantizer modulation. +.IP "\fBrc_qmod_freq\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "rc_qmod_freq integer (encoding,video)" +Set experimental quantizer modulation. +.IP "\fBrc_override_count\fR \fIinteger\fR" 4 +.IX Item "rc_override_count integer" +.PD 0 +.IP "\fBrc_eq\fR \fIstring\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "rc_eq string (encoding,video)" +.PD +Set rate control equation. When computing the expression, besides the +standard functions defined in the section 'Expression Evaluation', the +following functions are available: bits2qp(bits), qp2bits(qp). Also +the following constants are available: iTex pTex tex mv fCode iCount +mcVar var isI isP isB avgQP qComp avgIITex avgPITex avgPPTex avgBPTex +avgTex. +.IP "\fBmaxrate\fR \fIinteger\fR \fB(\fR\fIencoding,audio,video\fR\fB)\fR" 4 +.IX Item "maxrate integer (encoding,audio,video)" +Set max bitrate tolerance (in bits/s). Requires bufsize to be set. +.IP "\fBminrate\fR \fIinteger\fR \fB(\fR\fIencoding,audio,video\fR\fB)\fR" 4 +.IX Item "minrate integer (encoding,audio,video)" +Set min bitrate tolerance (in bits/s). Most useful in setting up a \s-1CBR\s0 +encode. It is of little use elsewise. +.IP "\fBbufsize\fR \fIinteger\fR \fB(\fR\fIencoding,audio,video\fR\fB)\fR" 4 +.IX Item "bufsize integer (encoding,audio,video)" +Set ratecontrol buffer size (in bits). +.IP "\fBrc_buf_aggressivity\fR \fIfloat\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "rc_buf_aggressivity float (encoding,video)" +Currently useless. +.IP "\fBi_qfactor\fR \fIfloat\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "i_qfactor float (encoding,video)" +Set \s-1QP\s0 factor between P and I frames. +.IP "\fBi_qoffset\fR \fIfloat\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "i_qoffset float (encoding,video)" +Set \s-1QP\s0 offset between P and I frames. +.IP "\fBrc_init_cplx\fR \fIfloat\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "rc_init_cplx float (encoding,video)" +Set initial complexity for 1\-pass encoding. +.IP "\fBdct\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "dct integer (encoding,video)" +Set \s-1DCT\s0 algorithm. +.Sp +Possible values: +.RS 4 +.IP "\fBauto\fR" 4 +.IX Item "auto" +autoselect a good one (default) +.IP "\fBfastint\fR" 4 +.IX Item "fastint" +fast integer +.IP "\fBint\fR" 4 +.IX Item "int" +accurate integer +.IP "\fBmmx\fR" 4 +.IX Item "mmx" +.PD 0 +.IP "\fBaltivec\fR" 4 +.IX Item "altivec" +.IP "\fBfaan\fR" 4 +.IX Item "faan" +.PD +floating point \s-1AAN\s0 \s-1DCT\s0 +.RE +.RS 4 +.RE +.IP "\fBlumi_mask\fR \fIfloat\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "lumi_mask float (encoding,video)" +Compress bright areas stronger than medium ones. +.IP "\fBtcplx_mask\fR \fIfloat\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "tcplx_mask float (encoding,video)" +Set temporal complexity masking. +.IP "\fBscplx_mask\fR \fIfloat\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "scplx_mask float (encoding,video)" +Set spatial complexity masking. +.IP "\fBp_mask\fR \fIfloat\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "p_mask float (encoding,video)" +Set inter masking. +.IP "\fBdark_mask\fR \fIfloat\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "dark_mask float (encoding,video)" +Compress dark areas stronger than medium ones. +.IP "\fBidct\fR \fIinteger\fR \fB(\fR\fIdecoding/encoding,video\fR\fB)\fR" 4 +.IX Item "idct integer (decoding/encoding,video)" +Select \s-1IDCT\s0 implementation. +.Sp +Possible values: +.RS 4 +.IP "\fBauto\fR" 4 +.IX Item "auto" +.PD 0 +.IP "\fBint\fR" 4 +.IX Item "int" +.IP "\fBsimple\fR" 4 +.IX Item "simple" +.IP "\fBsimplemmx\fR" 4 +.IX Item "simplemmx" +.IP "\fBlibmpeg2mmx\fR" 4 +.IX Item "libmpeg2mmx" +.IP "\fBmmi\fR" 4 +.IX Item "mmi" +.IP "\fBarm\fR" 4 +.IX Item "arm" +.IP "\fBaltivec\fR" 4 +.IX Item "altivec" +.IP "\fBsh4\fR" 4 +.IX Item "sh4" +.IP "\fBsimplearm\fR" 4 +.IX Item "simplearm" +.IP "\fBsimplearmv5te\fR" 4 +.IX Item "simplearmv5te" +.IP "\fBsimplearmv6\fR" 4 +.IX Item "simplearmv6" +.IP "\fBsimpleneon\fR" 4 +.IX Item "simpleneon" +.IP "\fBsimplealpha\fR" 4 +.IX Item "simplealpha" +.IP "\fBh264\fR" 4 +.IX Item "h264" +.IP "\fBvp3\fR" 4 +.IX Item "vp3" +.IP "\fBipp\fR" 4 +.IX Item "ipp" +.IP "\fBxvidmmx\fR" 4 +.IX Item "xvidmmx" +.IP "\fBfaani\fR" 4 +.IX Item "faani" +.PD +floating point \s-1AAN\s0 \s-1IDCT\s0 +.RE +.RS 4 +.RE +.IP "\fBslice_count\fR \fIinteger\fR" 4 +.IX Item "slice_count integer" +.PD 0 +.IP "\fBec\fR \fIflags\fR \fB(\fR\fIdecoding,video\fR\fB)\fR" 4 +.IX Item "ec flags (decoding,video)" +.PD +Set error concealment strategy. +.Sp +Possible values: +.RS 4 +.IP "\fBguess_mvs\fR" 4 +.IX Item "guess_mvs" +iterative motion vector (\s-1MV\s0) search (slow) +.IP "\fBdeblock\fR" 4 +.IX Item "deblock" +use strong deblock filter for damaged MBs +.RE +.RS 4 +.RE +.IP "\fBbits_per_coded_sample\fR \fIinteger\fR" 4 +.IX Item "bits_per_coded_sample integer" +.PD 0 +.IP "\fBpred\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "pred integer (encoding,video)" +.PD +Set prediction method. +.Sp +Possible values: +.RS 4 +.IP "\fBleft\fR" 4 +.IX Item "left" +.PD 0 +.IP "\fBplane\fR" 4 +.IX Item "plane" +.IP "\fBmedian\fR" 4 +.IX Item "median" +.RE +.RS 4 +.RE +.IP "\fBaspect\fR \fIrational number\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "aspect rational number (encoding,video)" +.PD +Set sample aspect ratio. +.IP "\fBdebug\fR \fIflags\fR \fB(\fR\fIdecoding/encoding,audio,video,subtitles\fR\fB)\fR" 4 +.IX Item "debug flags (decoding/encoding,audio,video,subtitles)" +Print specific debug info. +.Sp +Possible values: +.RS 4 +.IP "\fBpict\fR" 4 +.IX Item "pict" +picture info +.IP "\fBrc\fR" 4 +.IX Item "rc" +rate control +.IP "\fBbitstream\fR" 4 +.IX Item "bitstream" +.PD 0 +.IP "\fBmb_type\fR" 4 +.IX Item "mb_type" +.PD +macroblock (\s-1MB\s0) type +.IP "\fBqp\fR" 4 +.IX Item "qp" +per-block quantization parameter (\s-1QP\s0) +.IP "\fBmv\fR" 4 +.IX Item "mv" +motion vector +.IP "\fBdct_coeff\fR" 4 +.IX Item "dct_coeff" +.PD 0 +.IP "\fBskip\fR" 4 +.IX Item "skip" +.IP "\fBstartcode\fR" 4 +.IX Item "startcode" +.IP "\fBpts\fR" 4 +.IX Item "pts" +.IP "\fBer\fR" 4 +.IX Item "er" +.PD +error recognition +.IP "\fBmmco\fR" 4 +.IX Item "mmco" +memory management control operations (H.264) +.IP "\fBbugs\fR" 4 +.IX Item "bugs" +.PD 0 +.IP "\fBvis_qp\fR" 4 +.IX Item "vis_qp" +.PD +visualize quantization parameter (\s-1QP\s0), lower \s-1QP\s0 are tinted greener +.IP "\fBvis_mb_type\fR" 4 +.IX Item "vis_mb_type" +visualize block types +.IP "\fBbuffers\fR" 4 +.IX Item "buffers" +picture buffer allocations +.IP "\fBthread_ops\fR" 4 +.IX Item "thread_ops" +threading operations +.RE +.RS 4 +.RE +.IP "\fBvismv\fR \fIinteger\fR \fB(\fR\fIdecoding,video\fR\fB)\fR" 4 +.IX Item "vismv integer (decoding,video)" +Visualize motion vectors (MVs). +.Sp +Possible values: +.RS 4 +.IP "\fBpf\fR" 4 +.IX Item "pf" +forward predicted MVs of P\-frames +.IP "\fBbf\fR" 4 +.IX Item "bf" +forward predicted MVs of B\-frames +.IP "\fBbb\fR" 4 +.IX Item "bb" +backward predicted MVs of B\-frames +.RE +.RS 4 +.RE +.IP "\fBcmp\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "cmp integer (encoding,video)" +Set full pel me compare function. +.Sp +Possible values: +.RS 4 +.IP "\fBsad\fR" 4 +.IX Item "sad" +sum of absolute differences, fast (default) +.IP "\fBsse\fR" 4 +.IX Item "sse" +sum of squared errors +.IP "\fBsatd\fR" 4 +.IX Item "satd" +sum of absolute Hadamard transformed differences +.IP "\fBdct\fR" 4 +.IX Item "dct" +sum of absolute \s-1DCT\s0 transformed differences +.IP "\fBpsnr\fR" 4 +.IX Item "psnr" +sum of squared quantization errors (avoid, low quality) +.IP "\fBbit\fR" 4 +.IX Item "bit" +number of bits needed for the block +.IP "\fBrd\fR" 4 +.IX Item "rd" +rate distortion optimal, slow +.IP "\fBzero\fR" 4 +.IX Item "zero" +0 +.IP "\fBvsad\fR" 4 +.IX Item "vsad" +sum of absolute vertical differences +.IP "\fBvsse\fR" 4 +.IX Item "vsse" +sum of squared vertical differences +.IP "\fBnsse\fR" 4 +.IX Item "nsse" +noise preserving sum of squared differences +.IP "\fBw53\fR" 4 +.IX Item "w53" +5/3 wavelet, only used in snow +.IP "\fBw97\fR" 4 +.IX Item "w97" +9/7 wavelet, only used in snow +.IP "\fBdctmax\fR" 4 +.IX Item "dctmax" +.PD 0 +.IP "\fBchroma\fR" 4 +.IX Item "chroma" +.RE +.RS 4 +.RE +.IP "\fBsubcmp\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "subcmp integer (encoding,video)" +.PD +Set sub pel me compare function. +.Sp +Possible values: +.RS 4 +.IP "\fBsad\fR" 4 +.IX Item "sad" +sum of absolute differences, fast (default) +.IP "\fBsse\fR" 4 +.IX Item "sse" +sum of squared errors +.IP "\fBsatd\fR" 4 +.IX Item "satd" +sum of absolute Hadamard transformed differences +.IP "\fBdct\fR" 4 +.IX Item "dct" +sum of absolute \s-1DCT\s0 transformed differences +.IP "\fBpsnr\fR" 4 +.IX Item "psnr" +sum of squared quantization errors (avoid, low quality) +.IP "\fBbit\fR" 4 +.IX Item "bit" +number of bits needed for the block +.IP "\fBrd\fR" 4 +.IX Item "rd" +rate distortion optimal, slow +.IP "\fBzero\fR" 4 +.IX Item "zero" +0 +.IP "\fBvsad\fR" 4 +.IX Item "vsad" +sum of absolute vertical differences +.IP "\fBvsse\fR" 4 +.IX Item "vsse" +sum of squared vertical differences +.IP "\fBnsse\fR" 4 +.IX Item "nsse" +noise preserving sum of squared differences +.IP "\fBw53\fR" 4 +.IX Item "w53" +5/3 wavelet, only used in snow +.IP "\fBw97\fR" 4 +.IX Item "w97" +9/7 wavelet, only used in snow +.IP "\fBdctmax\fR" 4 +.IX Item "dctmax" +.PD 0 +.IP "\fBchroma\fR" 4 +.IX Item "chroma" +.RE +.RS 4 +.RE +.IP "\fBmbcmp\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "mbcmp integer (encoding,video)" +.PD +Set macroblock compare function. +.Sp +Possible values: +.RS 4 +.IP "\fBsad\fR" 4 +.IX Item "sad" +sum of absolute differences, fast (default) +.IP "\fBsse\fR" 4 +.IX Item "sse" +sum of squared errors +.IP "\fBsatd\fR" 4 +.IX Item "satd" +sum of absolute Hadamard transformed differences +.IP "\fBdct\fR" 4 +.IX Item "dct" +sum of absolute \s-1DCT\s0 transformed differences +.IP "\fBpsnr\fR" 4 +.IX Item "psnr" +sum of squared quantization errors (avoid, low quality) +.IP "\fBbit\fR" 4 +.IX Item "bit" +number of bits needed for the block +.IP "\fBrd\fR" 4 +.IX Item "rd" +rate distortion optimal, slow +.IP "\fBzero\fR" 4 +.IX Item "zero" +0 +.IP "\fBvsad\fR" 4 +.IX Item "vsad" +sum of absolute vertical differences +.IP "\fBvsse\fR" 4 +.IX Item "vsse" +sum of squared vertical differences +.IP "\fBnsse\fR" 4 +.IX Item "nsse" +noise preserving sum of squared differences +.IP "\fBw53\fR" 4 +.IX Item "w53" +5/3 wavelet, only used in snow +.IP "\fBw97\fR" 4 +.IX Item "w97" +9/7 wavelet, only used in snow +.IP "\fBdctmax\fR" 4 +.IX Item "dctmax" +.PD 0 +.IP "\fBchroma\fR" 4 +.IX Item "chroma" +.RE +.RS 4 +.RE +.IP "\fBildctcmp\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "ildctcmp integer (encoding,video)" +.PD +Set interlaced dct compare function. +.Sp +Possible values: +.RS 4 +.IP "\fBsad\fR" 4 +.IX Item "sad" +sum of absolute differences, fast (default) +.IP "\fBsse\fR" 4 +.IX Item "sse" +sum of squared errors +.IP "\fBsatd\fR" 4 +.IX Item "satd" +sum of absolute Hadamard transformed differences +.IP "\fBdct\fR" 4 +.IX Item "dct" +sum of absolute \s-1DCT\s0 transformed differences +.IP "\fBpsnr\fR" 4 +.IX Item "psnr" +sum of squared quantization errors (avoid, low quality) +.IP "\fBbit\fR" 4 +.IX Item "bit" +number of bits needed for the block +.IP "\fBrd\fR" 4 +.IX Item "rd" +rate distortion optimal, slow +.IP "\fBzero\fR" 4 +.IX Item "zero" +0 +.IP "\fBvsad\fR" 4 +.IX Item "vsad" +sum of absolute vertical differences +.IP "\fBvsse\fR" 4 +.IX Item "vsse" +sum of squared vertical differences +.IP "\fBnsse\fR" 4 +.IX Item "nsse" +noise preserving sum of squared differences +.IP "\fBw53\fR" 4 +.IX Item "w53" +5/3 wavelet, only used in snow +.IP "\fBw97\fR" 4 +.IX Item "w97" +9/7 wavelet, only used in snow +.IP "\fBdctmax\fR" 4 +.IX Item "dctmax" +.PD 0 +.IP "\fBchroma\fR" 4 +.IX Item "chroma" +.RE +.RS 4 +.RE +.IP "\fBdia_size\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "dia_size integer (encoding,video)" +.PD +Set diamond type & size for motion estimation. +.IP "\fBlast_pred\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "last_pred integer (encoding,video)" +Set amount of motion predictors from the previous frame. +.IP "\fBpreme\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "preme integer (encoding,video)" +Set pre motion estimation. +.IP "\fBprecmp\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "precmp integer (encoding,video)" +Set pre motion estimation compare function. +.Sp +Possible values: +.RS 4 +.IP "\fBsad\fR" 4 +.IX Item "sad" +sum of absolute differences, fast (default) +.IP "\fBsse\fR" 4 +.IX Item "sse" +sum of squared errors +.IP "\fBsatd\fR" 4 +.IX Item "satd" +sum of absolute Hadamard transformed differences +.IP "\fBdct\fR" 4 +.IX Item "dct" +sum of absolute \s-1DCT\s0 transformed differences +.IP "\fBpsnr\fR" 4 +.IX Item "psnr" +sum of squared quantization errors (avoid, low quality) +.IP "\fBbit\fR" 4 +.IX Item "bit" +number of bits needed for the block +.IP "\fBrd\fR" 4 +.IX Item "rd" +rate distortion optimal, slow +.IP "\fBzero\fR" 4 +.IX Item "zero" +0 +.IP "\fBvsad\fR" 4 +.IX Item "vsad" +sum of absolute vertical differences +.IP "\fBvsse\fR" 4 +.IX Item "vsse" +sum of squared vertical differences +.IP "\fBnsse\fR" 4 +.IX Item "nsse" +noise preserving sum of squared differences +.IP "\fBw53\fR" 4 +.IX Item "w53" +5/3 wavelet, only used in snow +.IP "\fBw97\fR" 4 +.IX Item "w97" +9/7 wavelet, only used in snow +.IP "\fBdctmax\fR" 4 +.IX Item "dctmax" +.PD 0 +.IP "\fBchroma\fR" 4 +.IX Item "chroma" +.RE +.RS 4 +.RE +.IP "\fBpre_dia_size\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "pre_dia_size integer (encoding,video)" +.PD +Set diamond type & size for motion estimation pre-pass. +.IP "\fBsubq\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "subq integer (encoding,video)" +Set sub pel motion estimation quality. +.IP "\fBdtg_active_format\fR \fIinteger\fR" 4 +.IX Item "dtg_active_format integer" +.PD 0 +.IP "\fBme_range\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "me_range integer (encoding,video)" +.PD +Set limit motion vectors range (1023 for DivX player). +.IP "\fBibias\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "ibias integer (encoding,video)" +Set intra quant bias. +.IP "\fBpbias\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "pbias integer (encoding,video)" +Set inter quant bias. +.IP "\fBcolor_table_id\fR \fIinteger\fR" 4 +.IX Item "color_table_id integer" +.PD 0 +.IP "\fBglobal_quality\fR \fIinteger\fR \fB(\fR\fIencoding,audio,video\fR\fB)\fR" 4 +.IX Item "global_quality integer (encoding,audio,video)" +.IP "\fBcoder\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "coder integer (encoding,video)" +.PD +Possible values: +.RS 4 +.IP "\fBvlc\fR" 4 +.IX Item "vlc" +variable length coder / huffman coder +.IP "\fBac\fR" 4 +.IX Item "ac" +arithmetic coder +.IP "\fBraw\fR" 4 +.IX Item "raw" +raw (no encoding) +.IP "\fBrle\fR" 4 +.IX Item "rle" +run-length coder +.IP "\fBdeflate\fR" 4 +.IX Item "deflate" +deflate-based coder +.RE +.RS 4 +.RE +.IP "\fBcontext\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "context integer (encoding,video)" +Set context model. +.IP "\fBslice_flags\fR \fIinteger\fR" 4 +.IX Item "slice_flags integer" +.PD 0 +.IP "\fBxvmc_acceleration\fR \fIinteger\fR" 4 +.IX Item "xvmc_acceleration integer" +.IP "\fBmbd\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "mbd integer (encoding,video)" +.PD +Set macroblock decision algorithm (high quality mode). +.Sp +Possible values: +.RS 4 +.IP "\fBsimple\fR" 4 +.IX Item "simple" +use mbcmp (default) +.IP "\fBbits\fR" 4 +.IX Item "bits" +use fewest bits +.IP "\fBrd\fR" 4 +.IX Item "rd" +use best rate distortion +.RE +.RS 4 +.RE +.IP "\fBstream_codec_tag\fR \fIinteger\fR" 4 +.IX Item "stream_codec_tag integer" +.PD 0 +.IP "\fBsc_threshold\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "sc_threshold integer (encoding,video)" +.PD +Set scene change threshold. +.IP "\fBlmin\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "lmin integer (encoding,video)" +Set min lagrange factor (\s-1VBR\s0). +.IP "\fBlmax\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "lmax integer (encoding,video)" +Set max lagrange factor (\s-1VBR\s0). +.IP "\fBnr\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "nr integer (encoding,video)" +Set noise reduction. +.IP "\fBrc_init_occupancy\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "rc_init_occupancy integer (encoding,video)" +Set number of bits which should be loaded into the rc buffer before +decoding starts. +.IP "\fBinter_threshold\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "inter_threshold integer (encoding,video)" +.PD 0 +.IP "\fBflags2\fR \fIflags\fR \fB(\fR\fIdecoding/encoding,audio,video\fR\fB)\fR" 4 +.IX Item "flags2 flags (decoding/encoding,audio,video)" +.PD +Possible values: +.RS 4 +.IP "\fBfast\fR" 4 +.IX Item "fast" +allow non spec compliant speedup tricks +.IP "\fBsgop\fR" 4 +.IX Item "sgop" +Deprecated, use mpegvideo private options instead +.IP "\fBnoout\fR" 4 +.IX Item "noout" +skip bitstream encoding +.IP "\fBlocal_header\fR" 4 +.IX Item "local_header" +place global headers at every keyframe instead of in extradata +.IP "\fBchunks\fR" 4 +.IX Item "chunks" +Frame data might be split into multiple chunks +.IP "\fBshowall\fR" 4 +.IX Item "showall" +Show all frames before the first keyframe +.IP "\fBskiprd\fR" 4 +.IX Item "skiprd" +Deprecated, use mpegvideo private options instead +.RE +.RS 4 +.RE +.IP "\fBerror\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "error integer (encoding,video)" +.PD 0 +.IP "\fBqns\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "qns integer (encoding,video)" +.PD +Deprecated, use mpegvideo private options instead. +.IP "\fBthreads\fR \fIinteger\fR \fB(\fR\fIdecoding/encoding,video\fR\fB)\fR" 4 +.IX Item "threads integer (decoding/encoding,video)" +Possible values: +.RS 4 +.IP "\fBauto\fR" 4 +.IX Item "auto" +detect a good number of threads +.RE +.RS 4 +.RE +.IP "\fBme_threshold\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "me_threshold integer (encoding,video)" +Set motion estimation threshold. +.IP "\fBmb_threshold\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "mb_threshold integer (encoding,video)" +Set macroblock threshold. +.IP "\fBdc\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "dc integer (encoding,video)" +Set intra_dc_precision. +.IP "\fBnssew\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "nssew integer (encoding,video)" +Set nsse weight. +.IP "\fBskip_top\fR \fIinteger\fR \fB(\fR\fIdecoding,video\fR\fB)\fR" 4 +.IX Item "skip_top integer (decoding,video)" +Set number of macroblock rows at the top which are skipped. +.IP "\fBskip_bottom\fR \fIinteger\fR \fB(\fR\fIdecoding,video\fR\fB)\fR" 4 +.IX Item "skip_bottom integer (decoding,video)" +Set number of macroblock rows at the bottom which are skipped. +.IP "\fBprofile\fR \fIinteger\fR \fB(\fR\fIencoding,audio,video\fR\fB)\fR" 4 +.IX Item "profile integer (encoding,audio,video)" +Possible values: +.RS 4 +.IP "\fBunknown\fR" 4 +.IX Item "unknown" +.PD 0 +.IP "\fBaac_main\fR" 4 +.IX Item "aac_main" +.IP "\fBaac_low\fR" 4 +.IX Item "aac_low" +.IP "\fBaac_ssr\fR" 4 +.IX Item "aac_ssr" +.IP "\fBaac_ltp\fR" 4 +.IX Item "aac_ltp" +.IP "\fBaac_he\fR" 4 +.IX Item "aac_he" +.IP "\fBaac_he_v2\fR" 4 +.IX Item "aac_he_v2" +.IP "\fBaac_ld\fR" 4 +.IX Item "aac_ld" +.IP "\fBaac_eld\fR" 4 +.IX Item "aac_eld" +.IP "\fBdts\fR" 4 +.IX Item "dts" +.IP "\fBdts_es\fR" 4 +.IX Item "dts_es" +.IP "\fBdts_96_24\fR" 4 +.IX Item "dts_96_24" +.IP "\fBdts_hd_hra\fR" 4 +.IX Item "dts_hd_hra" +.IP "\fBdts_hd_ma\fR" 4 +.IX Item "dts_hd_ma" +.RE +.RS 4 +.RE +.IP "\fBlevel\fR \fIinteger\fR \fB(\fR\fIencoding,audio,video\fR\fB)\fR" 4 +.IX Item "level integer (encoding,audio,video)" +.PD +Possible values: +.RS 4 +.IP "\fBunknown\fR" 4 +.IX Item "unknown" +.RE +.RS 4 +.RE +.PD 0 +.IP "\fBlowres\fR \fIinteger\fR \fB(\fR\fIdecoding,audio,video\fR\fB)\fR" 4 +.IX Item "lowres integer (decoding,audio,video)" +.PD +Decode at 1= 1/2, 2=1/4, 3=1/8 resolutions. +.IP "\fBskip_threshold\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "skip_threshold integer (encoding,video)" +Set frame skip threshold. +.IP "\fBskip_factor\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "skip_factor integer (encoding,video)" +Set frame skip factor. +.IP "\fBskip_exp\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "skip_exp integer (encoding,video)" +Set frame skip exponent. +.IP "\fBskipcmp\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "skipcmp integer (encoding,video)" +Set frame skip compare function. +.Sp +Possible values: +.RS 4 +.IP "\fBsad\fR" 4 +.IX Item "sad" +sum of absolute differences, fast (default) +.IP "\fBsse\fR" 4 +.IX Item "sse" +sum of squared errors +.IP "\fBsatd\fR" 4 +.IX Item "satd" +sum of absolute Hadamard transformed differences +.IP "\fBdct\fR" 4 +.IX Item "dct" +sum of absolute \s-1DCT\s0 transformed differences +.IP "\fBpsnr\fR" 4 +.IX Item "psnr" +sum of squared quantization errors (avoid, low quality) +.IP "\fBbit\fR" 4 +.IX Item "bit" +number of bits needed for the block +.IP "\fBrd\fR" 4 +.IX Item "rd" +rate distortion optimal, slow +.IP "\fBzero\fR" 4 +.IX Item "zero" +0 +.IP "\fBvsad\fR" 4 +.IX Item "vsad" +sum of absolute vertical differences +.IP "\fBvsse\fR" 4 +.IX Item "vsse" +sum of squared vertical differences +.IP "\fBnsse\fR" 4 +.IX Item "nsse" +noise preserving sum of squared differences +.IP "\fBw53\fR" 4 +.IX Item "w53" +5/3 wavelet, only used in snow +.IP "\fBw97\fR" 4 +.IX Item "w97" +9/7 wavelet, only used in snow +.IP "\fBdctmax\fR" 4 +.IX Item "dctmax" +.PD 0 +.IP "\fBchroma\fR" 4 +.IX Item "chroma" +.RE +.RS 4 +.RE +.IP "\fBborder_mask\fR \fIfloat\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "border_mask float (encoding,video)" +.PD +Increase the quantizer for macroblocks close to borders. +.IP "\fBmblmin\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "mblmin integer (encoding,video)" +Set min macroblock lagrange factor (\s-1VBR\s0). +.IP "\fBmblmax\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "mblmax integer (encoding,video)" +Set max macroblock lagrange factor (\s-1VBR\s0). +.IP "\fBmepc\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "mepc integer (encoding,video)" +Set motion estimation bitrate penalty compensation (1.0 = 256). +.IP "\fBskip_loop_filter\fR \fIinteger\fR \fB(\fR\fIdecoding,video\fR\fB)\fR" 4 +.IX Item "skip_loop_filter integer (decoding,video)" +.PD 0 +.IP "\fBskip_idct\fR \fIinteger\fR \fB(\fR\fIdecoding,video\fR\fB)\fR" 4 +.IX Item "skip_idct integer (decoding,video)" +.IP "\fBskip_frame\fR \fIinteger\fR \fB(\fR\fIdecoding,video\fR\fB)\fR" 4 +.IX Item "skip_frame integer (decoding,video)" +.PD +Make decoder discard processing depending on the frame type selected +by the option value. +.Sp +\&\fBskip_loop_filter\fR skips frame loop filtering, \fBskip_idct\fR +skips frame IDCT/dequantization, \fBskip_frame\fR skips decoding. +.Sp +Possible values: +.RS 4 +.IP "\fBnone\fR" 4 +.IX Item "none" +Discard no frame. +.IP "\fBdefault\fR" 4 +.IX Item "default" +Discard useless frames like 0\-sized frames. +.IP "\fBnoref\fR" 4 +.IX Item "noref" +Discard all non-reference frames. +.IP "\fBbidir\fR" 4 +.IX Item "bidir" +Discard all bidirectional frames. +.IP "\fBnokey\fR" 4 +.IX Item "nokey" +Discard all frames excepts keyframes. +.IP "\fBall\fR" 4 +.IX Item "all" +Discard all frames. +.RE +.RS 4 +.Sp +Default value is \fBdefault\fR. +.RE +.IP "\fBbidir_refine\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "bidir_refine integer (encoding,video)" +Refine the two motion vectors used in bidirectional macroblocks. +.IP "\fBbrd_scale\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "brd_scale integer (encoding,video)" +Downscale frames for dynamic B\-frame decision. +.IP "\fBkeyint_min\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "keyint_min integer (encoding,video)" +Set minimum interval between IDR-frames. +.IP "\fBrefs\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "refs integer (encoding,video)" +Set reference frames to consider for motion compensation. +.IP "\fBchromaoffset\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "chromaoffset integer (encoding,video)" +Set chroma qp offset from luma. +.IP "\fBtrellis\fR \fIinteger\fR \fB(\fR\fIencoding,audio,video\fR\fB)\fR" 4 +.IX Item "trellis integer (encoding,audio,video)" +Set rate-distortion optimal quantization. +.IP "\fBsc_factor\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "sc_factor integer (encoding,video)" +Set value multiplied by qscale for each frame and added to +scene_change_score. +.IP "\fBmv0_threshold\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "mv0_threshold integer (encoding,video)" +.PD 0 +.IP "\fBb_sensitivity\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "b_sensitivity integer (encoding,video)" +.PD +Adjust sensitivity of b_frame_strategy 1. +.IP "\fBcompression_level\fR \fIinteger\fR \fB(\fR\fIencoding,audio,video\fR\fB)\fR" 4 +.IX Item "compression_level integer (encoding,audio,video)" +.PD 0 +.IP "\fBmin_prediction_order\fR \fIinteger\fR \fB(\fR\fIencoding,audio\fR\fB)\fR" 4 +.IX Item "min_prediction_order integer (encoding,audio)" +.IP "\fBmax_prediction_order\fR \fIinteger\fR \fB(\fR\fIencoding,audio\fR\fB)\fR" 4 +.IX Item "max_prediction_order integer (encoding,audio)" +.IP "\fBtimecode_frame_start\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "timecode_frame_start integer (encoding,video)" +.PD +Set \s-1GOP\s0 timecode frame start number, in non drop frame format. +.IP "\fBrequest_channels\fR \fIinteger\fR \fB(\fR\fIdecoding,audio\fR\fB)\fR" 4 +.IX Item "request_channels integer (decoding,audio)" +Set desired number of audio channels. +.IP "\fBbits_per_raw_sample\fR \fIinteger\fR" 4 +.IX Item "bits_per_raw_sample integer" +.PD 0 +.IP "\fBchannel_layout\fR \fIinteger\fR \fB(\fR\fIdecoding/encoding,audio\fR\fB)\fR" 4 +.IX Item "channel_layout integer (decoding/encoding,audio)" +.PD +Possible values: +.IP "\fBrequest_channel_layout\fR \fIinteger\fR \fB(\fR\fIdecoding,audio\fR\fB)\fR" 4 +.IX Item "request_channel_layout integer (decoding,audio)" +Possible values: +.IP "\fBrc_max_vbv_use\fR \fIfloat\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "rc_max_vbv_use float (encoding,video)" +.PD 0 +.IP "\fBrc_min_vbv_use\fR \fIfloat\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "rc_min_vbv_use float (encoding,video)" +.IP "\fBticks_per_frame\fR \fIinteger\fR \fB(\fR\fIdecoding/encoding,audio,video\fR\fB)\fR" 4 +.IX Item "ticks_per_frame integer (decoding/encoding,audio,video)" +.IP "\fBcolor_primaries\fR \fIinteger\fR \fB(\fR\fIdecoding/encoding,video\fR\fB)\fR" 4 +.IX Item "color_primaries integer (decoding/encoding,video)" +.IP "\fBcolor_trc\fR \fIinteger\fR \fB(\fR\fIdecoding/encoding,video\fR\fB)\fR" 4 +.IX Item "color_trc integer (decoding/encoding,video)" +.IP "\fBcolorspace\fR \fIinteger\fR \fB(\fR\fIdecoding/encoding,video\fR\fB)\fR" 4 +.IX Item "colorspace integer (decoding/encoding,video)" +.IP "\fBcolor_range\fR \fIinteger\fR \fB(\fR\fIdecoding/encoding,video\fR\fB)\fR" 4 +.IX Item "color_range integer (decoding/encoding,video)" +.IP "\fBchroma_sample_location\fR \fIinteger\fR \fB(\fR\fIdecoding/encoding,video\fR\fB)\fR" 4 +.IX Item "chroma_sample_location integer (decoding/encoding,video)" +.IP "\fBlog_level_offset\fR \fIinteger\fR" 4 +.IX Item "log_level_offset integer" +.PD +Set the log level offset. +.IP "\fBslices\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4 +.IX Item "slices integer (encoding,video)" +Number of slices, used in parallelized encoding. +.IP "\fBthread_type\fR \fIflags\fR \fB(\fR\fIdecoding/encoding,video\fR\fB)\fR" 4 +.IX Item "thread_type flags (decoding/encoding,video)" +Select multithreading type. +.Sp +Possible values: +.RS 4 +.IP "\fBslice\fR" 4 +.IX Item "slice" +.PD 0 +.IP "\fBframe\fR" 4 +.IX Item "frame" +.RE +.RS 4 +.RE +.IP "\fBaudio_service_type\fR \fIinteger\fR \fB(\fR\fIencoding,audio\fR\fB)\fR" 4 +.IX Item "audio_service_type integer (encoding,audio)" +.PD +Set audio service type. +.Sp +Possible values: +.RS 4 +.IP "\fBma\fR" 4 +.IX Item "ma" +Main Audio Service +.IP "\fBef\fR" 4 +.IX Item "ef" +Effects +.IP "\fBvi\fR" 4 +.IX Item "vi" +Visually Impaired +.IP "\fBhi\fR" 4 +.IX Item "hi" +Hearing Impaired +.IP "\fBdi\fR" 4 +.IX Item "di" +Dialogue +.IP "\fBco\fR" 4 +.IX Item "co" +Commentary +.IP "\fBem\fR" 4 +.IX Item "em" +Emergency +.IP "\fBvo\fR" 4 +.IX Item "vo" +Voice Over +.IP "\fBka\fR" 4 +.IX Item "ka" +Karaoke +.RE +.RS 4 +.RE +.IP "\fBrequest_sample_fmt\fR \fIsample_fmt\fR \fB(\fR\fIdecoding,audio\fR\fB)\fR" 4 +.IX Item "request_sample_fmt sample_fmt (decoding,audio)" +Set sample format audio decoders should prefer. Default value is +\&\f(CW\*(C`none\*(C'\fR. +.IP "\fBpkt_timebase\fR \fIrational number\fR" 4 +.IX Item "pkt_timebase rational number" +.PD 0 +.IP "\fBsub_charenc\fR \fIencoding\fR \fB(\fR\fIdecoding,subtitles\fR\fB)\fR" 4 +.IX Item "sub_charenc encoding (decoding,subtitles)" +.PD +Set the input subtitles character encoding. +.SH "DECODERS" +.IX Header "DECODERS" +Decoders are configured elements in FFmpeg which allow the decoding of +multimedia streams. +.PP +When you configure your FFmpeg build, all the supported native decoders +are enabled by default. Decoders requiring an external library must be enabled +manually via the corresponding \f(CW\*(C`\-\-enable\-lib\*(C'\fR option. You can list all +available decoders using the configure option \f(CW\*(C`\-\-list\-decoders\*(C'\fR. +.PP +You can disable all the decoders with the configure option +\&\f(CW\*(C`\-\-disable\-decoders\*(C'\fR and selectively enable / disable single decoders +with the options \f(CW\*(C`\-\-enable\-decoder=\f(CIDECODER\f(CW\*(C'\fR / +\&\f(CW\*(C`\-\-disable\-decoder=\f(CIDECODER\f(CW\*(C'\fR. +.PP +The option \f(CW\*(C`\-codecs\*(C'\fR of the ff* tools will display the list of +enabled decoders. +.SH "VIDEO DECODERS" +.IX Header "VIDEO DECODERS" +A description of some of the currently available video decoders +follows. +.SS "rawvideo" +.IX Subsection "rawvideo" +Raw video decoder. +.PP +This decoder decodes rawvideo streams. +.PP +\fIOptions\fR +.IX Subsection "Options" +.IP "\fBtop\fR \fItop_field_first\fR" 4 +.IX Item "top top_field_first" +Specify the assumed field type of the input video. +.RS 4 +.IP "\fB\-1\fR" 4 +.IX Item "-1" +the video is assumed to be progressive (default) +.IP "\fB0\fR" 4 +.IX Item "0" +bottom-field-first is assumed +.IP "\fB1\fR" 4 +.IX Item "1" +top-field-first is assumed +.RE +.RS 4 +.RE +.SH "AUDIO DECODERS" +.IX Header "AUDIO DECODERS" +.SS "ffwavesynth" +.IX Subsection "ffwavesynth" +Internal wave synthetizer. +.PP +This decoder generates wave patterns according to predefined sequences. Its +use is purely internal and the format of the data it accepts is not publicly +documented. +.SH "SUBTITLES DECODERS" +.IX Header "SUBTITLES DECODERS" +.SS "dvdsub" +.IX Subsection "dvdsub" +This codec decodes the bitmap subtitles used in DVDs; the same subtitles can +also be found in VobSub file pairs and in some Matroska files. +.PP +\fIOptions\fR +.IX Subsection "Options" +.IP "\fBpalette\fR" 4 +.IX Item "palette" +Specify the global palette used by the bitmaps. When stored in VobSub, the +palette is normally specified in the index file; in Matroska, the palette is +stored in the codec extra-data in the same format as in VobSub. In DVDs, the +palette is stored in the \s-1IFO\s0 file, and therefore not available when reading +from dumped \s-1VOB\s0 files. +.Sp +The format for this option is a string containing 16 24\-bits hexadecimal +numbers (without 0x prefix) separated by comas, for example \f(CW\*(C`0d00ee, +ee450d, 101010, eaeaea, 0ce60b, ec14ed, ebff0b, 0d617a, 7b7b7b, d1d1d1, +7b2a0e, 0d950c, 0f007b, cf0dec, cfa80c, 7c127b\*(C'\fR. +.SH "ENCODERS" +.IX Header "ENCODERS" +Encoders are configured elements in FFmpeg which allow the encoding of +multimedia streams. +.PP +When you configure your FFmpeg build, all the supported native encoders +are enabled by default. Encoders requiring an external library must be enabled +manually via the corresponding \f(CW\*(C`\-\-enable\-lib\*(C'\fR option. You can list all +available encoders using the configure option \f(CW\*(C`\-\-list\-encoders\*(C'\fR. +.PP +You can disable all the encoders with the configure option +\&\f(CW\*(C`\-\-disable\-encoders\*(C'\fR and selectively enable / disable single encoders +with the options \f(CW\*(C`\-\-enable\-encoder=\f(CIENCODER\f(CW\*(C'\fR / +\&\f(CW\*(C`\-\-disable\-encoder=\f(CIENCODER\f(CW\*(C'\fR. +.PP +The option \f(CW\*(C`\-codecs\*(C'\fR of the ff* tools will display the list of +enabled encoders. +.SH "AUDIO ENCODERS" +.IX Header "AUDIO ENCODERS" +A description of some of the currently available audio encoders +follows. +.SS "ac3 and ac3_fixed" +.IX Subsection "ac3 and ac3_fixed" +\&\s-1AC\-3\s0 audio encoders. +.PP +These encoders implement part of \s-1ATSC\s0 A/52:2010 and \s-1ETSI\s0 \s-1TS\s0 102 366, as well as +the undocumented RealAudio 3 (a.k.a. dnet). +.PP +The \fIac3\fR encoder uses floating-point math, while the \fIac3_fixed\fR +encoder only uses fixed-point integer math. This does not mean that one is +always faster, just that one or the other may be better suited to a +particular system. The floating-point encoder will generally produce better +quality audio for a given bitrate. The \fIac3_fixed\fR encoder is not the +default codec for any of the output formats, so it must be specified explicitly +using the option \f(CW\*(C`\-acodec ac3_fixed\*(C'\fR in order to use it. +.PP +\fI\s-1AC\-3\s0 Metadata\fR +.IX Subsection "AC-3 Metadata" +.PP +The \s-1AC\-3\s0 metadata options are used to set parameters that describe the audio, +but in most cases do not affect the audio encoding itself. Some of the options +do directly affect or influence the decoding and playback of the resulting +bitstream, while others are just for informational purposes. A few of the +options will add bits to the output stream that could otherwise be used for +audio data, and will thus affect the quality of the output. Those will be +indicated accordingly with a note in the option list below. +.PP +These parameters are described in detail in several publicly-available +documents. +.IP "*<<\fBhttp://www.atsc.org/cms/standards/a_52\-2010.pdf\fR>>" 4 +.IX Item "*<<http://www.atsc.org/cms/standards/a_52-2010.pdf>>" +.PD 0 +.IP "*<<\fBhttp://www.atsc.org/cms/standards/a_54a_with_corr_1.pdf\fR>>" 4 +.IX Item "*<<http://www.atsc.org/cms/standards/a_54a_with_corr_1.pdf>>" +.IP "*<<\fBhttp://www.dolby.com/uploadedFiles/zz\-_Shared_Assets/English_PDFs/Professional/18_Metadata.Guide.pdf\fR>>" 4 +.IX Item "*<<http://www.dolby.com/uploadedFiles/zz-_Shared_Assets/English_PDFs/Professional/18_Metadata.Guide.pdf>>" +.IP "*<<\fBhttp://www.dolby.com/uploadedFiles/zz\-_Shared_Assets/English_PDFs/Professional/46_DDEncodingGuidelines.pdf\fR>>" 4 +.IX Item "*<<http://www.dolby.com/uploadedFiles/zz-_Shared_Assets/English_PDFs/Professional/46_DDEncodingGuidelines.pdf>>" +.PD +.PP +Metadata Control Options +.IX Subsection "Metadata Control Options" +.IP "\fB\-per_frame_metadata\fR \fIboolean\fR" 4 +.IX Item "-per_frame_metadata boolean" +Allow Per-Frame Metadata. Specifies if the encoder should check for changing +metadata for each frame. +.RS 4 +.IP "\fB0\fR" 4 +.IX Item "0" +The metadata values set at initialization will be used for every frame in the +stream. (default) +.IP "\fB1\fR" 4 +.IX Item "1" +Metadata values can be changed before encoding each frame. +.RE +.RS 4 +.RE +.PP +Downmix Levels +.IX Subsection "Downmix Levels" +.IP "\fB\-center_mixlev\fR \fIlevel\fR" 4 +.IX Item "-center_mixlev level" +Center Mix Level. The amount of gain the decoder should apply to the center +channel when downmixing to stereo. This field will only be written to the +bitstream if a center channel is present. The value is specified as a scale +factor. There are 3 valid values: +.RS 4 +.IP "\fB0.707\fR" 4 +.IX Item "0.707" +Apply \-3dB gain +.IP "\fB0.595\fR" 4 +.IX Item "0.595" +Apply \-4.5dB gain (default) +.IP "\fB0.500\fR" 4 +.IX Item "0.500" +Apply \-6dB gain +.RE +.RS 4 +.RE +.IP "\fB\-surround_mixlev\fR \fIlevel\fR" 4 +.IX Item "-surround_mixlev level" +Surround Mix Level. The amount of gain the decoder should apply to the surround +channel(s) when downmixing to stereo. This field will only be written to the +bitstream if one or more surround channels are present. The value is specified +as a scale factor. There are 3 valid values: +.RS 4 +.IP "\fB0.707\fR" 4 +.IX Item "0.707" +Apply \-3dB gain +.IP "\fB0.500\fR" 4 +.IX Item "0.500" +Apply \-6dB gain (default) +.IP "\fB0.000\fR" 4 +.IX Item "0.000" +Silence Surround Channel(s) +.RE +.RS 4 +.RE +.PP +Audio Production Information +.IX Subsection "Audio Production Information" +.PP +Audio Production Information is optional information describing the mixing +environment. Either none or both of the fields are written to the bitstream. +.IP "\fB\-mixing_level\fR \fInumber\fR" 4 +.IX Item "-mixing_level number" +Mixing Level. Specifies peak sound pressure level (\s-1SPL\s0) in the production +environment when the mix was mastered. Valid values are 80 to 111, or \-1 for +unknown or not indicated. The default value is \-1, but that value cannot be +used if the Audio Production Information is written to the bitstream. Therefore, +if the \f(CW\*(C`room_type\*(C'\fR option is not the default value, the \f(CW\*(C`mixing_level\*(C'\fR +option must not be \-1. +.IP "\fB\-room_type\fR \fItype\fR" 4 +.IX Item "-room_type type" +Room Type. Describes the equalization used during the final mixing session at +the studio or on the dubbing stage. A large room is a dubbing stage with the +industry standard X\-curve equalization; a small room has flat equalization. +This field will not be written to the bitstream if both the \f(CW\*(C`mixing_level\*(C'\fR +option and the \f(CW\*(C`room_type\*(C'\fR option have the default values. +.RS 4 +.IP "\fB0\fR" 4 +.IX Item "0" +.PD 0 +.IP "\fBnotindicated\fR" 4 +.IX Item "notindicated" +.PD +Not Indicated (default) +.IP "\fB1\fR" 4 +.IX Item "1" +.PD 0 +.IP "\fBlarge\fR" 4 +.IX Item "large" +.PD +Large Room +.IP "\fB2\fR" 4 +.IX Item "2" +.PD 0 +.IP "\fBsmall\fR" 4 +.IX Item "small" +.PD +Small Room +.RE +.RS 4 +.RE +.PP +Other Metadata Options +.IX Subsection "Other Metadata Options" +.IP "\fB\-copyright\fR \fIboolean\fR" 4 +.IX Item "-copyright boolean" +Copyright Indicator. Specifies whether a copyright exists for this audio. +.RS 4 +.IP "\fB0\fR" 4 +.IX Item "0" +.PD 0 +.IP "\fBoff\fR" 4 +.IX Item "off" +.PD +No Copyright Exists (default) +.IP "\fB1\fR" 4 +.IX Item "1" +.PD 0 +.IP "\fBon\fR" 4 +.IX Item "on" +.PD +Copyright Exists +.RE +.RS 4 +.RE +.IP "\fB\-dialnorm\fR \fIvalue\fR" 4 +.IX Item "-dialnorm value" +Dialogue Normalization. Indicates how far the average dialogue level of the +program is below digital 100% full scale (0 dBFS). This parameter determines a +level shift during audio reproduction that sets the average volume of the +dialogue to a preset level. The goal is to match volume level between program +sources. A value of \-31dB will result in no volume level change, relative to +the source volume, during audio reproduction. Valid values are whole numbers in +the range \-31 to \-1, with \-31 being the default. +.IP "\fB\-dsur_mode\fR \fImode\fR" 4 +.IX Item "-dsur_mode mode" +Dolby Surround Mode. Specifies whether the stereo signal uses Dolby Surround +(Pro Logic). This field will only be written to the bitstream if the audio +stream is stereo. Using this option does \fB\s-1NOT\s0\fR mean the encoder will actually +apply Dolby Surround processing. +.RS 4 +.IP "\fB0\fR" 4 +.IX Item "0" +.PD 0 +.IP "\fBnotindicated\fR" 4 +.IX Item "notindicated" +.PD +Not Indicated (default) +.IP "\fB1\fR" 4 +.IX Item "1" +.PD 0 +.IP "\fBoff\fR" 4 +.IX Item "off" +.PD +Not Dolby Surround Encoded +.IP "\fB2\fR" 4 +.IX Item "2" +.PD 0 +.IP "\fBon\fR" 4 +.IX Item "on" +.PD +Dolby Surround Encoded +.RE +.RS 4 +.RE +.IP "\fB\-original\fR \fIboolean\fR" 4 +.IX Item "-original boolean" +Original Bit Stream Indicator. Specifies whether this audio is from the +original source and not a copy. +.RS 4 +.IP "\fB0\fR" 4 +.IX Item "0" +.PD 0 +.IP "\fBoff\fR" 4 +.IX Item "off" +.PD +Not Original Source +.IP "\fB1\fR" 4 +.IX Item "1" +.PD 0 +.IP "\fBon\fR" 4 +.IX Item "on" +.PD +Original Source (default) +.RE +.RS 4 +.RE +.PP +\fIExtended Bitstream Information\fR +.IX Subsection "Extended Bitstream Information" +.PP +The extended bitstream options are part of the Alternate Bit Stream Syntax as +specified in Annex D of the A/52:2010 standard. It is grouped into 2 parts. +If any one parameter in a group is specified, all values in that group will be +written to the bitstream. Default values are used for those that are written +but have not been specified. If the mixing levels are written, the decoder +will use these values instead of the ones specified in the \f(CW\*(C`center_mixlev\*(C'\fR +and \f(CW\*(C`surround_mixlev\*(C'\fR options if it supports the Alternate Bit Stream +Syntax. +.PP +Extended Bitstream Information \- Part 1 +.IX Subsection "Extended Bitstream Information - Part 1" +.IP "\fB\-dmix_mode\fR \fImode\fR" 4 +.IX Item "-dmix_mode mode" +Preferred Stereo Downmix Mode. Allows the user to select either Lt/Rt +(Dolby Surround) or Lo/Ro (normal stereo) as the preferred stereo downmix mode. +.RS 4 +.IP "\fB0\fR" 4 +.IX Item "0" +.PD 0 +.IP "\fBnotindicated\fR" 4 +.IX Item "notindicated" +.PD +Not Indicated (default) +.IP "\fB1\fR" 4 +.IX Item "1" +.PD 0 +.IP "\fBltrt\fR" 4 +.IX Item "ltrt" +.PD +Lt/Rt Downmix Preferred +.IP "\fB2\fR" 4 +.IX Item "2" +.PD 0 +.IP "\fBloro\fR" 4 +.IX Item "loro" +.PD +Lo/Ro Downmix Preferred +.RE +.RS 4 +.RE +.IP "\fB\-ltrt_cmixlev\fR \fIlevel\fR" 4 +.IX Item "-ltrt_cmixlev level" +Lt/Rt Center Mix Level. The amount of gain the decoder should apply to the +center channel when downmixing to stereo in Lt/Rt mode. +.RS 4 +.IP "\fB1.414\fR" 4 +.IX Item "1.414" +Apply +3dB gain +.IP "\fB1.189\fR" 4 +.IX Item "1.189" +Apply +1.5dB gain +.IP "\fB1.000\fR" 4 +.IX Item "1.000" +Apply 0dB gain +.IP "\fB0.841\fR" 4 +.IX Item "0.841" +Apply \-1.5dB gain +.IP "\fB0.707\fR" 4 +.IX Item "0.707" +Apply \-3.0dB gain +.IP "\fB0.595\fR" 4 +.IX Item "0.595" +Apply \-4.5dB gain (default) +.IP "\fB0.500\fR" 4 +.IX Item "0.500" +Apply \-6.0dB gain +.IP "\fB0.000\fR" 4 +.IX Item "0.000" +Silence Center Channel +.RE +.RS 4 +.RE +.IP "\fB\-ltrt_surmixlev\fR \fIlevel\fR" 4 +.IX Item "-ltrt_surmixlev level" +Lt/Rt Surround Mix Level. The amount of gain the decoder should apply to the +surround channel(s) when downmixing to stereo in Lt/Rt mode. +.RS 4 +.IP "\fB0.841\fR" 4 +.IX Item "0.841" +Apply \-1.5dB gain +.IP "\fB0.707\fR" 4 +.IX Item "0.707" +Apply \-3.0dB gain +.IP "\fB0.595\fR" 4 +.IX Item "0.595" +Apply \-4.5dB gain +.IP "\fB0.500\fR" 4 +.IX Item "0.500" +Apply \-6.0dB gain (default) +.IP "\fB0.000\fR" 4 +.IX Item "0.000" +Silence Surround Channel(s) +.RE +.RS 4 +.RE +.IP "\fB\-loro_cmixlev\fR \fIlevel\fR" 4 +.IX Item "-loro_cmixlev level" +Lo/Ro Center Mix Level. The amount of gain the decoder should apply to the +center channel when downmixing to stereo in Lo/Ro mode. +.RS 4 +.IP "\fB1.414\fR" 4 +.IX Item "1.414" +Apply +3dB gain +.IP "\fB1.189\fR" 4 +.IX Item "1.189" +Apply +1.5dB gain +.IP "\fB1.000\fR" 4 +.IX Item "1.000" +Apply 0dB gain +.IP "\fB0.841\fR" 4 +.IX Item "0.841" +Apply \-1.5dB gain +.IP "\fB0.707\fR" 4 +.IX Item "0.707" +Apply \-3.0dB gain +.IP "\fB0.595\fR" 4 +.IX Item "0.595" +Apply \-4.5dB gain (default) +.IP "\fB0.500\fR" 4 +.IX Item "0.500" +Apply \-6.0dB gain +.IP "\fB0.000\fR" 4 +.IX Item "0.000" +Silence Center Channel +.RE +.RS 4 +.RE +.IP "\fB\-loro_surmixlev\fR \fIlevel\fR" 4 +.IX Item "-loro_surmixlev level" +Lo/Ro Surround Mix Level. The amount of gain the decoder should apply to the +surround channel(s) when downmixing to stereo in Lo/Ro mode. +.RS 4 +.IP "\fB0.841\fR" 4 +.IX Item "0.841" +Apply \-1.5dB gain +.IP "\fB0.707\fR" 4 +.IX Item "0.707" +Apply \-3.0dB gain +.IP "\fB0.595\fR" 4 +.IX Item "0.595" +Apply \-4.5dB gain +.IP "\fB0.500\fR" 4 +.IX Item "0.500" +Apply \-6.0dB gain (default) +.IP "\fB0.000\fR" 4 +.IX Item "0.000" +Silence Surround Channel(s) +.RE +.RS 4 +.RE +.PP +Extended Bitstream Information \- Part 2 +.IX Subsection "Extended Bitstream Information - Part 2" +.IP "\fB\-dsurex_mode\fR \fImode\fR" 4 +.IX Item "-dsurex_mode mode" +Dolby Surround \s-1EX\s0 Mode. Indicates whether the stream uses Dolby Surround \s-1EX\s0 +(7.1 matrixed to 5.1). Using this option does \fB\s-1NOT\s0\fR mean the encoder will actually +apply Dolby Surround \s-1EX\s0 processing. +.RS 4 +.IP "\fB0\fR" 4 +.IX Item "0" +.PD 0 +.IP "\fBnotindicated\fR" 4 +.IX Item "notindicated" +.PD +Not Indicated (default) +.IP "\fB1\fR" 4 +.IX Item "1" +.PD 0 +.IP "\fBon\fR" 4 +.IX Item "on" +.PD +Dolby Surround \s-1EX\s0 Off +.IP "\fB2\fR" 4 +.IX Item "2" +.PD 0 +.IP "\fBoff\fR" 4 +.IX Item "off" +.PD +Dolby Surround \s-1EX\s0 On +.RE +.RS 4 +.RE +.IP "\fB\-dheadphone_mode\fR \fImode\fR" 4 +.IX Item "-dheadphone_mode mode" +Dolby Headphone Mode. Indicates whether the stream uses Dolby Headphone +encoding (multi-channel matrixed to 2.0 for use with headphones). Using this +option does \fB\s-1NOT\s0\fR mean the encoder will actually apply Dolby Headphone +processing. +.RS 4 +.IP "\fB0\fR" 4 +.IX Item "0" +.PD 0 +.IP "\fBnotindicated\fR" 4 +.IX Item "notindicated" +.PD +Not Indicated (default) +.IP "\fB1\fR" 4 +.IX Item "1" +.PD 0 +.IP "\fBon\fR" 4 +.IX Item "on" +.PD +Dolby Headphone Off +.IP "\fB2\fR" 4 +.IX Item "2" +.PD 0 +.IP "\fBoff\fR" 4 +.IX Item "off" +.PD +Dolby Headphone On +.RE +.RS 4 +.RE +.IP "\fB\-ad_conv_type\fR \fItype\fR" 4 +.IX Item "-ad_conv_type type" +A/D Converter Type. Indicates whether the audio has passed through \s-1HDCD\s0 A/D +conversion. +.RS 4 +.IP "\fB0\fR" 4 +.IX Item "0" +.PD 0 +.IP "\fBstandard\fR" 4 +.IX Item "standard" +.PD +Standard A/D Converter (default) +.IP "\fB1\fR" 4 +.IX Item "1" +.PD 0 +.IP "\fBhdcd\fR" 4 +.IX Item "hdcd" +.PD +\&\s-1HDCD\s0 A/D Converter +.RE +.RS 4 +.RE +.PP +\fIOther \s-1AC\-3\s0 Encoding Options\fR +.IX Subsection "Other AC-3 Encoding Options" +.IP "\fB\-stereo_rematrixing\fR \fIboolean\fR" 4 +.IX Item "-stereo_rematrixing boolean" +Stereo Rematrixing. Enables/Disables use of rematrixing for stereo input. This +is an optional \s-1AC\-3\s0 feature that increases quality by selectively encoding +the left/right channels as mid/side. This option is enabled by default, and it +is highly recommended that it be left as enabled except for testing purposes. +.PP +\fIFloating-Point-Only \s-1AC\-3\s0 Encoding Options\fR +.IX Subsection "Floating-Point-Only AC-3 Encoding Options" +.PP +These options are only valid for the floating-point encoder and do not exist +for the fixed-point encoder due to the corresponding features not being +implemented in fixed-point. +.IP "\fB\-channel_coupling\fR \fIboolean\fR" 4 +.IX Item "-channel_coupling boolean" +Enables/Disables use of channel coupling, which is an optional \s-1AC\-3\s0 feature +that increases quality by combining high frequency information from multiple +channels into a single channel. The per-channel high frequency information is +sent with less accuracy in both the frequency and time domains. This allows +more bits to be used for lower frequencies while preserving enough information +to reconstruct the high frequencies. This option is enabled by default for the +floating-point encoder and should generally be left as enabled except for +testing purposes or to increase encoding speed. +.RS 4 +.IP "\fB\-1\fR" 4 +.IX Item "-1" +.PD 0 +.IP "\fBauto\fR" 4 +.IX Item "auto" +.PD +Selected by Encoder (default) +.IP "\fB0\fR" 4 +.IX Item "0" +.PD 0 +.IP "\fBoff\fR" 4 +.IX Item "off" +.PD +Disable Channel Coupling +.IP "\fB1\fR" 4 +.IX Item "1" +.PD 0 +.IP "\fBon\fR" 4 +.IX Item "on" +.PD +Enable Channel Coupling +.RE +.RS 4 +.RE +.IP "\fB\-cpl_start_band\fR \fInumber\fR" 4 +.IX Item "-cpl_start_band number" +Coupling Start Band. Sets the channel coupling start band, from 1 to 15. If a +value higher than the bandwidth is used, it will be reduced to 1 less than the +coupling end band. If \fIauto\fR is used, the start band will be determined by +the encoder based on the bit rate, sample rate, and channel layout. This option +has no effect if channel coupling is disabled. +.RS 4 +.IP "\fB\-1\fR" 4 +.IX Item "-1" +.PD 0 +.IP "\fBauto\fR" 4 +.IX Item "auto" +.PD +Selected by Encoder (default) +.RE +.RS 4 +.RE +.SH "VIDEO ENCODERS" +.IX Header "VIDEO ENCODERS" +A description of some of the currently available video encoders +follows. +.SS "libtheora" +.IX Subsection "libtheora" +Theora format supported through libtheora. +.PP +Requires the presence of the libtheora headers and library during +configuration. You need to explicitly configure the build with +\&\f(CW\*(C`\-\-enable\-libtheora\*(C'\fR. +.PP +\fIOptions\fR +.IX Subsection "Options" +.PP +The following global options are mapped to internal libtheora options +which affect the quality and the bitrate of the encoded stream. +.IP "\fBb\fR" 4 +.IX Item "b" +Set the video bitrate, only works if the \f(CW\*(C`qscale\*(C'\fR flag in +\&\fBflags\fR is not enabled. +.IP "\fBflags\fR" 4 +.IX Item "flags" +Used to enable constant quality mode encoding through the +\&\fBqscale\fR flag, and to enable the \f(CW\*(C`pass1\*(C'\fR and \f(CW\*(C`pass2\*(C'\fR +modes. +.IP "\fBg\fR" 4 +.IX Item "g" +Set the \s-1GOP\s0 size. +.IP "\fBglobal_quality\fR" 4 +.IX Item "global_quality" +Set the global quality in lambda units, only works if the +\&\f(CW\*(C`qscale\*(C'\fR flag in \fBflags\fR is enabled. The value is clipped +in the [0 \- 10*\f(CW\*(C`FF_QP2LAMBDA\*(C'\fR] range, and then multiplied for 6.3 +to get a value in the native libtheora range [0\-63]. A higher value +corresponds to a higher quality. +.Sp +For example, to set maximum constant quality encoding with +\&\fBffmpeg\fR: +.Sp +.Vb 1 +\& ffmpeg \-i INPUT \-flags:v qscale \-global_quality:v "10*QP2LAMBDA" \-codec:v libtheora OUTPUT.ogg +.Ve +.SS "libvpx" +.IX Subsection "libvpx" +\&\s-1VP8\s0 format supported through libvpx. +.PP +Requires the presence of the libvpx headers and library during configuration. +You need to explicitly configure the build with \f(CW\*(C`\-\-enable\-libvpx\*(C'\fR. +.PP +\fIOptions\fR +.IX Subsection "Options" +.PP +Mapping from FFmpeg to libvpx options with conversion notes in parentheses. +.IP "\fBthreads\fR" 4 +.IX Item "threads" +g_threads +.IP "\fBprofile\fR" 4 +.IX Item "profile" +g_profile +.IP "\fBvb\fR" 4 +.IX Item "vb" +rc_target_bitrate +.IP "\fBg\fR" 4 +.IX Item "g" +kf_max_dist +.IP "\fBkeyint_min\fR" 4 +.IX Item "keyint_min" +kf_min_dist +.IP "\fBqmin\fR" 4 +.IX Item "qmin" +rc_min_quantizer +.IP "\fBqmax\fR" 4 +.IX Item "qmax" +rc_max_quantizer +.IP "\fBbufsize, vb\fR" 4 +.IX Item "bufsize, vb" +rc_buf_sz +\&\f(CW\*(C`(bufsize * 1000 / vb)\*(C'\fR +.Sp +rc_buf_optimal_sz +\&\f(CW\*(C`(bufsize * 1000 / vb * 5 / 6)\*(C'\fR +.IP "\fBrc_init_occupancy, vb\fR" 4 +.IX Item "rc_init_occupancy, vb" +rc_buf_initial_sz +\&\f(CW\*(C`(rc_init_occupancy * 1000 / vb)\*(C'\fR +.IP "\fBrc_buffer_aggressivity\fR" 4 +.IX Item "rc_buffer_aggressivity" +rc_undershoot_pct +.IP "\fBskip_threshold\fR" 4 +.IX Item "skip_threshold" +rc_dropframe_thresh +.IP "\fBqcomp\fR" 4 +.IX Item "qcomp" +rc_2pass_vbr_bias_pct +.IP "\fBmaxrate, vb\fR" 4 +.IX Item "maxrate, vb" +rc_2pass_vbr_maxsection_pct +\&\f(CW\*(C`(maxrate * 100 / vb)\*(C'\fR +.IP "\fBminrate, vb\fR" 4 +.IX Item "minrate, vb" +rc_2pass_vbr_minsection_pct +\&\f(CW\*(C`(minrate * 100 / vb)\*(C'\fR +.IP "\fBminrate, maxrate, vb\fR" 4 +.IX Item "minrate, maxrate, vb" +\&\f(CW\*(C`VPX_CBR\*(C'\fR +\&\f(CW\*(C`(minrate == maxrate == vb)\*(C'\fR +.IP "\fBcrf\fR" 4 +.IX Item "crf" +\&\f(CW\*(C`VPX_CQ\*(C'\fR, \f(CW\*(C`VP8E_SET_CQ_LEVEL\*(C'\fR +.IP "\fBquality\fR" 4 +.IX Item "quality" +.RS 4 +.PD 0 +.IP "\fIbest\fR" 4 +.IX Item "best" +.PD +\&\f(CW\*(C`VPX_DL_BEST_QUALITY\*(C'\fR +.IP "\fIgood\fR" 4 +.IX Item "good" +\&\f(CW\*(C`VPX_DL_GOOD_QUALITY\*(C'\fR +.IP "\fIrealtime\fR" 4 +.IX Item "realtime" +\&\f(CW\*(C`VPX_DL_REALTIME\*(C'\fR +.RE +.RS 4 +.RE +.IP "\fBspeed\fR" 4 +.IX Item "speed" +\&\f(CW\*(C`VP8E_SET_CPUUSED\*(C'\fR +.IP "\fBnr\fR" 4 +.IX Item "nr" +\&\f(CW\*(C`VP8E_SET_NOISE_SENSITIVITY\*(C'\fR +.IP "\fBmb_threshold\fR" 4 +.IX Item "mb_threshold" +\&\f(CW\*(C`VP8E_SET_STATIC_THRESHOLD\*(C'\fR +.IP "\fBslices\fR" 4 +.IX Item "slices" +\&\f(CW\*(C`VP8E_SET_TOKEN_PARTITIONS\*(C'\fR +.IP "\fBmax-intra-rate\fR" 4 +.IX Item "max-intra-rate" +\&\f(CW\*(C`VP8E_SET_MAX_INTRA_BITRATE_PCT\*(C'\fR +.IP "\fBforce_key_frames\fR" 4 +.IX Item "force_key_frames" +\&\f(CW\*(C`VPX_EFLAG_FORCE_KF\*(C'\fR +.IP "\fBAlternate reference frame related\fR" 4 +.IX Item "Alternate reference frame related" +.RS 4 +.PD 0 +.IP "\fBvp8flags altref\fR" 4 +.IX Item "vp8flags altref" +.PD +\&\f(CW\*(C`VP8E_SET_ENABLEAUTOALTREF\*(C'\fR +.IP "\fIarnr_max_frames\fR" 4 +.IX Item "arnr_max_frames" +\&\f(CW\*(C`VP8E_SET_ARNR_MAXFRAMES\*(C'\fR +.IP "\fIarnr_type\fR" 4 +.IX Item "arnr_type" +\&\f(CW\*(C`VP8E_SET_ARNR_TYPE\*(C'\fR +.IP "\fIarnr_strength\fR" 4 +.IX Item "arnr_strength" +\&\f(CW\*(C`VP8E_SET_ARNR_STRENGTH\*(C'\fR +.IP "\fIrc_lookahead\fR" 4 +.IX Item "rc_lookahead" +g_lag_in_frames +.RE +.RS 4 +.RE +.IP "\fBvp8flags error_resilient\fR" 4 +.IX Item "vp8flags error_resilient" +g_error_resilient +.PP +For more information about libvpx see: +<\fBhttp://www.webmproject.org/\fR> +.SS "libx264" +.IX Subsection "libx264" +x264 H.264/MPEG\-4 \s-1AVC\s0 encoder wrapper +.PP +Requires the presence of the libx264 headers and library during +configuration. You need to explicitly configure the build with +\&\f(CW\*(C`\-\-enable\-libx264\*(C'\fR. +.PP +x264 supports an impressive number of features, including 8x8 and 4x4 adaptive +spatial transform, adaptive B\-frame placement, \s-1CAVLC/CABAC\s0 entropy coding, +interlacing (\s-1MBAFF\s0), lossless mode, psy optimizations for detail retention +(adaptive quantization, psy-RD, psy-trellis). +.PP +The FFmpeg wrapper provides a mapping for most of them using global options +that match those of the encoders and provides private options for the unique +encoder options. Additionally an expert override is provided to directly pass +a list of key=value tuples as accepted by x264_param_parse. +.PP +\fIOption Mapping\fR +.IX Subsection "Option Mapping" +.PP +The following options are supported by the x264 wrapper, the x264\-equivalent +options follow the FFmpeg ones. +.IP "\fBb : bitrate\fR" 4 +.IX Item "b : bitrate" +FFmpeg \f(CW\*(C`b\*(C'\fR option is expressed in bits/s, x264 \f(CW\*(C`bitrate\*(C'\fR in kilobits/s. +.IP "\fBbf : bframes\fR" 4 +.IX Item "bf : bframes" +Maximum number of B\-frames. +.IP "\fBg : keyint\fR" 4 +.IX Item "g : keyint" +Maximum \s-1GOP\s0 size. +.IP "\fBqmin : qpmin\fR" 4 +.IX Item "qmin : qpmin" +.PD 0 +.IP "\fBqmax : qpmax\fR" 4 +.IX Item "qmax : qpmax" +.IP "\fBqdiff : qpstep\fR" 4 +.IX Item "qdiff : qpstep" +.IP "\fBqblur : qblur\fR" 4 +.IX Item "qblur : qblur" +.IP "\fBqcomp : qcomp\fR" 4 +.IX Item "qcomp : qcomp" +.IP "\fBrefs : ref\fR" 4 +.IX Item "refs : ref" +.IP "\fBsc_threshold : scenecut\fR" 4 +.IX Item "sc_threshold : scenecut" +.IP "\fBtrellis : trellis\fR" 4 +.IX Item "trellis : trellis" +.IP "\fBnr : nr\fR" 4 +.IX Item "nr : nr" +.PD +Noise reduction. +.IP "\fBme_range : merange\fR" 4 +.IX Item "me_range : merange" +.PD 0 +.IP "\fBme_method : me\fR" 4 +.IX Item "me_method : me" +.IP "\fBsubq : subme\fR" 4 +.IX Item "subq : subme" +.IP "\fBb_strategy : b\-adapt\fR" 4 +.IX Item "b_strategy : b-adapt" +.IP "\fBkeyint_min : keyint-min\fR" 4 +.IX Item "keyint_min : keyint-min" +.IP "\fBcoder : cabac\fR" 4 +.IX Item "coder : cabac" +.PD +Set coder to \f(CW\*(C`ac\*(C'\fR to use \s-1CABAC\s0. +.IP "\fBcmp : chroma-me\fR" 4 +.IX Item "cmp : chroma-me" +Set to \f(CW\*(C`chroma\*(C'\fR to use chroma motion estimation. +.IP "\fBthreads : threads\fR" 4 +.IX Item "threads : threads" +.PD 0 +.IP "\fBthread_type : sliced_threads\fR" 4 +.IX Item "thread_type : sliced_threads" +.PD +Set to \f(CW\*(C`slice\*(C'\fR to use sliced threading instead of frame threading. +.IP "\fBflags \-cgop : open-gop\fR" 4 +.IX Item "flags -cgop : open-gop" +Set \f(CW\*(C`\-cgop\*(C'\fR to use recovery points to close GOPs. +.IP "\fBrc_init_occupancy : vbv-init\fR" 4 +.IX Item "rc_init_occupancy : vbv-init" +Initial buffer occupancy. +.PP +\fIPrivate Options\fR +.IX Subsection "Private Options" +.IP "\fB\-preset\fR \fIstring\fR" 4 +.IX Item "-preset string" +Set the encoding preset (cf. x264 \-\-fullhelp). +.IP "\fB\-tune\fR \fIstring\fR" 4 +.IX Item "-tune string" +Tune the encoding params (cf. x264 \-\-fullhelp). +.IP "\fB\-profile\fR \fIstring\fR" 4 +.IX Item "-profile string" +Set profile restrictions (cf. x264 \-\-fullhelp). +.IP "\fB\-fastfirstpass\fR \fIinteger\fR" 4 +.IX Item "-fastfirstpass integer" +Use fast settings when encoding first pass. +.IP "\fB\-crf\fR \fIfloat\fR" 4 +.IX Item "-crf float" +Select the quality for constant quality mode. +.IP "\fB\-crf_max\fR \fIfloat\fR" 4 +.IX Item "-crf_max float" +In \s-1CRF\s0 mode, prevents \s-1VBV\s0 from lowering quality beyond this point. +.IP "\fB\-qp\fR \fIinteger\fR" 4 +.IX Item "-qp integer" +Constant quantization parameter rate control method. +.IP "\fB\-aq\-mode\fR \fIinteger\fR" 4 +.IX Item "-aq-mode integer" +\&\s-1AQ\s0 method +.Sp +Possible values: +.RS 4 +.IP "\fBnone\fR" 4 +.IX Item "none" +.PD 0 +.IP "\fBvariance\fR" 4 +.IX Item "variance" +.PD +Variance \s-1AQ\s0 (complexity mask). +.IP "\fBautovariance\fR" 4 +.IX Item "autovariance" +Auto-variance \s-1AQ\s0 (experimental). +.RE +.RS 4 +.RE +.IP "\fB\-aq\-strength\fR \fIfloat\fR" 4 +.IX Item "-aq-strength float" +\&\s-1AQ\s0 strength, reduces blocking and blurring in flat and textured areas. +.IP "\fB\-psy\fR \fIinteger\fR" 4 +.IX Item "-psy integer" +Use psychovisual optimizations. +.IP "\fB\-psy\-rd\fR \fIstring\fR" 4 +.IX Item "-psy-rd string" +Strength of psychovisual optimization, in <psy\-rd>:<psy\-trellis> format. +.IP "\fB\-rc\-lookahead\fR \fIinteger\fR" 4 +.IX Item "-rc-lookahead integer" +Number of frames to look ahead for frametype and ratecontrol. +.IP "\fB\-weightb\fR \fIinteger\fR" 4 +.IX Item "-weightb integer" +Weighted prediction for B\-frames. +.IP "\fB\-weightp\fR \fIinteger\fR" 4 +.IX Item "-weightp integer" +Weighted prediction analysis method. +.Sp +Possible values: +.RS 4 +.IP "\fBnone\fR" 4 +.IX Item "none" +.PD 0 +.IP "\fBsimple\fR" 4 +.IX Item "simple" +.IP "\fBsmart\fR" 4 +.IX Item "smart" +.RE +.RS 4 +.RE +.IP "\fB\-ssim\fR \fIinteger\fR" 4 +.IX Item "-ssim integer" +.PD +Calculate and print \s-1SSIM\s0 stats. +.IP "\fB\-intra\-refresh\fR \fIinteger\fR" 4 +.IX Item "-intra-refresh integer" +Use Periodic Intra Refresh instead of \s-1IDR\s0 frames. +.IP "\fB\-b\-bias\fR \fIinteger\fR" 4 +.IX Item "-b-bias integer" +Influences how often B\-frames are used. +.IP "\fB\-b\-pyramid\fR \fIinteger\fR" 4 +.IX Item "-b-pyramid integer" +Keep some B\-frames as references. +.Sp +Possible values: +.RS 4 +.IP "\fBnone\fR" 4 +.IX Item "none" +.PD 0 +.IP "\fBstrict\fR" 4 +.IX Item "strict" +.PD +Strictly hierarchical pyramid. +.IP "\fBnormal\fR" 4 +.IX Item "normal" +Non-strict (not Blu-ray compatible). +.RE +.RS 4 +.RE +.IP "\fB\-mixed\-refs\fR \fIinteger\fR" 4 +.IX Item "-mixed-refs integer" +One reference per partition, as opposed to one reference per macroblock. +.IP "\fB\-8x8dct\fR \fIinteger\fR" 4 +.IX Item "-8x8dct integer" +High profile 8x8 transform. +.IP "\fB\-fast\-pskip\fR \fIinteger\fR" 4 +.IX Item "-fast-pskip integer" +.PD 0 +.IP "\fB\-aud\fR \fIinteger\fR" 4 +.IX Item "-aud integer" +.PD +Use access unit delimiters. +.IP "\fB\-mbtree\fR \fIinteger\fR" 4 +.IX Item "-mbtree integer" +Use macroblock tree ratecontrol. +.IP "\fB\-deblock\fR \fIstring\fR" 4 +.IX Item "-deblock string" +Loop filter parameters, in <alpha:beta> form. +.IP "\fB\-cplxblur\fR \fIfloat\fR" 4 +.IX Item "-cplxblur float" +Reduce fluctuations in \s-1QP\s0 (before curve compression). +.IP "\fB\-partitions\fR \fIstring\fR" 4 +.IX Item "-partitions string" +A comma-separated list of partitions to consider, possible values: p8x8, p4x4, b8x8, i8x8, i4x4, none, all. +.IP "\fB\-direct\-pred\fR \fIinteger\fR" 4 +.IX Item "-direct-pred integer" +Direct \s-1MV\s0 prediction mode +.Sp +Possible values: +.RS 4 +.IP "\fBnone\fR" 4 +.IX Item "none" +.PD 0 +.IP "\fBspatial\fR" 4 +.IX Item "spatial" +.IP "\fBtemporal\fR" 4 +.IX Item "temporal" +.IP "\fBauto\fR" 4 +.IX Item "auto" +.RE +.RS 4 +.RE +.IP "\fB\-slice\-max\-size\fR \fIinteger\fR" 4 +.IX Item "-slice-max-size integer" +.PD +Limit the size of each slice in bytes. +.IP "\fB\-stats\fR \fIstring\fR" 4 +.IX Item "-stats string" +Filename for 2 pass stats. +.IP "\fB\-nal\-hrd\fR \fIinteger\fR" 4 +.IX Item "-nal-hrd integer" +Signal \s-1HRD\s0 information (requires vbv-bufsize; cbr not allowed in .mp4). +.Sp +Possible values: +.RS 4 +.IP "\fBnone\fR" 4 +.IX Item "none" +.PD 0 +.IP "\fBvbr\fR" 4 +.IX Item "vbr" +.IP "\fBcbr\fR" 4 +.IX Item "cbr" +.RE +.RS 4 +.RE +.IP "\fBx264opts\fR \fIoptions\fR" 4 +.IX Item "x264opts options" +.PD +Allow to set any x264 option, see \f(CW\*(C`x264 \-\-fullhelp\*(C'\fR for a list. +.Sp +\&\fIoptions\fR is a list of \fIkey\fR=\fIvalue\fR couples separated by +\&\*(L":\*(R". In \fIfilter\fR and \fIpsy-rd\fR options that use \*(L":\*(R" as a separator +themselves, use \*(L",\*(R" instead. They accept it as well since long ago but this +is kept undocumented for some reason. +.Sp +For example to specify libx264 encoding options with \fBffmpeg\fR: +.Sp +.Vb 1 +\& ffmpeg \-i foo.mpg \-vcodec libx264 \-x264opts keyint=123:min\-keyint=20 \-an out.mkv +.Ve +.Sp +For more information about libx264 and the supported options see: +<\fBhttp://www.videolan.org/developers/x264.html\fR> +.IP "\fB\-x264\-params\fR \fIstring\fR" 4 +.IX Item "-x264-params string" +Override the x264 configuration using a :\-separated list of key=value parameters. +.Sp +.Vb 1 +\& \-x264\-params level=30:bframes=0:weightp=0:cabac=0:ref=1:vbv\-maxrate=768:vbv\-bufsize=2000:analyse=all:me=umh:no\-fast\-pskip=1:subq=6:8x8dct=0:trellis=0 +.Ve +.PP +Encoding avpresets for common usages are provided so they can be used with the +general presets system (e.g. passing the \f(CW\*(C`\-pre\*(C'\fR option). +.SS "ProRes" +.IX Subsection "ProRes" +Apple ProRes encoder. +.PP +FFmpeg contains 2 ProRes encoders, the prores-aw and prores-ks encoder. +The used encoder can be choosen with the \f(CW\*(C`\-vcodec\*(C'\fR option. +.PP +\fIPrivate Options for prores-ks\fR +.IX Subsection "Private Options for prores-ks" +.IP "\fBprofile\fR \fIinteger\fR" 4 +.IX Item "profile integer" +Select the ProRes profile to encode +.RS 4 +.IP "\fBproxy\fR" 4 +.IX Item "proxy" +.PD 0 +.IP "\fBlt\fR" 4 +.IX Item "lt" +.IP "\fBstandard\fR" 4 +.IX Item "standard" +.IP "\fBhq\fR" 4 +.IX Item "hq" +.RE +.RS 4 +.RE +.IP "\fBquant_mat\fR \fIinteger\fR" 4 +.IX Item "quant_mat integer" +.PD +Select quantization matrix. +.RS 4 +.IP "\fBauto\fR" 4 +.IX Item "auto" +.PD 0 +.IP "\fBdefault\fR" 4 +.IX Item "default" +.IP "\fBproxy\fR" 4 +.IX Item "proxy" +.IP "\fBlt\fR" 4 +.IX Item "lt" +.IP "\fBstandard\fR" 4 +.IX Item "standard" +.IP "\fBhq\fR" 4 +.IX Item "hq" +.RE +.RS 4 +.PD +.Sp +If set to \fIauto\fR, the matrix matching the profile will be picked. +If not set, the matrix providing the highest quality, \fIdefault\fR, will be +picked. +.RE +.IP "\fBbits_per_mb\fR \fIinteger\fR" 4 +.IX Item "bits_per_mb integer" +How many bits to allot for coding one macroblock. Different profiles use +between 200 and 2400 bits per macroblock, the maximum is 8000. +.IP "\fBmbs_per_slice\fR \fIinteger\fR" 4 +.IX Item "mbs_per_slice integer" +Number of macroblocks in each slice (1\-8); the default value (8) +should be good in almost all situations. +.IP "\fBvendor\fR \fIstring\fR" 4 +.IX Item "vendor string" +Override the 4\-byte vendor \s-1ID\s0. +A custom vendor \s-1ID\s0 like \fIapl0\fR would claim the stream was produced by +the Apple encoder. +.PP +\fISpeed considerations\fR +.IX Subsection "Speed considerations" +.PP +In the default mode of operation the encoder has to honor frame constraints +(i.e. not produc frames with size bigger than requested) while still making +output picture as good as possible. +A frame containing a lot of small details is harder to compress and the encoder +would spend more time searching for appropriate quantizers for each slice. +.PP +Setting a higher \fBbits_per_mb\fR limit will improve the speed. +.PP +For the fastest encoding speed set the \fBqscale\fR parameter (4 is the +recommended value) and do not set a size constraint. +.SH "SEE ALSO" +.IX Header "SEE ALSO" +\&\fIffmpeg\fR\|(1), \fIffplay\fR\|(1), \fIffprobe\fR\|(1), \fIffserver\fR\|(1), \fIlibavcodec\fR\|(3) +.SH "AUTHORS" +.IX Header "AUTHORS" +The FFmpeg developers. +.PP +For details about the authorship, see the Git history of the project +(git://source.ffmpeg.org/ffmpeg), e.g. by typing the command +\&\fBgit log\fR in the FFmpeg source directory, or browsing the +online repository at <\fBhttp://source.ffmpeg.org\fR>. +.PP +Maintainers for the specific components are listed in the file +\&\fI\s-1MAINTAINERS\s0\fR in the source code tree.