only) Enable optimizations which do not comply to the specifica‐ tion and might potentially cause problems, like simpler dequantization, simpler motion compensation, assuming use of the default quantization matrix, assuming YUV 4:2:0 and skipping a few checks to detect damaged bitstreams. gray grayscale only decoding (a bit faster than with color) idct=<0-99> (see -lavcopts) For best decoding quality use the same IDCT algorithm for decoding and encoding. This may come at a price in accu‐ racy, though. lowres=<number>[,<w>] Decode at lower resolutions. Low resolution decoding is not supported by all codecs, and it will often result in ugly artifacts. This is not a bug, but a side effect of not decoding at full resolution. 0: disabled 1: 1/2 resolution 2: 1/4 resolution 3: 1/8 resolution If <w> is specified lowres decoding will be used only if the width of the video is major than or equal to <w>. o=<key>=<value>[,<key>=<value>[,...]] Pass AVOptions to libav‐ codec decoder. Note, a patch to make the o= unneeded and pass all unknown options through the AVOption system is welcome. A full list of AVOptions can be found in the FFmpeg manual. Note that some options may conflict with MEncoder options. EXAMPLE: o=debug=pict sb=<number> (MPEG-2 only) Skip the given number of macroblock rows at the bottom. st=<number> (MPEG-2 only) Skip the given number of macroblock rows at the top. skiploopfilter=<skipvalue> (H.264 only) Skips the loop filter (AKA deblocking) during H.264 decod‐ ing. Since the filtered frame is supposed to be used as reference for decoding dependent frames this has a worse effect on quality than not doing deblocking on e.g. MPEG-2 video. But at least for high bitrate HDTV this provides a big speedup with no visible quality loss. <skipvalue> can be either one of the following: none: Never skip. default: Skip useless processing steps (e.g. 0 size packets in AVI). nonref: Skip frames that are not referenced (i.e. not used for decoding other frames, the error cannot "build up"). bidir: Skip B-Frames. nonkey: Skip all frames except keyframes. all: Skip all frames. skipidct=<skipvalue> (MPEG-1/2 only) Skips the IDCT step. This degrades quality a lot of in almost all cases (see skiploopfilter for available skip values). skipframe=<skipvalue> Skips decoding of frames completely. Big speedup, but jerky motion and sometimes bad artifacts (see skiploopfil‐ ter for available skip values). threads=<1-8> (MPEG-1/2 and H.264 only) number of threads to use for decoding (default: 1) vismv=<value> Visualize motion vectors. 0: disabled 1: Visualize forward predicted MVs of P-frames. 2: Visualize forward predicted MVs of B-frames. 4: Visualize backward predicted MVs of B-frames. vstats Prints some statistics and stores them in ./vstats_*.log. wait_keyframe Wait for a keyframe before displaying anything. Avoids broken frames at startup or after seeking with some for‐ mats. -noslices Disable drawing video by 16-pixel height slices/bands, instead draws the whole frame in a single run. May be faster or slower, depending on video card and available cache. It has effect only with libmpeg2 and libavcodec codecs. -nosound Do not play/encode sound. Useful for benchmarking. -novideo Do not play/encode video. In many cases this will not work, use -vc null -vo null instead. -pp <quality> (also see -vf pp) Set the DLL postprocess level. This option is no longer usable with -vf pp. It only works with Win32 DirectShow DLLs with inter‐ nal postprocessing routines. The valid range of -pp values varies by codec, it is mostly 0-6, where 0=disable, 6=slowest/best. -pphelp (also see -vf pp) Show a summary about the available postprocess filters and their usage. -ssf <mode> Specifies software scaler parameters. EXAMPLE: -vf scale -ssf lgb=3.0 lgb=<0-100> gaussian blur filter (luma) cgb=<0-100> gaussian blur filter (chroma) ls=<-100-100> sharpen filter (luma) cs=<-100-100> sharpen filter (chroma) chs=<h> chroma horizontal shifting cvs=<v> chroma vertical shifting -stereo <mode> Select type of MP2/MP3 stereo output. 0 stereo 1 left channel 2 right channel -sws <software scaler type> (also see -vf scale and -zoom) Specify the software scaler algorithm to be used with the -zoom option. This affects video output drivers which lack hardware ac‐ celeration, e.g. x11. Available types are: 0 fast bilinear 1 bilinear 2 bicubic (good quality) (default) 3 experimental 4 nearest neighbor (bad quality) 5 area 6 luma bicubic / chroma bilinear 7 gauss 8 sincR 9 lanczos 10 natural bicubic spline NOTE: Some -sws options are tunable. The description of the scale video filter has further information. -vc <[-|+]codec1,[-|+]codec2,...[,]> Specify a priority list of video codecs to be used, according to their codec name in codecs.conf. Use a '-' before the codec name to omit it. Use a '+' before the codec name to force it, this will likely crash! If the list has a trailing ',' MPlayer will fall back on codecs not contained in the list. NOTE: See -vc help for a full list of available codecs. EXAMPLE: -vc divx Force Win32/VfW DivX codec, no fallback. -vc -divxds,-divx, Skip Win32 DivX codecs. -vc ffmpeg12,mpeg12, Try libavcodec's MPEG-1/2 codec, then libmpeg2, then oth‐ ers. -vfm <driver1,driver2,...> Specify a priority list of video codec families to be used, ac‐ cording to their names in codecs.conf. Falls back on the default codecs if none of the given codec families work. NOTE: See -vfm help for a full list of available codec families. EXAMPLE: -vfm ffmpeg,dshow,vfw Try the libavcodec, then Directshow, then VfW codecs and fall back on others, if they do not work. -vfm xanim Try XAnim codecs first. -x <x> (also see -zoom) (MPlayer only) Scale image to width <x> (if software/hardware scaling is avail‐ able). Disables aspect calculations. -xvidopts <option1:option2:...> Specify additional parameters when decoding with Xvid. NOTE: Since libavcodec is faster than Xvid you might want to use the libavcodec postprocessing filter (-vf pp) and decoder (-vfm ffmpeg) instead.  May increase perceived quality, while lowering true quality. rendering methods: dr2 Activate direct rendering method 2. nodr2 Deactivate direct rendering method 2. -xy <value> (also see -zoom) value<=8 Scale image by factor <value>. value>8 Set width to value and calculate height to keep correct aspect ratio. -y <y> (also see -zoom) (MPlayer only) Scale image to height <y> (if software/hardware scaling is avail‐ able). Disables aspect calculations. -zoom Allow software scaling, where available. This will allow scaling with output drivers (like x11, fbdev) that do not support hardware scaling where MPlayer disables scaling by default for performance reasons. AUDIO FILTERS Audio filters allow you to modify the audio stream and its properties. The syntax is: -af <filter1[=parameter1:parameter2:...],filter2,...> Setup a chain of audio filters. NOTE: To get a full list of available audio filters, see -af help. Audio filters are managed in lists. There are a few commands to manage the filter list. -af-add <filter1[,filter2,...]> Appends the filters given as arguments to the filter list. -af-pre <filter1[,filter2,...]> Prepends the filters given as arguments to the filter list. -af-del <index1[,index2,...]> Deletes the filters at the given indexes. Index numbers start at 0, negative numbers address the end of the list (-1 is the last). -af-clr Completely empties the filter list. Available filters are: resample[=srate[:sloppy[:type]]] Changes the sample rate of the audio stream. Can be used if you have a fixed frequency sound card or if you are stuck with an old sound card that is only capable of max 44.1kHz. This filter is automatically enabled if necessary. It only supports 16-bit inte‐ ger and float in native-endian format as input. NOTE: With MEncoder, you need to also use -srate <srate>. <srate> output sample frequency in Hz. The valid range for this parameter is 8000 to 192000. If the input and output sam‐ ple frequency are the same or if this parameter is omitted the filter is automatically unloaded. A high sample fre‐ quency normally improves the audio quality, especially when used in combination with other filters. <sloppy> Allow (1) or disallow (0) the output frequency to differ slightly from the frequency given by <srate> (default: 1). Can be used if the startup of the playback is extremely slow. <type> Select which resampling method to use. 0: linear interpolation (fast, poor quality especially when upsampling) 1: polyphase filterbank and integer processing 2: polyphase filterbank and floating point processing (slow, best quality) EXAMPLE: mplayer -af resample=44100:0:0 would set the output frequency of the resample filter to 44100Hz using exact output frequency scaling and linear interpolation. lavcresample[=srate[:length[:linear[:count[:cutoff]]]]] Changes the sample rate of the audio stream to an integer <srate> in Hz. It only supports the 16-bit native-endian format. NOTE: With MEncoder, you need to also use -srate <srate>. <srate> the output sample rate <length> length of the filter with respect to the lower sampling rate (default: 16) <linear> if 1 then filters will be linearly interpolated between polyphase entries <count> log2 of the number of polyphase entries (..., 10->1024, 11->2048, 12->4096, ...) (default: 10->1024) <cutoff> cutoff frequency (0.0-1.0), default set depending upon filter length lavcac3enc[=tospdif[:bitrate[:minchn]]] Encode multi-channel audio to AC-3 at runtime using libavcodec. Supports 16-bit native-endian input format, maximum 6 channels. The output is big-endian when outputting a raw AC-3 stream, na‐ tive-endian when outputting to S/PDIF. The output sample rate of this filter is same with the input sample rate. When input sample rate is 48kHz, 44.1kHz, or 32kHz, this filter directly use it. Otherwise a resampling filter is auto-inserted before this filter to make the input and output sample rate be 48kHz. You need to specify '-channels N' to make the decoder decode audio into N- channel, then the filter can encode the N-channel input to AC-3. <tospdif> Output raw AC-3 stream if zero or not set, output to S/PDIF for passthrough when <tospdif> is set non-zero. <bitrate> The bitrate to encode the AC-3 stream. Set it to either 384 or 384000 to get 384kbits. Valid values: 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384, 448, 512, 576, 640 Default bitrate is based on the input channel number: 1ch: 96, 2ch: 192, 3ch: 224, 4ch: 384, 5ch: 448, 6ch: 448 <minchn> If the input channel number is less than <minchn>, the filter will detach itself (default: 5). sweep[=speed] Produces a sine sweep. <0.0-1.0> Sine function delta, use very low values to hear the sweep. sinesuppress[=freq:decay] Remove a sine at the specified frequency. Useful to get rid of the 50/60Hz noise on low quality audio equipment. It probably on‐ ly works on mono input. <freq> The frequency of the sine which should be removed (in Hz) (default: 50) <decay> Controls the adaptivity (a larger value will make the fil‐ ter adapt to amplitude and phase changes quicker, a small‐ er value will make the adaptation slower) (default: 0.0001). Reasonable values are around 0.001. bs2b[=option1:option2:...] Bauer stereophonic to binaural transformation using libbs2b. Im‐ proves the headphone listening experience by making the sound sim‐ ilar to that from loudspeakers, allowing each ear to hear both channels and taking into account the distance difference and the head shadowing effect. It is applicable only to 2 channel audio. fcut=<300-1000> Set cut frequency in Hz. feed=<10-150> Set feed level for low frequencies in 0.1*dB. profile=<value> Several profiles are available for convenience: default will be used if nothing else was specified (fcut=700, feed=45) cmoy Chu Moy circuit implementation (fcut=700, feed=60) jmeier Jan Meier circuit implementation (fcut=650, feed=95) If fcut or feed options are specified together with a profile, they will be applied on top of the selected profile. hrtf[=flag] Head-related transfer function: Converts multichannel audio to 2 channel output for headphones, preserving the spatiality of the sound. Flag Meaning m matrix decoding of the rear channel s 2-channel matrix decoding 0 no matrix decoding (default) equalizer=[g1:g2:g3:...:g10] 10 octave band graphic equalizer, implemented using 10 IIR band pass filters. This means that it works regardless of what type of audio is being played back. The center frequencies for the 10 bands are: No. frequency 0 31.25 Hz 1 62.50 Hz 2 125.00 Hz 3 250.00 Hz 4 500.00 Hz 5 1.00 kHz 6 2.00 kHz 7 4.00 kHz 8 8.00 kHz 9 16.00 kHz If the sample rate of the sound being played is lower than the center frequency for a frequency band, then that band will be dis‐ abled. A known bug with this filter is that the characteristics for the uppermost band are not completely symmetric if the sample rate is close to the center frequency of that band. This problem can be worked around by upsampling the sound using the resample filter before it reaches this filter. <g1>:<g2>:<g3>:...:<g10> floating point numbers representing the gain in dB for each frequency band (-12-12) EXAMPLE: mplayer -af equalizer=11:11:10:5:0:-12:0:5:12:12 media.avi Would amplify the sound in the upper and lower frequency region while canceling it almost completely around 1kHz. channels=nch[:nr:from1:to1:from2:to2:from3:to3:...] Can be used for adding, removing, routing and copying audio chan‐ nels. If only <nch> is given the default routing is used, it works as follows: If the number of output channels is bigger than the number of input channels empty channels are inserted (except mixing from mono to stereo, then the mono channel is repeated in both of the output channels). If the number of output channels is smaller than the number of input channels the exceeding channels are truncated. <nch> number of output channels (1-8) <nr> number of routes (1-8) <from1:to1:from2:to2:from3:to3:...> Pairs of numbers between 0 and 7 that define where to route each channel. EXAMPLE: mplayer -af channels=4:4:0:1:1:0:2:2:3:3 media.avi Would change the number of channels to 4 and set up 4 routes that swap channel 0 and channel 1 and leave channel 2 and 3 intact. Observe that if media containing two channels was played back, channels 2 and 3 would contain silence but 0 and 1 would still be swapped. mplayer -af channels=6:4:0:0:0:1:0:2:0:3 media.avi Would change the number of channels to 6 and set up 4 routes that copy channel 0 to channels 0 to 3. Channel 4 and 5 will contain silence. format[=format] (also see -format) Convert between different sample formats. Automatically enabled when needed by the sound card or another filter. <format> Sets the desired format. The general form is 'sbe', where 's' denotes the sign (either 's' for signed or 'u' for un‐ signed), 'b' denotes the number of bits per sample (16, 24 or 32) and 'e' denotes the endianness ('le' means little- endian, 'be' big-endian and 'ne' the endianness of the computer MPlayer is running on). Valid values (amongst others) are: 's16le', 'u32be' and 'u24ne'. Exceptions to this rule that are also valid format specifiers: u8, s8, floatle, floatbe, floatne, mulaw, alaw, mpeg2, ac3 and imaadpcm. volume[=v[:sc]] Implements software volume control. Use this filter with caution since it can reduce the signal to noise ratio of the sound. In most cases it is best to set the level for the PCM sound to max, leave this filter out and control the output level to your speak‐ ers with the master volume control of the mixer. In case your sound card has a digital PCM mixer instead of an analog one, and you hear distortion, use the MASTER mixer instead. If there is an external amplifier connected to the computer (this is almost al‐ ways the case), the noise level can be minimized by adjusting the master level and the volume knob on the amplifier until the hiss‐ ing noise in the background is gone. This filter has a second feature: It measures the overall maximum sound level and prints out that level when MPlayer exits. This volume estimate can be used for setting the sound level in MEn‐ coder such that the maximum dynamic range is utilized. This fea‐ ture currently only works with floating-point data, use e.g. -af-adv force=5, or use -af stats. NOTE: This filter is not reentrant and can therefore only be en‐ abled once for every audio stream. <v> Sets the desired gain in dB for all channels in the stream from -200dB to +60dB, where -200dB mutes the sound com‐ pletely and +60dB equals a gain of 1000 (default: 0). <sc> Turns soft clipping on (1) or off (0). Soft-clipping can make the sound more smooth if very high volume levels are used. Enable this option if the dynamic range of the loudspeakers is very low. WARNING: This feature creates distortion and should be considered a last resort. EXAMPLE: mplayer -af volume=10.1:0 media.avi Would amplify the sound by 10.1dB and hard-clip if the sound level is too high. pan=n[:L00:L01:L02:...L10:L11:L12:...Ln0:Ln1:Ln2:...] Mixes channels arbitrarily. Basically a combination of the volume and the channels filter that can be used to down-mix many channels to only a few, e.g. stereo to mono or vary the "width" of the cen‐ ter speaker in a surround sound system. This filter is hard to use, and will require some tinkering before the desired result is obtained. The number of options for this filter depends on the number of output channels. An example how to downmix a six-chan‐ nel file to two channels with this filter can be found in the ex‐ amples section near the end. <n> number of output channels (1-8) <Lij> How much of input channel i is mixed into output channel j (0-1). So in principle you first have n numbers saying what to do with the first input channel, then n numbers that act on the second input channel etc. If you do not specify any numbers for some input channels, 0 is assumed. EXAMPLE: mplayer -af pan=1:0.5:0.5 media.avi Would down-mix from stereo to mono. mplayer -af pan=3:1:0:0.5:0:1:0.5 media.avi Would give 3 channel output leaving channels 0 and 1 in‐ tact, and mix channels 0 and 1 into output channel 2 (which could be sent to a subwoofer for example). sub[=fc:ch] Adds a subwoofer channel to the audio stream. The audio data used for creating the subwoofer channel is an average of the sound in channel 0 and channel 1. The resulting sound is then low-pass filtered by a 4th order Butterworth filter with a default cutoff frequency of 60Hz and added to a separate channel in the audio stream. Warning: Disable this filter when you are playing DVDs with Dolby Digital 5.1 sound, otherwise this filter will disrupt the sound to the subwoofer. <fc> cutoff frequency in Hz for the low-pass filter (20Hz to 300Hz) (default: 60Hz) For the best result try setting the cutoff frequency as low as possible. This will improve the stereo or surround sound experience. <ch> Determines the channel number in which to insert the sub- channel audio. Channel number can be between 0 and 7 (de‐ fault: 5). Observe that the number of channels will auto‐ matically be increased to <ch> if necessary. EXAMPLE: mplayer -af sub=100:4 -channels 5 media.avi Would add a sub-woofer channel with a cutoff frequency of 100Hz to output channel 4. center Creates a center channel from the front channels. May currently be low quality as it does not implement a high-pass filter for proper extraction yet, but averages and halves the channels in‐ stead. <ch> Determines the channel number in which to insert the cen‐ ter channel. Channel number can be between 0 and 7 (de‐ fault: 5). Observe that the number of channels will auto‐ matically be increased to <ch> if necessary. surround[=delay] Decoder for matrix encoded surround sound like Dolby Surround. Many files with 2 channel audio actually contain matrixed surround sound. Requires a sound card supporting at least 4 channels. <delay> delay time in ms for the rear speakers (0 to 1000) (de‐ fault: 20) This delay should be set as follows: If d1 is the distance from the listening position to the front speakers and d2 is the distance from the listening posi‐ tion to the rear speakers, then the delay should be set to 15ms if d1 <= d2 and to 15 + 5*(d1-d2) if d1 > d2. EXAMPLE: mplayer -af surround=15 -channels 4 media.avi Would add surround sound decoding with 15ms delay for the sound to the rear speakers. delay[=ch1:ch2:...] Delays the sound to the loudspeakers such that the sound from the different channels arrives at the listening position simultaneous‐ ly. It is only useful if you have more than 2 loudspeakers. ch1,ch2,... The delay in ms that should be imposed on each channel (floating point number between 0 and 1000). To calculate the required delay for the different channels do as follows: 1. Measure the distance to the loudspeakers in meters in relation to your listening position, giving you the distances s1 to s5 (for a 5.1 system). There is no point in compensating for the subwoofer (you will not hear the difference anyway). 2. Subtract the distances s1 to s5 from the maximum distance, i.e. s[i] = max(s) - s[i]; i = 1...5. 3. Calculate the required delays in ms as d[i] = 1000*s[i]/342; i = 1...5. EXAMPLE: mplayer -af delay=10.5:10.5:0:0:7:0 media.avi Would delay front left and right by 10.5ms, the two rear channels and the sub by 0ms and the center channel by 7ms. export[=mmapped_file[:nsamples]] Exports the incoming signal to other processes using memory map‐ ping (mmap()). Memory mapped areas contain a header: int nch /*number of channels*/ int size /*buffer size*/ unsigned long long counter /*Used to keep sync, updated every time new data is exported.*/ The rest is payload (non-interleaved) 16 bit data. <mmapped_file> file to map data to (default: ~/.mplayer/mplayer-af_ex‐ port) <nsamples> number of samples per channel (default: 512) EXAMPLE: mplayer -af export=/tmp/mplayer-af_export:1024 media.avi Would export 1024 samples per channel to '/tmp/mplayer- af_export'. extrastereo[=mul] (Linearly) increases the difference between left and right chan‐ nels which adds some sort of "live" effect to playback. <mul> Sets the difference coefficient (default: 2.5). 0.0 means mono sound (average of both channels), with 1.0 sound will be unchanged, with -1.0 left and right channels will be swapped. volnorm[=method:target] Maximizes the volume without distorting the sound. <method> Sets the used method. 1: Use a single sample to smooth the variations via the standard weighted mean over past samples (default). 2: Use several samples to smooth the variations via the standard weighted mean over past samples. <target> Sets the target amplitude as a fraction of the maximum for the sample type (default: 0.25). ladspa=file:label[:controls...] Load a LADSPA (Linux Audio Developer's Simple Plugin API) plugin. This filter is reentrant, so multiple LADSPA plugins can be used at once. <file> Specifies the LADSPA plugin library file. If LADSPA_PATH is set, it searches for the specified file. If it is not set, you must supply a fully specified pathname. <label> Specifies the filter within the library. Some libraries contain only one filter, but others contain many of them. Entering 'help' here, will list all available filters within the specified library, which eliminates the use of 'listplugins' from the LADSPA SDK. <controls> Controls are zero or more floating point values that de‐ termine the behavior of the loaded plugin (for example de‐ lay, threshold or gain). In verbose mode (add -v to the MPlayer command line), all available controls and their valid ranges are printed. This eliminates the use of 'analyseplugin' from the LADSPA SDK. comp Compressor/expander filter usable for microphone input. Prevents artifacts on very loud sound and raises the volume on very low sound. This filter is untested, maybe even unusable. gate Noise gate filter similar to the comp audio filter. This filter is untested, maybe even unusable. karaoke Simple voice removal filter exploiting the fact that voice is usu‐ ally recorded with mono gear and later 'center' mixed onto the fi‐ nal audio stream. Beware that this filter will turn your signal into mono. Works well for 2 channel tracks; do not bother trying it on anything but 2 channel stereo. scaletempo[=option1:option2:...] Scales audio tempo without altering pitch, optionally synced to playback speed (default). This works by playing ´stride´ ms of audio at normal speed then consuming ´stride*scale´ ms of input audio. It pieces the strides together by blending ´overlap´% of stride with audio following the previous stride. It optionally performs a short statistical anal‐ ysis on the next ´search´ ms of audio to determine the best over‐ lap position. scale=<amount> Nominal amount to scale tempo. Scales this amount in ad‐ dition to speed. (default: 1.0) stride=<amount> Length in milliseconds to output each stride. Too high of value will cause noticable skips at high scale amounts and an echo at low scale amounts. Very low values will alter pitch. Increasing improves performance. (default: 60) overlap=<percent> Percentage of stride to overlap. Decreasing improves per‐ formance. (default: .20) search=<amount> Length in milliseconds to search for best overlap posi‐ tion. Decreasing improves performance greatly. On slow systems, you will probably want to set this very low. (default: 14) speed=<tempo|pitch|both|none> Set response to speed change. tempo Scale tempo in sync with speed (default). pitch Reverses effect of filter. Scales pitch without altering tempo. Add ´[ speed_mult 0.9438743126816935´ and ´] speed_mult 1.059463094352953´ to your input.conf to step by musical semi-tones. WARNING: Loses sync with video. both Scale both tempo and pitch. none Ignore speed changes. EXAMPLE: mplayer -af scaletempo -speed 1.2 media.ogg Would playback media at 1.2x normal speed, with audio at normal pitch. Changing playback speed, would change audio tempo to match. mplayer -af scaletempo=scale=1.2:speed=none -speed 1.2 me‐ dia.ogg Would playback media at 1.2x normal speed, with audio at normal pitch, but changing playback speed has no effect on audio tempo. mplayer -af scaletempo=stride=30:overlap=.50:search=10 me‐ dia.ogg Would tweak the quality and performace parameters. mplayer -af format=floatne,scaletempo media.ogg Would make scaletempo use float code. Maybe faster on some platforms. mplayer -af scaletempo=scale=1.2:speed=pitch audio.ogg Would playback audio file at 1.2x normal speed, with audio at normal pitch. Changing playback speed, would change pitch, leaving audio tempo at 1.2x. stats Collects and prints statistics about the audio stream, especially the volume. These statistics are especially intended to help ad‐ justing the volume while avoiding clipping. The volumes are printed in dB and compatible with the volume audio filter, they are always rounded towards -0dB. The 'n_samples' field is the total number of samples seen by the filter. The 'mean_volume' field is the root mean square. The 'max_volume' field is exactly what it says. The 'histogram_Xdb' fields count how many samples were at -XdB, for X just below max_volume. For example, if max_volume is -7dB and histogram_7dB is 19, 'vol‐ ume=7' will not cause clipping and 'volume=8' will cause clipping on exactly 19 samples. VIDEO FILTERS Video filters allow you to modify the video stream and its properties. The syntax is: -vf <filter1[=parameter1:parameter2:...],filter2,...> Setup a chain of video filters. Many parameters are optional and set to default values if omitted. To explicitly use a default value set a parameter to '-1'. Parameters w:h means width x height in pixels, x:y means x;y position counted from the upper left corner of the bigger image. NOTE: To get a full list of available video filters, see -vf help. Video filters are managed in lists. There are a few commands to manage the filter list. -vf-add <filter1[,filter2,...]> Appends the filters given as arguments to the filter list. -vf-pre <filter1[,filter2,...]> Prepends the filters given as arguments to the filter list. -vf-del <index1[,index2,...]> Deletes the filters at the given indexes. Index numbers start at 0, negative numbers address the end of the list (-1 is the last). -vf-clr Completely empties the filter list. With filters that support it, you can access parameters by their name. -vf <filter>=help Prints the parameter names and parameter value ranges for a par‐ ticular filter. -vf <filter=named_parameter1=value1[:named_parameter2=value2:...]> Sets a named parameter to the given value. Use on and off or yes and no to set flag parameters. Available filters are: crop[=w:h:x:y] Crops the given part of the image and discards the rest. Useful to remove black bands from widescreen movies. <w>,<h> Cropped width and height, defaults to original width and height. <x>,<y> Position of the cropped picture, defaults to center. cropdetect[=limit:round[:reset]] Calculates necessary cropping parameters and prints the recommend‐ ed parameters to stdout. <limit> Threshold, which can be optionally specified from nothing (0) to everything (255) (default: 24). <round> Value which the width/height should be divisible by (de‐ fault: 16). The offset is automatically adjusted to cen‐ ter the video. Use 2 to get only even dimensions (needed for 4:2:2 video). 16 is best when encoding to most video codecs. <reset> Counter that determines after how many frames cropdetect will reset the previously detected largest video area and start over to detect the current optimal crop area (de‐ fault: 0). This can be useful when channel logos distort the video area. 0 indicates never reset and return the largest area encountered during playback. rectangle[=w:h:x:y] Draws a rectangle of the requested width and height at the speci‐ fied coordinates over the image and prints current rectangle pa‐ rameters to the console. This can be used to find optimal crop‐ ping parameters. If you bind the input.conf directive 'change_rectangle' to keystrokes, you can move and resize the rec‐ tangle on the fly. <w>,<h> width and height (default: -1, maximum possible width where boundaries are still visible.) <x>,<y> top left corner position (default: -1, uppermost leftmost) expand[=w:h:x:y:o:a:r] Expands (not scales) movie resolution to the given value and places the unscaled original at coordinates x, y. Can be used for placing subtitles/OSD in the resulting black bands. <w>,<h> Expanded width,height (default: original width,height). Negative values for w and h are treated as offsets to the original size. EXAMPLE: expand=0:-50:0:0 Adds a 50 pixel border to the bottom of the picture. <x>,<y> position of original image on the expanded image (default: center) <o> OSD/subtitle rendering 0: disable (default) 1: enable <a> Expands to fit an aspect instead of a resolution (default: 0). EXAMPLE: expand=800:::::4/3 Expands to 800x600, unless the source is high‐ er resolution, in which case it expands to fill a 4/3 aspect. <r> Rounds up to make both width and height divisible by <r> (default: 1). flip (also see -flip) Flips the image upside down. mirror Mirrors the image on the Y axis. rotate[=<0-7>] Rotates the image by 90 degrees and optionally flips it. For val‐ ues between 4-7 rotation is only done if the movie geometry is portrait and not landscape. 0 Rotate by 90 degrees clockwise and flip (default). 1 Rotate by 90 degrees clockwise. 2 Rotate by 90 degrees counterclockwise. 3 Rotate by 90 degrees counterclockwise and flip. scale[=w:h[:interlaced[:chr_drop[:par[:par2[:presize[:noup[:arnd]]]]]]]] Scales the image with the software scaler (slow) and performs a YUV<->RGB colorspace conversion (also see -sws). <w>,<h> scaled width/height (default: original width/height) NOTE: If -zoom is used, and underlying filters (including libvo) are incapable of scaling, it defaults to d_width/ d_height! 0: scaled d_width/d_height -1: original width/height -2: Calculate w/h using the other dimension and the prescaled aspect ratio. -3: Calculate w/h using the other dimension and the original aspect ratio. -(n+8): Like -n above, but rounding the dimension to the closest multiple of 16. <interlaced> Toggle interlaced scaling. 0: off (default) 1: on <chr_drop> chroma skipping 0: Use all available input lines for chroma. 1: Use only every 2. input line for chroma. 2: Use only every 4. input line for chroma. 3: Use only every 8. input line for chroma. <par>[:<par2>] (also see -sws) Set some scaling parameters depending on the type of scaler selected with -sws. -sws 2 (bicubic): B (blurring) and C (ringing) 0.00:0.60 default 0.00:0.75 VirtualDub's "precise bicubic" 0.00:0.50 Catmull-Rom spline 0.33:0.33 Mitchell-Netravali spline 1.00:0.00 cubic B-spline -sws 7 (gaussian): sharpness (0 (soft) - 100 (sharp)) -sws 9 (lanczos): filter length (1-10) <presize> Scale to preset sizes. qntsc: 352x240 (NTSC quarter screen) qpal: 352x288 (PAL quarter screen) ntsc: 720x480 (standard NTSC) pal: 720x576 (standard PAL) sntsc: 640x480 (square pixel NTSC) spal: 768x576 (square pixel PAL) <noup> Disallow upscaling past the original dimensions. 0: Allow upscaling (default). 1: Disallow upscaling if one dimension exceeds its original value. 2: Disallow upscaling if both dimensions exceed their original values. <arnd> Accurate rounding for the vertical scaler, which may be faster or slower than the default rounding. 0: Disable accurate rounding (default). 1: Enable accurate rounding. dsize[=aspect|w:h:aspect-method:r] Changes the intended display size/aspect at an arbitrary point in the filter chain. Aspect can be given as a fraction (4/3) or floating point number (1.33). Alternatively, you may specify the exact display width and height desired. Note that this filter does not do any scaling itself; it just affects what later scalers (software or hardware) will do when auto-scaling to correct as‐ pect. <w>,<h> New display width and height. Can also be these special values: 0: original display width and height -1: original video width and height (default) -2: Calculate w/h using the other dimension and the original display aspect ratio. -3: Calculate w/h using the other dimension and the original video aspect ratio. EXAMPLE: dsize=800:-2 Specifies a display resolution of 800x600 for a 4/3 aspect video, or 800x450 for a 16/9 as‐ pect video. <aspect-method> Modifies width and height according to original aspect ra‐ tios. -1: Ignore original aspect ratio (default). 0: Keep display aspect ratio by using <w> and <h> as maximum resolution. 1: Keep display aspect ratio by using <w> and <h> as minimum resolution. 2: Keep video aspect ratio by using <w> and <h> as maximum resolution. 3: Keep video aspect ratio by using <w> and <h> as minimum resolution. EXAMPLE: dsize=800:600:0 Specifies a display resolution of at most 800x600, or smaller, in order to keep aspect. <r> Rounds up to make both width and height divisible by <r> (default: 1). yvu9 Forces software YVU9 to YV12 colorspace conversion. Deprecated in favor of the software scaler. yuvcsp Clamps YUV color values to the CCIR 601 range without doing real conversion. palette RGB/BGR 8 -> 15/16/24/32bpp colorspace conversion using palette. format[=fourcc[:outfourcc]] Restricts the colorspace for the next filter without doing any conversion.  NOTE: For a list of available formats see format=fmt=help. <fourcc> format name like rgb15, bgr24, yv12, etc (default: yuy2) <outfourcc> Format name that should be substituted for the output. If this is not 100% compatible with the <fourcc> value it will crash. Valid examples: format=rgb24:bgr24 format=yuyv:yuy2 Invalid examples (will crash): format=rgb24:yv12 noformat[=fourcc] Restricts the colorspace for the next filter without doing any conversion. Unlike the format filter, this will allow any col‐ orspace except the one you specify. NOTE: For a list of available formats see noformat=fmt=help. <fourcc> format name like rgb15, bgr24, yv12, etc (default: yv12) pp[=filter1[:option1[:option2...]]/[-]filter2...] (also see -pphelp) Enables the specified chain of postprocessing subfilters. Subfil‐ ters must be separated by '/' and can be disabled by prepending a '-'. Each subfilter and some options have a short and a long name that can be used interchangeably, i.e. dr/dering are the same. All subfilters share common options to determine their scope: a/autoq Automatically switch the subfilter off if the CPU is too slow. c/chrom Do chrominance filtering, too (default). y/nochrom Do luminance filtering only (no chrominance). n/noluma Do chrominance filtering only (no luminance). NOTE: -pphelp shows a list of available subfilters. Available subfilters are hb/hdeblock[:difference[:flatness]] horizontal deblocking filter <difference>: Difference factor where higher values mean more deblocking (default: 32). <flatness>: Flatness threshold where lower values mean more deblocking (default: 39). vb/vdeblock[:difference[:flatness]] vertical deblocking filter <difference>: Difference factor where higher values mean more deblocking (default: 32). <flatness>: Flatness threshold where lower values mean more deblocking (default: 39). ha/hadeblock[:difference[:flatness]] accurate horizontal deblocking filter <difference>: Difference factor where higher values mean more deblocking (default: 32). <flatness>: Flatness threshold where lower values mean more deblocking (default: 39). va/vadeblock[:difference[:flatness]] accurate vertical deblocking filter <difference>: Difference factor where higher values mean more deblocking (default: 32). <flatness>: Flatness threshold where lower values mean more deblocking (default: 39). The horizontal and vertical deblocking filters share the dif‐ ference and flatness values so you cannot set different hori‐ zontal and vertical thresholds. h1/x1hdeblock experimental horizontal deblocking filter v1/x1vdeblock experimental vertical deblocking filter dr/dering deringing filter tn/tmpnoise[:threshold1[:threshold2[:threshold3]]] temporal noise reducer <threshold1>: larger -> stronger filtering <threshold2>: larger -> stronger filtering <threshold3>: larger -> stronger filtering al/autolevels[:f/fullyrange] automatic brightness / contrast correction f/fullyrange: Stretch luminance to (0-255). lb/linblenddeint Linear blend deinterlacing filter that deinterlaces the given block by filtering all lines with a (1 2 1) filter. li/linipoldeint Linear interpolating deinterlacing filter that deinter‐ laces the given block by linearly interpolating every sec‐ ond line. ci/cubicipoldeint Cubic interpolating deinterlacing filter deinterlaces the given block by cubically interpolating every second line. md/mediandeint Median deinterlacing filter that deinterlaces the given block by applying a median filter to every second line. fd/ffmpegdeint FFmpeg deinterlacing filter that deinterlaces the given block by filtering every second line with a (-1 4 2 4 -1) filter. l5/lowpass5 Vertically applied FIR lowpass deinterlacing filter that deinterlaces the given block by filtering all lines with a (-1 2 6 2 -1) filter. fq/forceQuant[:quantizer] Overrides the quantizer table from the input with the con‐ stant quantizer you specify. <quantizer>: quantizer to use de/default default pp filter combination (hb:a,vb:a,dr:a) fa/fast fast pp filter combination (h1:a,v1:a,dr:a) ac high quality pp filter combination (ha:a:128:7,va:a,dr:a) EXAMPLE: -vf pp=hb/vb/dr/al horizontal and vertical deblocking, deringing and automat‐ ic brightness/contrast -vf pp=de/-al default filters without brightness/contrast correction -vf pp=default/tmpnoise:1:2:3 Enable default filters & temporal denoiser. -vf pp=hb:y/vb:a Horizontal deblocking on luminance only, and switch verti‐ cal deblocking on or off automatically depending on avail‐ able CPU time. spp[=quality[:qp[:mode]]] Simple postprocessing filter that compresses and decompresses the image at several (or - in the case of quality level 6 - all) shifts and averages the results. <quality> 0-6 (default: 3) <qp> Force quantization parameter (default: 0, use QP from video). <mode> 0: hard thresholding (default) 1: soft thresholding (better deringing, but blurrier) 4: like 0, but also use B-frames' QP (may cause flicker) 5: like 1, but also use B-frames' QP (may cause flicker) uspp[=quality[:qp]] Ultra simple & slow postprocessing filter that compresses and de‐ compresses the image at several (or - in the case of quality level 8 - all) shifts and averages the results. The way this differs from the behavior of spp is that uspp actually encodes & decodes each case with libavcodec Snow, whereas spp uses a simplified in‐ tra only 8x8 DCT similar to MJPEG. <quality> 0-8 (default: 3) <qp> Force quantization parameter (default: 0, use QP from video). fspp[=quality[:qp[:strength[:bframes]]]] faster version of the simple postprocessing filter <quality> 4-5 (equivalent to spp; default: 4) <qp> Force quantization parameter (default: 0, use QP from video). <-15-32> Filter strength, lower values mean more details but also more artifacts, while higher values make the image smoother but also blurrier (default: 0 - PSNR optimal). <bframes> 0: do not use QP from B-frames (default) 1: use QP from B-frames too (may cause flicker) pp7[=qp[:mode]] Variant of the spp filter, similar to spp=6 with 7 point DCT where only the center sample is used after IDCT. <qp> Force quantization parameter (default: 0, use QP from video). <mode> 0: hard thresholding 1: soft thresholding (better deringing, but blurrier) 2: medium thresholding (default, good results) qp=equation quantization parameter (QP) change filter <equation> some equation like "2+2*sin(PI*qp)" geq=equation generic equation change filter <equation> Some equation, e.g. 'p(W-X\,Y)' to flip the image hori‐ zontally. You can use whitespace to make the equation more readable. There are a couple of constants that can be used in the equation: PI: the number pi E: the number e X / Y: the coordinates of the current sample W / H: width and height of the image SW / SH: width/height scale depending on the currently filtered plane, e.g. 1,1 and 0.5,0.5 for YUV 4:2:0. p(x,y): returns the value of the pixel at location x/y of the current plane. test Generate various test patterns. rgbtest[=width:height] Generate an RGB test pattern useful for detecting RGB vs BGR is‐ sues. You should see a red, green and blue stripe from top to bottom. <width> Desired width of generated image (default: 0). 0 means width of input image. <height> Desired height of generated image (default: 0). 0 means height of input image. lavc[=quality:fps] Fast software YV12 to MPEG-1 conversion with libavcodec for use with DVB/DXR3/IVTV/V4L2. <quality> 1-31: fixed qscale 32-: fixed bitrate in kbits <fps> force output fps (float value) (default: 0, autodetect based on height) dvbscale[=aspect] Set up optimal scaling for DVB cards, scaling the x axis in hard‐ ware and calculating the y axis scaling in software to keep as‐ pect. Only useful together with expand and scale. <aspect> Control aspect ratio, calculate as DVB_HEIGHT*ASPECTRATIO (default: 576*4/3=768), set it to 576*(16/9)=1024 for a 16:9 TV. EXAMPLE: -vf dvbscale,scale=-1:0,expand=-1:576:-1:-1:1,lavc FIXME: Explain what this does. noise[=luma[u][t|a][h][p]:chroma[u][t|a][h][p]] Adds noise. <0-100> luma noise <0-100> chroma noise u uniform noise (gaussian otherwise) t temporal noise (noise pattern changes between frames) a averaged temporal noise (smoother, but a lot slower) h high quality (slightly better looking, slightly slower) p mix random noise with a (semi)regular pattern denoise3d[=luma_spatial:chroma_spatial:luma_tmp:chroma_tmp] This filter aims to reduce image noise producing smooth images and making still images really still (This should enhance compress‐ ibility.). <luma_spatial> spatial luma strength (default: 4) <chroma_spatial> spatial chroma strength (default: 3) <luma_tmp> luma temporal strength (default: 6) <chroma_tmp> chroma temporal strength (default: luma_tmp*chroma_spa‐ tial/luma_spatial) hqdn3d[=luma_spatial:chroma_spatial:luma_tmp:chroma_tmp] High precision/quality version of the denoise3d filter. Parame‐ ters and usage are the same. ow[=depth[:luma_strength[:chroma_strength]]] Overcomplete Wavelet denoiser. <depth> Larger depth values will denoise lower frequency compo‐ nents more, but slow down filtering (default: 8). <luma_strength> luma strength (default: 1.0) <chroma_strength> chroma strength (default: 1.0) eq[=brightness:contrast] (OBSOLETE) Software equalizer with interactive controls just like the hard‐ ware equalizer, for cards/drivers that do not support brightness and contrast controls in hardware. Might also be useful with MEn‐ coder, either for fixing poorly captured movies, or for slightly reducing contrast to mask artifacts and get by with lower bi‐ trates. <-100-100> initial brightness <-100-100> initial contrast eq2[=gamma:contrast:brightness:saturation:rg:gg:bg:weight] Alternative software equalizer that uses lookup tables (very slow), allowing gamma correction in addition to simple brightness and contrast adjustment. Note that it uses the same MMX optimized code as -vf eq if all gamma values are 1.0. The parameters are given as floating point values. <0.1-10> initial gamma value (default: 1.0) <-2-2> initial contrast, where negative values result in a nega‐ tive image (default: 1.0) <-1-1> initial brightness (default: 0.0) <0-3> initial saturation (default: 1.0) <0.1-10> gamma value for the red component (default: 1.0) <0.1-10> gamma value for the green component (default: 1.0) <0.1-10> gamma value for the blue component (default: 1.0) <0-1> The weight parameter can be used to reduce the effect of a high gamma value on bright image areas, e.g. keep them from getting overamplified and just plain white. A value of 0.0 turns the gamma correction all the way down while 1.0 leaves it at its full strength (default: 1.0). hue[=hue:saturation] Software equalizer with interactive controls just like the hard‐ ware equalizer, for cards/drivers that do not support hue and sat‐ uration controls in hardware. <-180-180> initial hue (default: 0.0) <-100-100> initial saturation, where negative values result in a neg‐ ative chroma (default: 1.0) halfpack[=f] Convert planar YUV 4:2:0 to half-height packed 4:2:2, downsampling luma but keeping all chroma samples. Useful for output to low- resolution display devices when hardware downscaling is poor qual‐ ity or is not available. Can also be used as a primitive luma-on‐ ly deinterlacer with very low CPU usage. <f> By default, halfpack averages pairs of lines when downsam‐ pling. Any value different from 0 or 1 gives the default (averaging) behavior. 0: Only use even lines when downsampling. 1: Only use odd lines when downsampling. ilpack[=mode] When interlaced video is stored in YUV 4:2:0 formats, chroma in‐ terlacing does not line up properly due to vertical downsampling of the chroma channels. This filter packs the planar 4:2:0 data into YUY2 (4:2:2) format with the chroma lines in their proper lo‐ cations, so that in any given scanline, the luma and chroma data both come from the same field. <mode> Select the sampling mode. 0: nearest-neighbor sampling, fast but incorrect 1: linear interpolation (default) harddup Only useful with MEncoder. If harddup is used when encoding, it will force duplicate frames to be encoded in the output. This us‐ es slightly more space, but is necessary for output to MPEG files or if you plan to demux and remux the video stream after encoding. Should be placed at or near the end of the filter chain unless you have a good reason to do otherwise. softskip Only useful with MEncoder. Softskip moves the frame skipping (dropping) step of encoding from before the filter chain to some point during the filter chain. This allows filters which need to see all frames (inverse telecine, temporal denoising, etc.) to function properly. Should be placed after the filters which need to see all frames and before any subsequent filters that are CPU- intensive. decimate[=max:hi:lo:frac] Drops frames that do not differ greatly from the previous frame in order to reduce framerate. The main use of this filter is for very-low-bitrate encoding (e.g. streaming over dialup modem), but it could in theory be used for fixing movies that were inverse- telecined incorrectly. <max> Sets the maximum number of consecutive frames which can be dropped (if positive), or the minimum interval between dropped frames (if negative). <hi>,<lo>,<frac> A frame is a candidate for dropping if no 8x8 region dif‐ fers by more than a threshold of <hi>, and if not more than <frac> portion (1 meaning the whole image) differs by more than a threshold of <lo>. Values of <hi> and <lo> are for 8x8 pixel blocks and represent actual pixel value differences, so a threshold of 64 corresponds to 1 unit of difference for each pixel, or the same spread out differ‐ ently over the block. dint[=sense:level] The drop-deinterlace (dint) filter detects and drops the first from a set of interlaced video frames. <0.0-1.0> relative difference between neighboring pixels (default: 0.1) <0.0-1.0> What part of the image has to be detected as interlaced to drop the frame (default: 0.15). lavcdeint (OBSOLETE) FFmpeg deinterlacing filter, same as -vf pp=fd lavfi=filtergraph FFmpeg libavfilter wrapper. filtergraph defines a whole libavfil‐ ter graph with one input and one output. See http://www.ffm‐ peg.org/libavfilter.html#SEC4 for details. As a special case, if filtergraph is $word then the value of the word environment variable is used; this is necessary if commas are present in the graph description, as mplayer uses them as a delim‐ iter between filters. NOTE: This filter is considered experimental, it may interact strangely with other filters. EXAMPLE: overlay="movie=$small_video, scale=160:120 [ca]; [in] [ca] over‐ lay=16:8" mplayer -vf lavfi='$overlay' $big_video kerndeint[=thresh[:map[:order[:sharp[:twoway]]]]] Donald Graft's adaptive kernel deinterlacer. Deinterlaces parts of a video if a configurable threshold is exceeded. <0-255> threshold (default: 10) <map> 0: Ignore pixels exceeding the threshold (default). 1: Paint pixels exceeding the threshold white. <order> 0: Leave fields alone (default). 1: Swap fields. <sharp> 0: Disable additional sharpening (default). 1: Enable additional sharpening. <twoway> 0: Disable twoway sharpening (default). 1: Enable twoway sharpening. unsharp[=l|cWxH:amount[:l|cWxH:amount]] unsharp mask / gaussian blur l Apply effect on luma component. c Apply effect on chroma components. <width>x<height> width and height of the matrix, odd sized in both direc‐ tions (min = 3x3, max = 13x11 or 11x13, usually something between 3x3 and 7x7) amount Relative amount of sharpness/blur to add to the image (a sane range should be -1.5-1.5). <0: blur >0: sharpen swapuv Swap U & V plane. il[=d|i][s][:[d|i][s]] (De)interleaves lines. The goal of this filter is to add the ability to process interlaced images pre-field without deinterlac‐ ing them. You can filter your interlaced DVD and play it on a TV without breaking the interlacing. While deinterlacing (with the postprocessing filter) removes interlacing permanently (by smooth‐ ing, averaging, etc) deinterleaving splits the frame into 2 fields (so called half pictures), so you can process (filter) them inde‐ pendently and then re-interleave them. d deinterleave (placing one above the other) i interleave s swap fields (exchange even & odd lines) fil[=i|d] (De)interleaves lines. This filter is very similar to the il fil‐ ter but much faster, the main disadvantage is that it does not al‐ ways work. Especially if combined with other filters it may pro‐ duce randomly messed up images, so be happy if it works but do not complain if it does not for your combination of filters. d Deinterleave fields, placing them side by side. i Interleave fields again (reversing the effect of fil=d). field[=n] Extracts a single field from an interlaced image using stride arithmetic to avoid wasting CPU time. The optional argument n specifies whether to extract the even or the odd field (depending on whether n is even or odd). detc[=var1=value1:var2=value2:...] Attempts to reverse the 'telecine' process to recover a clean, non-interlaced stream at film framerate. This was the first and most primitive inverse telecine filter to be added to MPlayer/MEn‐ coder. It works by latching onto the telecine 3:2 pattern and following it as long as possible. This makes it suitable for per‐ fectly-telecined material, even in the presence of a fair degree of noise, but it will fail in the presence of complex post- telecine edits. Development on this filter is no longer taking place, as ivtc, pullup, and filmdint are better for most applica‐ tions. The following arguments (see syntax above) may be used to control detc's behavior: <dr> Set the frame dropping mode. 0: Do not drop frames to maintain fixed output framer‐ ate (default). 1: Always drop a frame when there have been no drops or telecine merges in the past 5 frames. 2: Always maintain exact 5:4 input to output frame ra‐ tio. NOTE: Use mode 1 or 2 with MEncoder. <am> Analysis mode. 0: Fixed pattern with initial frame number specified by <fr>. 1: aggressive search for telecine pattern (default) <fr> Set initial frame number in sequence. 0-2 are the three clean progressive frames; 3 and 4 are the two interlaced frames. The default, -1, means 'not in telecine se‐ quence'. The number specified here is the type for the imaginary previous frame before the movie starts. <t0>, <t1>, <t2>, <t3> Threshold values to be used in certain modes. ivtc[=1] Experimental 'stateless' inverse telecine filter. Rather than trying to lock on to a pattern like the detc filter does, ivtc makes its decisions independently for each frame. This will give much better results for material that has undergone heavy editing after telecine was applied, but as a result it is not as forgiving of noisy input, for example TV capture. The optional parameter (ivtc=1) corresponds to the dr=1 option for the detc filter, and should be used with MEncoder but not with MPlayer. As with detc, you must specify the correct output framerate (-ofps 24000/1001) when using MEncoder. Further development on ivtc has stopped, as the pullup and filmdint filters appear to be much more accurate. pullup[=jl:jr:jt:jb:sb:mp] Third-generation pulldown reversal (inverse telecine) filter, ca‐ pable of handling mixed hard-telecine, 24000/1001 fps progressive, and 30000/1001 fps progressive content. The pullup filter is de‐ signed to be much more robust than detc or ivtc, by taking advan‐ tage of future context in making its decisions. Like ivtc, pullup is stateless in the sense that it does not lock onto a pattern to follow, but it instead looks forward to the following fields in order to identify matches and rebuild progressive frames. It is still under development, but believed to be quite accurate. jl, jr, jt, and jb These options set the amount of "junk" to ignore at the left, right, top, and bottom of the image, respectively. Left/right are in units of 8 pixels, while top/bottom are in units of 2 lines. The default is 8 pixels on each side. sb (strict breaks) Setting this option to 1 will reduce the chances of pullup generating an occasional mismatched frame, but it may also cause an excessive number of frames to be dropped during high motion sequences. Conversely, setting it to -1 will make pullup match fields more easily. This may help pro‐ cessing of video where there is slight blurring between the fields, but may also cause there to be interlaced frames in the output. mp (metric plane) This option may be set to 1 or 2 to use a chroma plane in‐ stead of the luma plane for doing pullup's computations. This may improve accuracy on very clean source material, but more likely will decrease accuracy, especially if there is chroma noise (rainbow effect) or any grayscale video. The main purpose of setting mp to a chroma plane is to reduce CPU load and make pullup usable in realtime on slow machines. NOTE: Always follow pullup with the softskip filter when encoding to ensure that pullup is able to see each frame. Failure to do so will lead to incorrect output and will usually crash, due to de‐ sign limitations in the codec/filter layer. filmdint[=options] Inverse telecine filter, similar to the pullup filter above. It is designed to handle any pulldown pattern, including mixed soft and hard telecine and limited support for movies that are slowed down or sped up from their original framerate for TV. Only the luma plane is used to find the frame breaks. If a field has no match, it is deinterlaced with simple linear approximation. If the source is MPEG-2, this must be the first filter to allow ac‐ cess to the field-flags set by the MPEG-2 decoder. Depending on the source MPEG, you may be fine ignoring this advice, as long as you do not see lots of "Bottom-first field" warnings. With no op‐ tions it does normal inverse telecine, and should be used together with mencoder -fps 30000/1001 -ofps 24000/1001. When this filter is used with MPlayer, it will result in an uneven framerate during playback, but it is still generally better than using pp=lb or no deinterlacing at all. Multiple options can be specified separated by /. crop=<w>:<h>:<x>:<y> Just like the crop filter, but faster, and works on mixed hard and soft telecined content as well as when y is not a multiple of 4. If x or y would require cropping fraction‐ al pixels from the chroma planes, the crop area is extend‐ ed. This usually means that x and y must be even. io=<ifps>:<ofps> For each ifps input frames the filter will output ofps frames. The ratio of ifps/ofps should match the -fps/-of‐ ps ratio. This could be used to filter movies that are broadcast on TV at a frame rate different from their orig‐ inal framerate. luma_only=<n> If n is nonzero, the chroma plane is copied unchanged. This is useful for YV12 sampled TV, which discards one of the chroma fields. mmx2=<n> On x86, if n=1, use MMX2 optimized functions, if n=2, use 3DNow! optimized functions, otherwise, use plain C. If this option is not specified, MMX2 and 3DNow! are auto-de‐ tected, use this option to override auto-detection. fast=<n> The larger n will speed up the filter at the expense of accuracy. The default value is n=3. If n is odd, a frame immediately following a frame marked with the RE‐ PEAT_FIRST_FIELD MPEG flag is assumed to be progressive, thus filter will not spend any time on soft-telecined MPEG-2 content. This is the only effect of this flag if MMX2 or 3DNow! is available. Without MMX2 and 3DNow, if n=0 or 1, the same calculations will be used as with n=2 or 3. If n=2 or 3, the number of luma levels used to find the frame breaks is reduced from 256 to 128, which results in a faster filter without losing much accuracy. If n=4 or 5, a faster, but much less accurate metric will be used to find the frame breaks, which is more likely to misde‐ tect high vertical detail as interlaced content. verbose=<n> If n is nonzero, print the detailed metrics for each frame. Useful for debugging. dint_thres=<n> Deinterlace threshold. Used during de-interlacing of un‐ matched frames. Larger value means less deinterlacing, use n=256 to completely turn off deinterlacing. Default is n=8. comb_thres=<n> Threshold for comparing a top and bottom fields. Defaults to 128. diff_thres=<n> Threshold to detect temporal change of a field. Default is 128. sad_thres=<n> Sum of Absolute Difference threshold, default is 64. softpulldown This filter works only correct with MEncoder and acts on the MPEG-2 flags used for soft 3:2 pulldown (soft telecine). If you want to use the ivtc or detc filter on movies that are partly soft telecined, inserting this filter before them should make them more reliable. divtc[=options] Inverse telecine for deinterlaced video. If 3:2-pulldown telecined video has lost one of the fields or is deinterlaced us‐ ing a method that keeps one field and interpolates the other, the result is a juddering video that has every fourth frame duplicat‐ ed. This filter is intended to find and drop those duplicates and restore the original film framerate. When using this filter, you must specify -ofps that is 4/5 of the fps of the input file and place the softskip later in the filter chain to make sure that di‐ vtc sees all the frames. Two different modes are available: One pass mode is the default and is straightforward to use, but has the disadvantage that any changes in the telecine phase (lost frames or bad edits) cause momentary judder until the filter can resync again. Two pass mode avoids this by analyzing the whole video beforehand so it will have forward knowledge about the phase changes and can resync at the exact spot. These passes do not correspond to pass one and two of the encoding process. You must run an extra pass using divtc pass one before the actual encoding throwing the resulting video away. Use -nosound -ovc raw -o /dev/null to avoid wasting CPU power for this pass. You may add something like crop=2:2:0:0 after divtc to speed things up even more. Then use divtc pass two for the actual encoding. If you use multiple encoder passes, use divtc pass two for all of them. The options are: pass=1|2 Use two pass mode. file=<filename> Set the two pass log filename (default: "framediff.log"). threshold=<value> Set the minimum strength the telecine pattern must have for the filter to believe in it (default: 0.5). This is used to avoid recognizing false pattern from the parts of the video that are very dark or very still. window=<numframes> Set the number of past frames to look at when searching for pattern (default: 30). Longer window improves the re‐ liability of the pattern search, but shorter window im‐ proves the reaction time to the changes in the telecine phase. This only affects the one pass mode. The two pass mode currently uses fixed window that extends to both fu‐ ture and past. phase=0|1|2|3|4 Sets the initial telecine phase for one pass mode (de‐ fault: 0). The two pass mode can see the future, so it is able to use the correct phase from the beginning, but one pass mode can only guess. It catches the correct phase when it finds it, but this option can be used to fix the possible juddering at the beginning. The first pass of the two pass mode also uses this, so if you save the out‐ put from the first pass, you get constant phase result. deghost=<value> Set the deghosting threshold (0-255 for one pass mode, -255-255 for two pass mode, default 0). If nonzero, deghosting mode is used. This is for video that has been deinterlaced by blending the fields together instead of dropping one of the fields. Deghosting amplifies any com‐ pression artifacts in the blended frames, so the parameter value is used as a threshold to exclude those pixels from deghosting that differ from the previous frame less than specified value. If two pass mode is used, then negative value can be used to make the filter analyze the whole video in the beginning of pass-2 to determine whether it needs deghosting or not and then select either zero or the absolute value of the parameter. Specify this option for pass-2, it makes no difference on pass-1. phase[=t|b|p|a|u|T|B|A|U][:v] Delay interlaced video by one field time so that the field order changes. The intended use is to fix PAL movies that have been captured with the opposite field order to the film-to-video trans‐ fer. The options are: t Capture field order top-first, transfer bottom-first. Filter will delay the bottom field. b Capture bottom-first, transfer top-first. Filter will de‐ lay the top field. p Capture and transfer with the same field order. This mode only exists for the documentation of the other options to refer to, but if you actually select it, the filter will faithfully do nothing ;-) a Capture field order determined automatically by field flags, transfer opposite. Filter selects among t and b modes on a frame by frame basis using field flags. If no field information is available, then this works just like u. u Capture unknown or varying, transfer opposite. Filter se‐ lects among t and b on a frame by frame basis by analyzing the images and selecting the alternative that produces best match between the fields. T Capture top-first, transfer unknown or varying. Filter selects among t and p using image analysis. B Capture bottom-first, transfer unknown or varying. Filter selects among b and p using image analysis. A Capture determined by field flags, transfer unknown or varying. Filter selects among t, b and p using field flags and image analysis. If no field information is available, then this works just like U. This is the de‐ fault mode. U Both capture and transfer unknown or varying. Filter se‐ lects among t, b and p using image analysis only. v Verbose operation. Prints the selected mode for each frame and the average squared difference between fields for t, b, and p alternatives. telecine[=start] Apply 3:2 'telecine' process to increase framerate by 20%. This most likely will not work correctly with MPlayer, but it can be used with 'mencoder -fps 30000/1001 -ofps 30000/1001 -vf telecine'. Both fps options are essential! (A/V sync will break if they are wrong.) The optional start parameter tells the filter where in the telecine pattern to start (0-3). tinterlace[=mode] Temporal field interlacing - merge pairs of frames into an inter‐ laced frame, halving the framerate. Even frames are moved into the upper field, odd frames to the lower field. This can be used to fully reverse the effect of the tfields filter (in mode 0). Available modes are: 0 Move odd frames into the upper field, even into the lower field, generating a full-height frame at half framerate. 1 Only output odd frames, even frames are dropped; height unchanged. 2 Only output even frames, odd frames are dropped; height unchanged. 3 Expand each frame to full height, but pad alternate lines with black; framerate unchanged. 4 Interleave even lines from even frames with odd lines from odd frames. Height unchanged at half framerate. tfields[=mode[:field_dominance]] Temporal field separation - split fields into frames, doubling the output framerate. Like the telecine filter, tfields might not work completely right unless used with MEncoder and both -fps and -ofps set to the desired (double) framerate! <mode> 0: Leave fields unchanged (will jump/flicker). 1: Interpolate missing lines. (The algorithm used might not be so good.) 2: Translate fields by 1/4 pixel with linear interpolation (no jump). 4: Translate fields by 1/4 pixel with 4tap filter (higher quality) (default). <field_dominance> (DEPRECATED) -1: auto (default) Only works if the decoder exports the appropriate information and no other filters which discard that information come before tfields in the filter chain, otherwise it falls back to 0 (top field first). 0: top field first 1: bottom field first NOTE: This option will possibly be removed in a future version. Use -field-dominance instead. yadif=[mode[:field_dominance]] Yet another deinterlacing filter <mode> 0: Output 1 frame for each frame. 1: Output 1 frame for each field. 2: Like 0 but skips spatial interlacing check. 3: Like 1 but skips spatial interlacing check. <field_dominance> (DEPRECATED) Operates like tfields. NOTE: This option will possibly be removed in a future version. Use -field-dominance instead. mcdeint=[mode[:parity[:qp]]] Motion compensating deinterlacer. It needs one field per frame as input and must thus be used together with tfields=1 or yadif=1/3 or equivalent. <mode> 0: fast 1: medium 2: slow, iterative motion estimation 3: extra slow, like 2 plus multiple reference frames <parity> 0 or 1 selects which field to use (note: no autodetection yet!). <qp> Higher values should result in a smoother motion vector field but less optimal individual vectors. boxblur=radius:power[:radius:power] box blur <radius> blur filter strength <power> number of filter applications sab=radius:pf:colorDiff[:radius:pf:colorDiff] shape adaptive blur <radius> blur filter strength (~0.1-4.0) (slower if larger) <pf> prefilter strength (~0.1-2.0) <colorDiff> maximum difference between pixels to still be considered (~0.1-100.0) smartblur=radius:strength:threshold[:radius:strength:threshold] smart blur <radius> blur filter strength (~0.1-5.0) (slower if larger) <strength> blur (0.0-1.0) or sharpen (-1.0-0.0) <threshold> filter all (0), filter flat areas (0-30) or filter edges (-30-0) perspective=x0:y0:x1:y1:x2:y2:x3:y3:t Correct the perspective of movies not filmed perpendicular to the screen. <x0>,<y0>,... coordinates of the top left, top right, bottom left, bot‐ tom right corners <t> linear (0) or cubic resampling (1) 2xsai Scale and smooth the image with the 2x scale and interpolate algo‐ rithm. 1bpp 1bpp bitmap to YUV/BGR 8/15/16/32 conversion down3dright[=lines] Reposition and resize stereoscopic images. Extracts both stereo fields and places them side by side, resizing them to maintain the original movie aspect. <lines> number of lines to select from the middle of the image (default: 12) bmovl=hidden:opaque:fifo The bitmap overlay filter reads bitmaps from a FIFO and displays them on top of the movie, allowing some transformations on the im‐ age. Also see TOOLS/bmovl-test.c for a small bmovl test program. <hidden> Set the default value of the 'hidden' flag (0=visible, 1=hidden). <opaque> Set the default value of the 'opaque' flag (0=transparent, 1=opaque). <fifo> path/filename for the FIFO (named pipe connecting 'mplayer -vf bmovl' to the controlling application) FIFO commands are: RGBA32 width height xpos ypos alpha clear followed by width*height*4 Bytes of raw RGBA32 data. ABGR32 width height xpos ypos alpha clear followed by width*height*4 Bytes of raw ABGR32 data. RGB24 width height xpos ypos alpha clear followed by width*height*3 Bytes of raw RGB24 data. BGR24 width height xpos ypos alpha clear followed by width*height*3 Bytes of raw BGR24 data. ALPHA width height xpos ypos alpha Change alpha transparency of the specified area. CLEAR width height xpos ypos Clear area. OPAQUE Disable all alpha transparency. Send "ALPHA 0 0 0 0 0" to enable it again. HIDE Hide bitmap. SHOW Show bitmap. Arguments are: <width>, <height> image/area size <xpos>, <ypos> Start blitting at position x/y. <alpha> Set alpha difference. If you set this to -255 you can then send a sequence of ALPHA-commands to set the area to -225, -200, -175 etc for a nice fade-in-effect! ;) 0: same as original 255: Make everything opaque. -255: Make everything transparent. <clear> Clear the framebuffer before blitting. 0: The image will just be blitted on top of the old one, so you do not need to send 1.8MB of RGBA32 data every time a small part of the screen is updated. 1: clear framestep=I|[i]step Renders only every nth frame or every intra frame (keyframe). If you call the filter with I (uppercase) as the parameter, then only keyframes are rendered. For DVDs it generally means one in every 15/12 frames (IBBPBBPBBPBBPBB), for AVI it means every scene change or every keyint value (see -lavcopts keyint= value if you use MEncoder to encode the video). When a keyframe is found, an 'I!' string followed by a newline character is printed, leaving the current line of MPlayer/MEncoder output on the screen, because it contains the time (in seconds) and frame number of the keyframe (You can use this information to split the AVI.). If you call the filter with a numeric parameter 'step' then only one in every 'step' frames is rendered. If you put an 'i' (lowercase) before the number then an 'I!' is printed (like the I parameter). If you give only the i then nothing is done to the frames, only I! is printed. tile=xtiles:ytiles:output:start:delta Tile a series of images into a single, bigger image. If you omit a parameter or use a value less than 0, then the default value is used. You can also stop when you are satisfied (... -vf tile=10:5 ...). It is probably a good idea to put the scale filter before the tile :-) The parameters are: <xtiles> number of tiles on the x axis (default: 5) <ytiles> number of tiles on the y axis (default: 5) <output> Render the tile when 'output' number of frames are reached, where 'output' should be a number less than xtile * ytile. Missing tiles are left blank. You could, for example, write an 8 * 7 tile every 50 frames to have one image every 2 seconds @ 25 fps. <start> outer border thickness in pixels (default: 2) <delta> inner border thickness in pixels (default: 4) delogo[=x:y:w:h:t] Suppresses a TV station logo by a simple interpolation of the sur‐ rounding pixels. Just set a rectangle covering the logo and watch it disappear (and sometimes something even uglier appear - your mileage may vary). <x>,<y> top left corner of the logo <w>,<h> width and height of the cleared rectangle <t> Thickness of the fuzzy edge of the rectangle (added to w and h). When set to -1, a green rectangle is drawn on the screen to simplify finding the right x,y,w,h parameters. file=<file> You can specify a text file to load the coordinates from. Each line must have a timestamp (in seconds, and in as‐ cending order) and the "x:y:w:h:t" coordinates (t can be omitted). remove-logo=/path/to/logo_bitmap_file_name.pgm Suppresses a TV station logo, using a PGM or PPM image file to de‐ termine which pixels comprise the logo. The width and height of the image file must match those of the video stream being pro‐ cessed. Uses the filter image and a circular blur algorithm to remove the logo. /path/to/logo_bitmap_file_name.pgm [path] + filename of the filter image. zrmjpeg[=options] Software YV12 to MJPEG encoder for use with the zr2 video output device. maxheight=<h>|maxwidth=<w> These options set the maximum width and height the zr card can handle (the MPlayer filter layer currently cannot query those). {dc10+,dc10,buz,lml33}-{PAL|NTSC} Use these options to set maxwidth and maxheight automati‐ cally to the values known for card/mode combo. For exam‐ ple, valid options are: dc10-PAL and buz-NTSC (default: dc10+PAL) color|bw Select color or black and white encoding. Black and white encoding is faster. Color is the default. hdec={1,2,4} Horizontal decimation 1, 2 or 4. vdec={1,2,4} Vertical decimation 1, 2 or 4. quality=1-20 Set JPEG compression quality [BEST] 1 - 20 [VERY BAD]. fd|nofd By default, decimation is only performed if the Zoran hardware can upscale the resulting MJPEG images to the original size. The option fd instructs the filter to al‐ ways perform the requested decimation (ugly). screenshot Allows acquiring screenshots of the movie using slave mode com‐ mands that can be bound to keypresses. See the slave mode docu‐ mentation and the INTERACTIVE CONTROL section for details. Files named 'shotNNNN.png' will be saved in the working directory, using the first available number - no files will be overwritten. The filter has no overhead when not used and accepts an arbitrary col‐ orspace, so it is safe to add it to the configuration file. Make sure that the screenshot filter is added after all other filters whose effect you want to record on the saved image.  Only useful with the -ass option. EXAMPLE: -vf ass,screenshot Moves SSA/ASS rendering before the screenshot filter. Screenshots taken this way will contain subtitles. blackframe[=amount:threshold] Detect frames that are (almost) completely black. Can be useful to detect chapter transitions or commercials. Output lines con‐ sist of the frame number of the detected frame, the percentage of blackness, the frame type and the frame number of the last encoun‐ tered keyframe. <amount> Percentage of the pixels that have to be below the thresh‐ old (default: 98). <threshold> Threshold below which a pixel value is considered black (default: 32). stereo3d[=in:out] Stereo3d converts between different stereoscopic image formats. <in> Stereoscopic image format of input. Possible values: sbsl or side_by_side_left_first side by side parallel (left eye left, right eye right) sbsr or side_by_side_right_first side by side crosseye (right eye left, left eye right) sbs2l or side_by_side_half_width_left_first side by side with half width resolution (left eye left, right eye right) sbs2r or side_by_side_half_width_right_first side by side with half width resolution (right eye left, left eye right) abl or above_below_left_first above-below (left eye above, right eye below) abl or above_below_right_first above-below (right eye above, left eye below) ab2l or above_below_half_height_left_first above-below with half height resolution (left eye above, right eye below) ab2r or above_below_half_height_right_first above-below with half height resolution (right eye above, left eye below) <out> Stereoscopic image format of output. Possible values are all the input formats as well as: arcg or anaglyph_red_cyan_gray anaglyph red/cyan gray (red filter on left eye, cyan filter on right eye) arch or anaglyph_red_cyan_half_color anaglyph red/cyan half colored (red filter on left eye, cyan filter on right eye) arcc or anaglyph_red_cyan_color anaglyph red/cyan color (red filter on left eye, cyan filter on right eye) arcd or anaglyph_red_cyan_dubois anaglyph red/cyan color optimized with the least squares projection of dubois (red filter on left eye, cyan filter on right eye) agmg or anaglyph_green_magenta_gray anaglyph green/magenta gray (green filter on left eye, magenta filter on right eye) agmh or anaglyph_green_magenta_half_color anaglyph green/magenta half colored (green filter on left eye, magenta filter on right eye) agmc or anaglyph_green_magenta_color anaglyph green/magenta colored (green filter on left eye, magenta filter on right eye) aybg or anaglyph_yellow_blue_gray anaglyph yellow/blue gray (yellow filter on left eye, blue filter on right eye) aybh or anaglyph_yellow_blue_half_color anaglyph yellow/blue half colored (yellow filter on left eye, blue filter on right eye) aybc or anaglyph_yellow_blue_color anaglyph yellow/blue colored (yellow filter on left eye, blue filter on right eye) irl or interleave_rows_left_first Interleaved rows (left eye has top row, right eye starts on next row) irr or interleave_rows_right_first Interleaved rows (right eye has top row, left eye starts on next row) ml or mono_left mono output (left eye only) mr or mono_right mono output (right eye only) NOTE: To use either of the interleaved-rows output formats to display full-screen on a row-interleaved 3D display, you will need to scale the video to the correct height first using the "scale" filter, if it is not already the right height. Typi‐ cally, that is 1080 rows (so use e.g. "-vf scale=1440:1080,stereo3d=sbsl:irl" for a 720p side-by-side en‐ coded movie). gradfun[=strength[:radius]] Fix the banding artifacts that are sometimes introduced into near‐ ly flat regions by truncation to 8bit colordepth. Interpolates the gradients that should go where the bands are, and dithers them. This filter is designed for playback only. Do not use it prior to lossy compression, because compression tends to lose the dither and bring back the bands. <strength> Maximum amount by which the filter will change any one pixel. Also the threshold for detecting nearly flat re‐ gions (default: 1.2). <radius> Neighborhood to fit the gradient to. Larger radius makes for smoother gradients, but also prevents the filter from modifying pixels near detailed regions (default: 16). fixpts[=options] Fixes the presentation timestamps (PTS) of the frames. By de‐ fault, the PTS passed to the next filter is dropped, but the fol‐ lowing options can change that: print Print the incoming PTS. fps=<fps> Specify a frame per second value. start=<pts> Specify an initial value for the PTS. autostart=<n> Uses the nth incoming PTS as the initial PTS. All previ‐ ous PTS are kept, so setting a huge value or -1 keeps the PTS intact. autofps=<n> Uses the nth incoming PTS after the end of autostart to determine the framerate. EXAMPLE: -vf fixpts=fps=24000/1001,ass,fixpts Generates a new sequence of PTS, uses it for ASS subti‐ tles, then drops it. Generating a new sequence is useful when the timestamps are reset during the program; this is frequent on DVDs. Dropping it may be necessary to avoid confusing encoders. NOTE: Using this filter together with any sort of seeking (includ‐ ing -ss and EDLs) may make demons fly out of your nose. GENERAL ENCODING OPTIONS (MENCODER ONLY) -audio-delay <any floating-point number> Delays either audio or video by setting a delay field in the head‐ er (default: 0.0). This does not delay either stream while encod‐ ing, but the player will see the delay field and compensate ac‐ cordingly. Positive values delay the audio, and negative values delay the video. Note that this is the exact opposite of the -de‐ lay option. For example, if a video plays correctly with -delay 0.2, you can fix the video with MEncoder by using -audio-delay -0.2. Currently, this option only works with the default muxer (-of avi). If you are using a different muxer, then you must use -de‐ lay instead. -audio-density <1-50> Number of audio chunks per second (default is 2 for 0.5s long au‐ dio chunks). NOTE: CBR only, VBR ignores this as it puts each packet in a new chunk. -audio-preload <0.0-2.0> Sets up the audio buffering time interval (default: 0.5s). -fafmttag <format> Can be used to override the audio format tag of the output file. EXAMPLE: -fafmttag 0x55 Will have the output file contain 0x55 (mp3) as audio for‐ mat tag. -ffourcc <fourcc> Can be used to override the video fourcc of the output file. EXAMPLE: -ffourcc div3 Will have the output file contain 'div3' as video fourcc. -force-avi-aspect <0.2-3.0> Override the aspect stored in the AVI OpenDML vprp header. This can be used to change the aspect ratio with '-ovc copy'. -frameno-file <filename> (DEPRECATED) Specify the name of the audio file with framenumber mappings cre‐ ated in the first (audio only) pass of a special three pass encod‐ ing mode. NOTE: Using this mode will most likely give you A-V desync. Do not use it. It is kept for backwards compatibility only and will possibly be removed in a future version. -hr-edl-seek Use a more precise, but much slower method for skipping areas. Areas marked for skipping are not seeked over, instead all frames are decoded, but only the necessary frames are encoded. This al‐ lows starting at non-keyframe boundaries. NOTE: Not guaranteed to work right with '-ovc copy'. -info <option1:option2:...> (AVI only) Specify the info header of the resulting AVI file. Available options are: help Show this description. name=<value> title of the work artist=<value> artist or author of the work genre=<value> original work category subject=<value> contents of the work copyright=<value> copyright information srcform=<value> original format of the digitized material comment=<value> general comments about the work -noautoexpand Do not automatically insert the expand filter into the MEncoder filter chain. Useful to control at which point of the filter chain subtitles are rendered when hardcoding subtitles onto a movie. -noencodedups Do not attempt to encode duplicate frames in duplicate; always output zero-byte frames to indicate duplicates. Zero-byte frames will be written anyway unless a filter or encoder capable of doing duplicate encoding is loaded. Currently the only such filter is harddup. -noodml (-of avi only) Do not write OpenDML index for AVI files >1GB. -noskip Do not skip frames. -o <filename> Outputs to the given filename. If you want a default output filename, you can put this option in the MEncoder config file. -oac <codec name> Encode with the given audio codec (no default set). NOTE: Use -oac help to get a list of available audio codecs. EXAMPLE: -oac copy no encoding, just streamcopy -oac pcm Encode to uncompressed PCM. -oac mp3lame Encode to MP3 (using LAME). -oac lavc Encode with a libavcodec codec. -of <format> (BETA CODE!) Encode to the specified container format (default: AVI). NOTE: Use -of help to get a list of available container formats. EXAMPLE: -of avi Encode to AVI. -of mpeg Encode to MPEG (also see -mpegopts). -of lavf Encode with libavformat muxers (also see -lavfopts). -of rawvideo raw video stream (no muxing - one video stream only) -of rawaudio raw audio stream (no muxing - one audio stream only) -ofps <fps> Specify a frames per second (fps) value for the output file, which can be different from that of the source material. Must be set for variable fps (ASF, some MOV) and progressive (30000/1001 fps telecined MPEG) files. -ovc <codec name> Encode with the given video codec (no default set). NOTE: Use -ovc help to get a list of available video codecs. EXAMPLE: -ovc copy no encoding, just streamcopy -ovc raw Encode to an arbitrary uncompressed format (use '-vf for‐ mat' to select). -ovc lavc Encode with a libavcodec codec. -passlogfile <filename> Dump first pass information to <filename> instead of the default divx2pass.log in two pass encoding mode. -skiplimit <value> Specify the maximum number of frames that may be skipped after en‐ coding one frame (-noskiplimit for unlimited). -vobsubout <basename> Specify the basename for the output .idx and .sub files. This turns off subtitle rendering in the encoded movie and diverts it to VOBsub subtitle files. -vobsuboutid <langid> Specify the language two letter code for the subtitles. This overrides what is read from the DVD or the .ifo file. -vobsuboutindex <index> Specify the index of the subtitles in the output files (default: 0). -force-key-frames <time>,<time>,... Force key frames at the specified timestamps, more precisely at the first frame after each specified time. This option can be used to ensure that a seek point is present at a chapter mark or any other designated place in the output file. The timestamps must be specified in ascending order. Since MEncoder does not send timestamps along the filter chain, you probably need to use the fixpts filter for this option to work. Not all codecs support forced key frames. Currently, support is only implemented for the following encoders: lavc, x264, xvid. CODEC SPECIFIC ENCODING OPTIONS (MENCODER ONLY) You can specify codec specific encoding parameters using the following syntax: -<codec>opts <option1[=value1]:option2[=value2]:...> Where <codec> may be: lavc, xvidenc, mp3lame, toolame, twolame, nuv, xvfw, faac, x264enc, mpeg, lavf. mp3lame (-lameopts) help get help vbr=<0-4> variable bitrate method 0 cbr 1 mt 2 rh (default) 3 abr 4 mtrh abr average bitrate cbr constant bitrate Also forces CBR mode encoding on subsequent ABR presets modes. br=<0-1024> bitrate in kbps (CBR and ABR only) q=<0-9> quality (0 - highest, 9 - lowest) (VBR only) aq=<0-9> algorithmic quality (0 - best/slowest, 9 - worst/fastest) ratio=<1-100> compression ratio vol=<0-10> audio input gain mode=<0-3> (default: auto) 0 stereo 1 joint-stereo 2 dualchannel 3 mono padding=<0-2> 0 none 1 all 2 adjust fast Switch on faster encoding on subsequent VBR presets modes. This results in slightly lower quality and higher bitrates. highpassfreq=<freq> Set a highpass filtering frequency in Hz. Frequencies below the specified one will be cut off. A value of -1 will disable filter‐ ing, a value of 0 will let LAME choose values automatically. lowpassfreq=<freq> Set a lowpass filtering frequency in Hz. Frequencies above the specified one will be cut off. A value of -1 will disable filter‐ ing, a value of 0 will let LAME choose values automatically. preset=<value> preset values help Print additional options and information about presets settings. medium VBR encoding, good quality, 150-180 kbps bitrate range standard VBR encoding, high quality, 170-210 kbps bitrate range extreme VBR encoding, very high quality, 200-240 kbps bitrate range insane CBR encoding, highest preset quality, 320 kbps bitrate <8-320> ABR encoding at average given kbps bitrate EXAMPLES: fast:preset=standard suitable for most people and most music types and already quite high quality cbr:preset=192 Encode with ABR presets at a 192 kbps forced constant bi‐ trate. preset=172 Encode with ABR presets at a 172 kbps average bitrate. preset=extreme for people with extremely good hearing and similar equip‐ ment toolame and twolame (-toolameopts and -twolameopts respectively) br=<32-384> In CBR mode this parameter indicates the bitrate in kbps, when in VBR mode it is the minimum bitrate allowed per frame. VBR mode will not work with a value below 112. vbr=<-50-50> (VBR only) variability range; if negative the encoder shifts the average bi‐ trate towards the lower limit, if positive towards the higher. When set to 0 CBR is used (default). maxvbr=<32-384> (VBR only) maximum bitrate allowed per frame, in kbps mode=<stereo | jstereo | mono | dual> (default: mono for 1-channel audio, stereo otherwise) psy=<-1-4> psychoacoustic model (default: 2) errprot=<0 | 1> Include error protection. debug=<0-10> debug level faac (-faacopts) br=<bitrate> average bitrate in kbps (mutually exclusive with quality) quality=<1-1000> quality mode, the higher the better (mutually exclusive with br) object=<1-4> object type complexity 1 MAIN (default) 2 LOW 3 SSR 4 LTP (extremely slow) mpeg=<2|4> MPEG version (default: 4) tns Enables temporal noise shaping. cutoff=<0-sampling_rate/2> cutoff frequency (default: sampling_rate/2) raw Stores the bitstream as raw payload with extradata in the contain‐ er header (default: 0, corresponds to ADTS). Do not set this flag if not explicitly required or you will not be able to remux the audio stream later on. lavc (-lavcopts) Many libavcodec (lavc for short) options are tersely documented. Read the source for full details. EXAMPLE: vcodec=msmpeg4:vbitrate=1800:vhq:keyint=250 o=<key>=<value>[,<key>=<value>[,...]] Pass AVOptions to libavcodec encoder. Note, a patch to make the o= unneeded and pass all unknown options through the AVOption sys‐ tem is welcome. A full list of AVOptions can be found in the FFm‐ peg manual. Note that some AVOptions may conflict with MEncoder options. EXAMPLE: o=bt=100k acodec=<value> audio codec (default: mp2) ac3 Dolby Digital (AC-3) adpcm_* Adaptive PCM formats - see the HTML documentation for de‐ tails. flac Free Lossless Audio Codec (FLAC) g726 G.726 ADPCM libfaac Advanced Audio Coding (AAC) - using FAAC libmp3lame MPEG-1 audio layer 3 (MP3) - using LAME mp2 MPEG-1 audio layer 2 (MP2) pcm_* PCM formats - see the HTML documentation for details. roq_dpcm Id Software RoQ DPCM sonic experimental simple lossy codec sonicls experimental simple lossless codec vorbis Vorbis wmav1 Windows Media Audio v1 wmav2 Windows Media Audio v2 abitrate=<value> audio bitrate in kbps (default: 224) atag=<value> Use the specified Windows audio format tag (e.g. atag=0x55). bit_exact Use only bit exact algorithms (except (I)DCT). Additionally bit_exact disables several optimizations and thus should only be used for regression tests, which need binary identical files even if the encoder version changes. This also suppresses the user_da‐ ta header in MPEG-4 streams. Do not use this option unless you know exactly what you are doing. threads=<1-8> Maximum number of threads to use (default: 1). May have a slight negative effect on motion estimation. vcodec=<value> Employ the specified codec (default: mpeg4). asv1 ASUS Video v1 asv2 ASUS Video v2 dvvideo Sony Digital Video ffv1 FFmpeg's lossless video codec ffvhuff nonstandard 20% smaller HuffYUV using YV12 flv Sorenson H.263 used in Flash Video h261 H.261 h263 H.263 h263p H.263+ huffyuv HuffYUV libtheora Theora libx264 x264 H.264/AVC MPEG-4 Part 10 libxvid Xvid MPEG-4 Part 2 (ASP) ljpeg Lossless JPEG mjpeg Motion JPEG mpeg1video MPEG-1 video mpeg2video MPEG-2 video mpeg4 MPEG-4 (DivX 4/5) msmpeg4 DivX 3 msmpeg4v2 MS MPEG4v2 roqvideo ID Software RoQ Video rv10 an old RealVideo codec snow (also see: vstrict) FFmpeg's experimental wavelet-based codec svq1 Apple Sorenson Video 1 wmv1 Windows Media Video, version 1 (AKA WMV7) wmv2 Windows Media Video, version 2 (AKA WMV8) vqmin=<1-31> minimum quantizer 1 Not recommended (much larger file, little quality differ‐ ence and weird side effects: msmpeg4, h263 will be very low quality, ratecontrol will be confused resulting in lower quality and some decoders will not be able to decode it). 2 Recommended for normal mpeg4/mpeg1video encoding (de‐ fault). 3 Recommended for h263(p)/msmpeg4. The reason for prefer‐ ring 3 over 2 is that 2 could lead to overflows. (This will be fixed for h263(p) by changing the quantizer per MB in the future, msmpeg4 cannot be fixed as it does not sup‐ port that.) lmin=<0.01-255.0> Minimum frame-level Lagrange multiplier for ratecontrol (default: 2.0). Lavc will rarely use quantizers below the value of lmin. Lowering lmin will make lavc more likely to choose lower quantiz‐ ers for some frames, but not lower than the value of vqmin. Like‐ wise, raising lmin will make lavc less likely to choose low quan‐ tizers, even if vqmin would have allowed them. You probably want to set lmin approximately equal to vqmin. When adaptive quantiza‐ tion is in use, changing lmin/lmax may have less of an effect; see mblmin/mblmax. lmax=<0.01-255.0> maximum Lagrange multiplier for ratecontrol (default: 31.0) mblmin=<0.01-255.0> Minimum macroblock-level Lagrange multiplier for ratecontrol (de‐ fault:2.0). This parameter affects adaptive quantization options like qprd, lumi_mask, etc.. mblmax=<0.01-255.0> Maximum macroblock-level Lagrange multiplier for ratecontrol (de‐ fault: 31.0). vqscale=<0-31> Constant quantizer / constant quality encoding (selects fixed quantizer mode). A lower value means better quality but larger files (default: -1). In case of snow codec, value 0 means loss‐ less encoding. Since the other codecs do not support this, vqs‐ cale=0 will have an undefined effect. 1 is not recommended (see vqmin for details). vqmax=<1-31> Maximum quantizer, 10-31 should be a sane range (default: 31). vqdiff=<1-31> maximum quantizer difference between consecutive I- or P-frames (default: 3) vmax_b_frames=<0-4> maximum number of B-frames between non-B-frames: 0 no B-frames (default) 0-2 sane range for MPEG-4 vme=<0-5> motion estimation method. Available methods are: 0 none (very low quality) 1 full (slow, currently unmaintained and disabled) 2 log (low quality, currently unmaintained and disabled) 3 phods (low quality, currently unmaintained and disabled) 4 EPZS: size=1 diamond, size can be adjusted with the *dia options (default) 5 X1 (experimental, currently aliased to EPZS) 8 iter (iterative overlapped block, only used in snow) NOTE: 0-3 currently ignores the amount of bits spent, so quality may be low. me_range=<0-9999> motion estimation search range (default: 0 (unlimited)) mbd=<0-2> (also see *cmp, qpel) Macroblock decision algorithm (high quality mode), encode each macro block in all modes and choose the best. This is slow but results in better quality and file size. When mbd is set to 1 or 2, the value of mbcmp is ignored when comparing macroblocks (the mbcmp value is still used in other places though, in particular the motion search algorithms). If any comparison setting (precmp, subcmp, cmp, or mbcmp) is nonzero, however, a slower but better half-pel motion search will be used, regardless of what mbd is set to. If qpel is set, quarter-pel motion search will be used re‐ gardless. 0 Use comparison function given by mbcmp (default). 1 Select the MB mode which needs the fewest bits (=vhq). 2 Select the MB mode which has the best rate distortion. vhq Same as mbd=1, kept for compatibility reasons. v4mv Allow 4 motion vectors per macroblock (slightly better quality). Works better if used with mbd>0. obmc overlapped block motion compensation (H.263+) loop loop filter (H.263+) note, this is broken inter_threshold <-1000-1000> Does absolutely nothing at the moment. keyint=<0-300> maximum interval between keyframes in frames (default: 250 or one keyframe every ten seconds in a 25fps movie. This is the recom‐ mended default for MPEG-4). Most codecs require regular keyframes in order to limit the accumulation of mismatch error. Keyframes are also needed for seeking, as seeking is only possible to a keyframe - but keyframes need more space than other frames, so larger numbers here mean slightly smaller files but less precise seeking. 0 is equivalent to 1, which makes every frame a keyframe. Values >300 are not recommended as the quality might be bad depending upon decoder, encoder and luck. It is common for MPEG-1/2 to use values <=30. sc_threshold=<-1000000000-1000000000> Threshold for scene change detection. A keyframe is inserted by libavcodec when it detects a scene change. You can specify the sensitivity of the detection with this option. -1000000000 means there is a scene change detected at every frame,<PHONE_NUMBER> means no scene changes are detected (default: 0). sc_factor=<any positive integer> Causes frames with higher quantizers to be more likely to trigger a scene change detection and make libavcodec use an I-frame (de‐ fault: 1). 1-16 is a sane range. Values between 2 and 6 may yield increasing PSNR (up to approximately 0.04 dB) and better placement of I-frames in high-motion scenes. Higher values than 6 may give very slightly better PSNR (approximately 0.01 dB more than sc_factor=6), but noticably worse visual quality. vb_strategy=<0-2> (pass one only) strategy to choose between I/P/B-frames: 0 Always use the maximum number of B-frames (default). 1 Avoid B-frames in high motion scenes. See the b_sensitiv‐ ity option to tune this strategy. 2 Places B-frames more or less optimally to yield maximum quality (slower). You may want to reduce the speed impact of this option by tuning the option brd_scale. b_sensitivity=<any integer greater than 0> Adjusts how sensitively vb_strategy=1 detects motion and avoids using B-frames (default: 40). Lower sensitivities will result in more B-frames. Using more B-frames usually improves PSNR, but too many B-frames can hurt quality in high-motion scenes. Unless there is an extremely high amount of motion, b_sensitivity can safely be lowered below the default; 10 is a reasonable value in most cases. brd_scale=<0-10> Downscales frames for dynamic B-frame decision (default: 0). Each time brd_scale is increased by one, the frame dimensions are di‐ vided by two, which improves speed by a factor of four. Both di‐ mensions of the fully downscaled frame must be even numbers, so brd_scale=1 requires the original dimensions to be multiples of four, brd_scale=2 requires multiples of eight, etc. In other words, the dimensions of the original frame must both be divisible by 2^(brd_scale+1) with no remainder. bidir_refine=<0-4> Refine the two motion vectors used in bidirectional macroblocks, rather than re-using vectors from the forward and backward search‐ es. This option has no effect without B-frames. 0 Disabled (default). 1-4 Use a wider search (larger values are slower). vpass=<1-3> Activates internal two (or more) pass mode, only specify if you wish to use two (or more) pass encoding. 1 first pass (also see turbo) 2 second pass 3 Nth pass (second and subsequent passes of N-pass encoding) Here is how it works, and how to use it: The first pass (vpass=1) writes the statistics file. You might want to deactivate some CPU-hungry options, like "turbo" mode does. In two pass mode, the second pass (vpass=2) reads the statistics file and bases ratecontrol decisions on it. In N-pass mode, the second pass (vpass=3, that is not a typo) does both: It first reads the statistics, then overwrites them. You might want to backup divx2pass.log before doing this if there is any possibility that you will have to cancel MEncoder. You can use all encoding options, except very CPU-hungry options like "qns". You can run this same pass over and over to refine the encode. Each subsequent pass will use the statistics from the previous pass to improve. The final pass can include any CPU-hungry encod‐ ing options. If you want a 2 pass encode, use first vpass=1, and then vpass=2. If you want a 3 or more pass encode, use vpass=1 for the first pass and then vpass=3 and then vpass=3 again and again until you are satisfied with the encode. huffyuv: pass 1 Saves statistics. pass 2 Encodes with an optimal Huffman table based upon statis‐ tics from the first pass. turbo (two pass only) Dramatically speeds up pass one using faster algorithms and dis‐ abling CPU-intensive options. This will probably reduce global PSNR a little bit (around 0.01dB) and change individual frame type and PSNR a little bit more (up to 0.03dB). aspect=<x/y> Store movie aspect internally, just like with MPEG files. Much nicer than rescaling, because quality is not decreased. Only MPlayer will play these files correctly, other players will dis‐ play them with wrong aspect. The aspect parameter can be given as a ratio or a floating point number. EXAMPLE: aspect=16/9 or aspect=1.78 autoaspect Same as the aspect option, but automatically computes aspect, tak‐ ing into account all the adjustments (crop/expand/scale/etc.) made in the filter chain. Does not incur a performance penalty, so you can safely leave it always on. vbitrate=<value> Specify bitrate (default: 800). WARNING: 1kbit = 1000 bits 4-16000 (in kbit) 16001-24000000 (in bit) vratetol=<value> approximated file size tolerance in kbit. 1000-100000 is a sane range. (warning: 1kbit = 1000 bits) (default: 8000) NOTE: vratetol should not be too large during the second pass or there might be problems if vrc_(min|max)rate is used. vrc_maxrate=<value> maximum bitrate in kbit/sec (default: 0, unlimited) vrc_minrate=<value> minimum bitrate in kbit/sec (default: 0, unlimited) vrc_buf_size=<value> buffer size in kbit For MPEG-1/2 this also sets the vbv buffer size, use 327 for VCD, 917 for SVCD and 1835 for DVD. vrc_buf_aggressivity currently useless vrc_strategy Ratecontrol method. Note that some of the ratecontrol-affecting options will have no effect if vrc_strategy is not set to 0. 0 Use internal lavc ratecontrol (default). 1 Use Xvid ratecontrol (experimental; requires MEncoder to be compiled with support for Xvid 1.1 or higher). vb_qfactor=<-31.0-31.0> quantizer factor between B- and non-B-frames (default: 1.25) vi_qfactor=<-31.0-31.0> quantizer factor between I- and non-I-frames (default: 0.8) vb_qoffset=<-31.0-31.0> quantizer offset between B- and non-B-frames (default: 1.25) vi_qoffset=<-31.0-31.0> (default: 0.0) if v{b|i}_qfactor > 0 I/B-frame quantizer = P-frame quantizer * v{b|i}_qfactor + v{b|i}_qoffset else do normal ratecontrol (do not lock to next P-frame quantizer) and set q= -q * v{b|i}_qfactor + v{b|i}_qoffset HINT: To do constant quantizer encoding with different quantizers for I/P- and B-frames you can use: lmin= <ip_quant>:lmax= <ip_quant>:vb_qfactor= <b_quant/ip_quant>. vqblur=<0.0-1.0> (pass one) Quantizer blur (default: 0.5), larger values will average the quantizer more over time (slower change). 0.0 Quantizer blur disabled. 1.0 Average the quantizer over all previous frames. vqblur=<0.0-99.0> (pass two) Quantizer gaussian blur (default: 0.5), larger values will average the quantizer more over time (slower change). vqcomp=<0.0-1.0> Quantizer compression, vrc_eq depends upon this (default: 0.5). NOTE: Perceptual quality will be optimal somewhere in between the range's extremes. vrc_eq=<equation> main ratecontrol equation 1+(tex/avgTex-1)*qComp approximately the equation of the old ratecontrol code tex^qComp with qcomp 0.5 or something like that (default) infix operators: +,-,*,/,^ variables: tex texture complexity iTex,pTex intra, non-intra texture complexity avgTex average texture complexity avgIITex average intra texture complexity in I-frames avgPITex average intra texture complexity in P-frames avgPPTex average non-intra texture complexity in P-frames avgBPTex average non-intra texture complexity in B-frames mv bits used for motion vectors fCode maximum length of motion vector in log2 scale iCount number of intra macroblocks / number of macroblocks var spatial complexity mcVar temporal complexity qComp qcomp from the command line isI, isP, isB Is 1 if picture type is I/P/B else 0. Pi,E See your favorite math book. functions: max(a,b),min(a,b) maximum / minimum gt(a,b) is 1 if a>b, 0 otherwise lt(a,b) is 1 if a<b, 0 otherwise eq(a,b) is 1 if a==b, 0 otherwise sin, cos, tan, sinh, cosh, tanh, exp, log, abs vrc_override=<options> User specified quality for specific parts (ending, credits, ...). The options are <start-frame>, <end-frame>, <quality>[/<start- frame>, <end-frame>, <quality>[/...]]: quality (2-31) quantizer quality (-500-0) quality correction in % vrc_init_cplx=<0-1000> initial complexity (pass 1) vrc_init_occupancy=<0.0-1.0> initial buffer occupancy, as a fraction of vrc_buf_size (default: 0.9) vqsquish=<0|1> Specify how to keep the quantizer between qmin and qmax. 0 Use clipping. 1 Use a nice differentiable function (default). vlelim=<-1000-1000> Sets single coefficient elimination threshold for luminance. Neg‐ ative values will also consider the DC coefficient (should be at least -4 or lower for encoding at quant=1): 0 disabled (default) -4 JVT recommendation vcelim=<-1000-1000> Sets single coefficient elimination threshold for chrominance. Negative values will also consider the DC coefficient (should be at least -4 or lower for encoding at quant=1): 0 disabled (default) 7 JVT recommendation vstrict=<-2|-1|0|1> strict standard compliance 0 disabled 1 Only recommended if you want to feed the output into the MPEG-4 reference decoder. -1 Allow libavcodec specific extensions (default). -2 Enables experimental codecs and features which may not be playable with future MPlayer versions (snow). vdpart Data partitioning. Adds 2 Bytes per video packet, improves error- resistance when transferring over unreliable channels (e.g. streaming over the internet). Each video packet will be encoded in 3 separate partitions: 1. MVs movement 2. DC coefficients low res picture 3. AC coefficients details MV & DC are most important, losing them looks far worse than los‐ ing the AC and the 1. & 2. partition. (MV & DC) are far smaller than the 3. partition (AC) meaning that errors will hit the AC partition much more often than the MV & DC partitions. Thus, the picture will look better with partitioning than without, as with‐ out partitioning an error will trash AC/DC/MV equally. vpsize=<0-10000> (also see vdpart) Video packet size, improves error-resistance. 0 disabled (default) 100-1000 good choice ss slice structured mode for H.263+ gray grayscale only encoding (faster) vfdct=<0-10> DCT algorithm 0 Automatically select a good one (default). 1 fast integer 2 accurate integer 3 MMX 4 mlib 5 AltiVec 6 floating point AAN idct=<0-99> IDCT algorithm NOTE: To the best of our knowledge all these IDCTs do pass the IEEE1180 tests. 0 Automatically select a good one (default). 1 JPEG reference integer 2 simple 3 simplemmx 4 libmpeg2mmx (inaccurate, do not use for encoding with keyint >100) 5 ps2 6 mlib 7 arm 8 AltiVec 9 sh4 10 simplearm 11 H.264 12 VP3 13 IPP 14 xvidmmx 15 CAVS 16 simplearmv5te 17 simplearmv6 lumi_mask=<0.0-1.0> Luminance masking is a 'psychosensory' setting that is supposed to make use of the fact that the human eye tends to notice fewer de‐ tails in very bright parts of the picture. Luminance masking com‐ presses bright areas stronger than medium ones, so it will save bits that can be spent again on other frames, raising overall sub‐ jective quality, while possibly reducing PSNR. WARNING: Be careful, overly large values can cause disastrous things. WARNING: Large values might look good on some monitors but may look horrible on other monitors. 0.0 disabled (default) 0.0-0.3 sane range dark_mask=<0.0-1.0> Darkness masking is a 'psychosensory' setting that is supposed to make use of the fact that the human eye tends to notice fewer de‐ tails in very dark parts of the picture. Darkness masking com‐ presses dark areas stronger than medium ones, so it will save bits that can be spent again on other frames, raising overall subjec‐ tive quality, while possibly reducing PSNR. WARNING: Be careful, overly large values can cause disastrous things. WARNING: Large values might look good on some monitors but may look horrible on other monitors / TV / TFT. 0.0 disabled (default) 0.0-0.3 sane range tcplx_mask=<0.0-1.0> Temporal complexity masking (default: 0.0 (disabled)). Imagine a scene with a bird flying across the whole scene; tcplx_mask will raise the quantizers of the bird's macroblocks (thus decreasing their quality), as the human eye usually does not have time to see all the bird's details. Be warned that if the masked object stops (e.g. the bird lands) it is likely to look horrible for a short period of time, until the encoder figures out that the object is not moving and needs refined blocks. The saved bits will be spent on other parts of the video, which may increase subjective quali‐ ty, provided that tcplx_mask is carefully chosen. scplx_mask=<0.0-1.0> Spatial complexity masking. Larger values help against blocki‐ ness, if no deblocking filter is used for decoding, which is maybe not a good idea. Imagine a scene with grass (which usually has great spatial com‐ plexity), a blue sky and a house; scplx_mask will raise the quan‐ tizers of the grass' macroblocks, thus decreasing its quality, in order to spend more bits on the sky and the house. HINT: Crop any black borders completely as they will reduce the quality of the macroblocks (also applies without scplx_mask). 0.0 disabled (default) 0.0-0.5 sane range NOTE: This setting does not have the same effect as using a custom matrix that would compress high frequencies harder, as scplx_mask will reduce the quality of P blocks even if only DC is changing. The result of scplx_mask will probably not look as good. p_mask=<0.0-1.0> (also see vi_qfactor) Reduces the quality of inter blocks. This is equivalent to in‐ creasing the quality of intra blocks, because the same average bi‐ trate will be distributed by the rate controller to the whole video sequence (default: 0.0 (disabled)). p_mask=1.0 doubles the bits allocated to each intra block. border_mask=<0.0-1.0> border-processing for MPEG-style encoders. Border processing in‐ creases the quantizer for macroblocks which are less than 1/5th of the frame width/height away from the frame border, since they are often visually less important. naq Normalize adaptive quantization (experimental). When using adap‐ tive quantization (*_mask), the average per-MB quantizer may no longer match the requested frame-level quantizer. Naq will at‐ tempt to adjust the per-MB quantizers to maintain the proper aver‐ age. ildct Use interlaced DCT. ilme Use interlaced motion estimation (mutually exclusive with qpel). alt Use alternative scantable. top=<-1-1> -1 automatic 0 bottom field first 1 top field first format=<value> YV12 default 444P for ffv1 422P for HuffYUV, lossless JPEG, dv and ffv1 411P for lossless JPEG, dv and ffv1 YVU9 for lossless JPEG, ffv1 and svq1 BGR32 for lossless JPEG and ffv1 pred (for HuffYUV) 0 left prediction 1 plane/gradient prediction 2 median prediction pred (for lossless JPEG) 0 left prediction 1 top prediction 2 topleft prediction 3 plane/gradient prediction 6 mean prediction coder (for ffv1) 0 vlc coding (Golomb-Rice) 1 arithmetic coding (CABAC) context (for ffv1) 0 small context model 1 large context model (for ffvhuff) 0 predetermined Huffman tables (builtin or two pass) 1 adaptive Huffman tables qpel Use quarter pel motion compensation (mutually exclusive with ilme). HINT: This seems only useful for high bitrate encodings. mbcmp=<0-2000> Sets the comparison function for the macroblock decision, has only an effect if mbd=0. This is also used for some motion search functions, in which case it has an effect regardless of mbd set‐ ting. 0 (SAD) sum of absolute differences, fast (default) 1 (SSE) sum of squared errors 2 (SATD) sum of absolute Hadamard transformed differences 3 (DCT) sum of absolute DCT transformed differences 4 (PSNR) sum of squared quantization errors (avoid, low quality) 5 (BIT) number of bits needed for the block 6 (RD) rate distortion optimal, slow 7 (ZERO) 0 8 (VSAD) sum of absolute vertical differences 9 (VSSE) sum of squared vertical differences 10 (NSSE) noise preserving sum of squared differences 11 (W53) 5/3 wavelet, only used in snow 12 (W97) 9/7 wavelet, only used in snow +256 Also use chroma, currently does not work (correctly) with B-frames. ildctcmp=<0-2000> Sets the comparison function for interlaced DCT decision (see mbcmp for available comparison functions). precmp=<0-2000> Sets the comparison function for motion estimation pre pass (see mbcmp for available comparison functions) (default: 0). cmp=<0-2000> Sets the comparison function for full pel motion estimation (see mbcmp for available comparison functions) (default: 0). subcmp=<0-2000> Sets the comparison function for sub pel motion estimation (see mbcmp for available comparison functions) (default: 0). skipcmp=<0-2000> FIXME: Document this. nssew=<0-1000000> This setting controls NSSE weight, where larger weights will re‐ sult in more noise. 0 NSSE is identical to SSE You may find this useful if you prefer to keep some noise in your encoded video rather than filtering it away before encoding (default: 8). predia=<-99-6> diamond type and size for motion estimation pre-pass dia=<-99-6> Diamond type & size for motion estimation. Motion search is an iterative process. Using a small diamond does not limit the search to finding only small motion vectors. It is just somewhat more likely to stop before finding the very best motion vector, especially when noise is involved. Bigger diamonds allow a wider search for the best motion vector, thus are slower but result in better quality. Big normal diamonds are better quality than shape-adaptive dia‐ monds. Shape-adaptive diamonds are a good tradeoff between speed and quality. NOTE: The sizes of the normal diamonds and shape adaptive ones do not have the same meaning. -3 shape adaptive (fast) diamond with size 3 -2 shape adaptive (fast) diamond with size 2 -1 uneven multi-hexagon search (slow) 1 normal size=1 diamond (default) =EPZS type diamond 0 000 0 2 normal size=2 diamond 0 000 00000 000 0 trell Trellis searched quantization. This will find the optimal encod‐ ing for each 8x8 block. Trellis searched quantization is quite simply an optimal quantization in the PSNR versus bitrate sense (Assuming that there would be no rounding errors introduced by the IDCT, which is obviously not the case.). It simply finds a block for the minimum of error and lambda*bits. lambda quantization parameter (QP) dependent constant bits amount of bits needed to encode the block error sum of squared errors of the quantization cbp Rate distorted optimal coded block pattern. Will select the coded block pattern which minimizes distortion + lambda*rate. This can only be used together with trellis quantization. mv0 Try to encode each MB with MV=<0,0> and choose the better one. This has no effect if mbd=0. mv0_threshold=<any non-negative integer> When surrounding motion vectors are <0,0> and the motion estima‐ tion score of the current block is less than mv0_threshold, <0,0> is used for the motion vector and further motion estimation is skipped (default: 256). Lowering mv0_threshold to 0 can give a slight (0.01dB) PSNR increase and possibly make the encoded video look slightly better; raising mv0_threshold past 320 results in diminished PSNR and visual quality. Higher values speed up encod‐ ing very slightly (usually less than 1%, depending on the other options used). NOTE: This option does not require mv0 to be enabled. qprd (mbd=2 only) rate distorted optimal quantization parameter (QP) for the given lambda of each macroblock last_pred=<0-99> amount of motion predictors from the previous frame 0 (default) a Will use 2a+1 x 2a+1 macroblock square of motion vector predictors from the previous frame. preme=<0-2> motion estimation pre-pass 0 disabled 1 only after I-frames (default) 2 always subq=<1-8> subpel refinement quality (for qpel) (default: 8 (high quality)) NOTE: This has a significant effect on speed. refs=<1-8> number of reference frames to consider for motion compensation (Snow only) (default: 1) psnr print the PSNR (peak signal to noise ratio) for the whole video after encoding and store the per frame PSNR in a file with a name like 'psnr_hhmmss.log'. Returned values are in dB (decibel), the higher the better. mpeg_quant Use MPEG quantizers instead of H.263. aic Enable AC prediction for MPEG-4 or advanced intra prediction for H.263+. This will improve quality very slightly (around 0.02 dB PSNR) and slow down encoding very slightly (about 1%). NOTE: vqmin should be 8 or larger for H.263+ AIC. aiv alternative inter vlc for H.263+ umv unlimited MVs (H.263+ only) Allows encoding of arbitrarily long MVs. ibias=<-256-256> intra quantizer bias (256 equals 1.0, MPEG style quantizer de‐ fault: 96, H.263 style quantizer default: 0) NOTE: The H.263 MMX quantizer cannot handle positive biases (set vfdct=1 or 2), the MPEG MMX quantizer cannot handle negative bias‐ es (set vfdct=1 or 2). pbias=<-256-256> inter quantizer bias (256 equals 1.0, MPEG style quantizer de‐ fault: 0, H.263 style quantizer default: -64) NOTE: The H.263 MMX quantizer cannot handle positive biases (set vfdct=1 or 2), the MPEG MMX quantizer cannot handle negative bias‐ es (set vfdct=1 or 2). HINT: A more positive bias (-32 - -16 instead of -64) seems to im‐ prove the PSNR. nr=<0-100000> Noise reduction, 0 means disabled. 0-600 is a useful range for typical content, but you may want to turn it up a bit more for very noisy content (default: 0). Given its small impact on speed, you might want to prefer to use this over filtering noise away with video filters like denoise3d or hqdn3d. qns=<0-3> Quantizer noise shaping. Rather than choosing quantization to most closely match the source video in the PSNR sense, it chooses quantization such that noise (usually ringing) will be masked by similar-frequency content in the image. Larger values are slower but may not result in better quality. This can and should be used together with trellis quantization, in which case the trellis quantization (optimal for constant weight) will be used as start‐ point for the iterative search. 0 disabled (default) 1 Only lower the absolute value of coefficients. 2 Only change coefficients before the last non-zero coeffi‐ cient + 1. 3 Try all. inter_matrix=<comma separated matrix> Use custom inter matrix. It needs a comma separated string of 64 integers. intra_matrix=<comma separated matrix> Use custom intra matrix. It needs a comma separated string of 64 integers. vqmod_amp experimental quantizer modulation vqmod_freq experimental quantizer modulation dc intra DC precision in bits (default: 8). If you specify vcodec=mpeg2video this value can be 8, 9, 10 or 11. cgop (also see sc_threshold) Close all GOPs. Currently it only works if scene change detection is disabled (sc_threshold=1000000000). gmc Enable Global Motion Compensation. (no)lowdelay Sets the low delay flag for MPEG-1/2 (disables B-frames). vglobal=<0-3> Control writing global video headers. 0 Codec decides where to write global headers (default). 1 Write global headers only in extradata (needed for .mp4/MOV/NUT). 2 Write global headers only in front of keyframes. 3 Combine 1 and 2. aglobal=<0-3> Same as vglobal for audio headers. level=<value> Set CodecContext Level. Use 31 or 41 to play video on a Playsta‐ tion 3. skip_exp=<0-1000000> FIXME: Document this. skip_factor=<0-1000000> FIXME: Document this. skip_threshold=<0-1000000> FIXME: Document this. nuv (-nuvopts) Nuppel video is based on RTJPEG and LZO. By default frames are first en‐ coded with RTJPEG and then compressed with LZO, but it is possible to disable either or both of the two passes. As a result, you can in fact output raw i420, LZO compressed i420, RTJPEG, or the default LZO com‐ pressed RTJPEG. NOTE: The nuvrec documentation contains some advice and examples about the settings to use for the most common TV encodings. c=<0-20> chrominance threshold (default: 1) l=<0-20> luminance threshold (default: 1) lzo Enable LZO compression (default). nolzo Disable LZO compression. q=<3-255> quality level (default: 255) raw Disable RTJPEG encoding. rtjpeg Enable RTJPEG encoding (default). xvidenc (-xvidencopts) There are three modes available: constant bitrate (CBR), fixed quantizer and two pass. pass=<1|2> Specify the pass in two pass mode. turbo (two pass only) Dramatically speeds up pass one using faster algorithms and dis‐ abling CPU-intensive options. This will probably reduce global PSNR a little bit and change individual frame type and PSNR a lit‐ tle bit more. bitrate=<value> (CBR or two pass mode) Sets the bitrate to be used in kbits/second if <16000 or in bits/ second if >16000. If <value> is negative, Xvid will use its abso‐ lute value as the target size (in kBytes) of the video and compute the associated bitrate automagically (default: 687 kbits/s). fixed_quant=<1-31> Switch to fixed quantizer mode and specify the quantizer to be used. zones=<zone0>[/<zone1>[/...]] (CBR or two pass mode) User specified quality for specific parts (ending, credits, ...). Each zone is <start-frame>,<mode>,<value> where <mode> may be q Constant quantizer override, where value=<2.0-31.0> repre‐ sents the quantizer value. w Ratecontrol weight override, where value=<0.01-2.00> rep‐ resents the quality correction in %. EXAMPLE: zones=90000,q,20 Encodes all frames starting with frame 90000 at constant quantizer 20. zones=0,w,0.1/10001,w,1.0/90000,q,20 Encode frames 0-10000 at 10% bitrate, encode frames 90000 up to the end at constant quantizer 20. Note that the second zone is needed to delimit the first zone, as with‐ out it everything up until frame 89999 would be encoded at 10% bitrate. me_quality=<0-6> This option controls the motion estimation subsystem. The higher the value, the more precise the estimation should be (default: 6). The more precise the motion estimation is, the more bits can be saved. Precision is gained at the expense of CPU time so decrease this setting if you need realtime encoding. (no)qpel MPEG-4 uses a half pixel precision for its motion search by de‐ fault. The standard proposes a mode where encoders are allowed to use quarter pixel precision. This option usually results in a sharper image. Unfortunately it has a great impact on bitrate and sometimes the higher bitrate use will prevent it from giving a better image quality at a fixed bitrate. It is better to test with and without this option and see whether it is worth activat‐ ing. (no)gmc Enable Global Motion Compensation, which makes Xvid generate spe‐ cial frames (GMC-frames) which are well suited for Pan/Zoom/Rotat‐ ing images. Whether or not the use of this option will save bits is highly dependent on the source material. (no)trellis Trellis Quantization is a kind of adaptive quantization method that saves bits by modifying quantized coefficients to make them more compressible by the entropy encoder. Its impact on quality is good, and if VHQ uses too much CPU for you, this setting can be a good alternative to save a few bits (and gain quality at fixed bitrate) at a lesser cost than with VHQ (default: on). (no)cartoon Activate this if your encoded sequence is an anime/cartoon. It modifies some Xvid internal thresholds so Xvid takes better deci‐ sions on frame types and motion vectors for flat looking cartoons. (no)chroma_me The usual motion estimation algorithm uses only the luminance in‐ formation to find the best motion vector. However for some video material, using the chroma planes can help find better vectors. This setting toggles the use of chroma planes for motion estima‐ tion (default: on). (no)chroma_opt Enable a chroma optimizer prefilter. It will do some extra magic on color information to minimize the stepped-stairs effect on edges. It will improve quality at the cost of encoding speed. It reduces PSNR by nature, as the mathematical deviation to the orig‐ inal picture will get bigger, but the subjective image quality will raise. Since it works with color information, you might want to turn it off when encoding in grayscale. (no)hq_ac Activates high-quality prediction of AC coefficients for intra frames from neighbor blocks (default: on). vhq=<0-4> The motion search algorithm is based on a search in the usual col‐ or domain and tries to find a motion vector that minimizes the difference between the reference frame and the encoded frame. With this setting activated, Xvid will also use the frequency do‐ main (DCT) to search for a motion vector that minimizes not only the spatial difference but also the encoding length of the block. Fastest to slowest: 0 off 1 mode decision (inter/intra MB) (default) 2 limited search 3 medium search 4 wide search (no)lumi_mask Adaptive quantization allows the macroblock quantizers to vary in‐ side each frame. This is a 'psychosensory' setting that is sup‐ posed to make use of the fact that the human eye tends to notice fewer details in very bright and very dark parts of the picture. It compresses those areas more strongly than medium ones, which will save bits that can be spent again on other frames, raising overall subjective quality and possibly reducing PSNR. (no)grayscale Make Xvid discard chroma planes so the encoded video is grayscale only. Note that this does not speed up encoding, it just prevents chroma data from being written in the last stage of encoding. (no)interlacing Encode the fields of interlaced video material. Turn this option on for interlaced content. NOTE: Should you rescale the video, you would need an interlace- aware resizer, which you can activate with -vf scale=<width>:<height>:1. min_iquant=<0-31> minimum I-frame quantizer (default: 2) max_iquant=<0-31> maximum I-frame quantizer (default: 31) min_pquant=<0-31> minimum P-frame quantizer (default: 2) max_pquant=<0-31> maximum P-frame quantizer (default: 31) min_bquant=<0-31> minimum B-frame quantizer (default: 2) max_bquant=<0-31> maximum B-frame quantizer (default: 31) min_key_interval=<value> (two pass only) minimum interval between keyframes (default: 0) max_key_interval=<value> maximum interval between keyframes (default: 10*fps) quant_type=<h263|mpeg> Sets the type of quantizer to use. For high bitrates, you will find that MPEG quantization preserves more detail. For low bi‐ trates, the smoothing of H.263 will give you less block noise. When using custom matrices, MPEG quantization must be used. quant_intra_matrix=<filename> Load a custom intra matrix file. You can build such a file with xvid4conf's matrix editor. quant_inter_matrix=<filename> Load a custom inter matrix file. You can build such a file with xvid4conf's matrix editor. keyframe_boost=<0-1000> (two pass mode only) Shift some bits from the pool for other frame types to intra frames, thus improving keyframe quality. This amount is an extra percentage, so a value of 10 will give your keyframes 10% more bits than normal (default: 0). kfthreshold=<value> (two pass mode only) Works together with kfreduction. Determines the minimum distance below which you consider that two frames are considered consecu‐ tive and treated differently according to kfreduction (default: 10). kfreduction=<0-100> (two pass mode only) The above two settings can be used to adjust the size of keyframes that you consider too close to the first (in a row). kfthreshold sets the range in which keyframes are reduced, and kfreduction de‐ termines the bitrate reduction they get. The last I-frame will get treated normally (default: 30). max_bframes=<0-4> Maximum number of B-frames to put between I/P-frames (default: 2). bquant_ratio=<0-1000> quantizer ratio between B- and non-B-frames, 150=1.50 (default: 150) bquant_offset=<-1000-1000> quantizer off