Provided by: mpv_0.3.4-1_amd64 bug


       mpv - a movie player


       mpv [options] [file|URL|-]
       mpv [options] --playlist=PLAYLIST
       mpv [options] files
       mpv [options] {group of files and options}
       mpv [bd]://[title][/device] [options]
       mpv dvd://[title|[start_title]-end_title][/device] [options]
       mpv dvdnav://[longest|menu|title][/device] [options]
       mpv vcd://[/device]
       mpv tv://[channel][/input_id] [options]
       mpv radio://[channel|frequency][/capture] [options]
       mpv pvr:// [options]
       mpv dvb://[card_number@]channel [options]
       mpv mf://[filemask|@listfile] [-mf options] [options]
       mpv cdda://track[-endtrack][:speed][/device] [options]
       mpv [file|mms[t]|http|httpproxy|rt[s]p|ftp|udp|smb]://[user:pass@]URL[:port] [options]
       mpv edl://[edl specification as in edl-mpv.rst]


       mpv  is  a movie player based on MPlayer and mplayer2. It supports a wide variety of video
       file formats, audio and video codecs, and subtitle types.  Special  input  URL  types  are
       available  to  read  input  from  a variety of sources other than disk files. Depending on
       platform, a variety of different video and audio output methods are supported.

       Usage examples to get you started quickly can be found at the end of this man page.


       mpv has a fully configurable, command-driven control layer which allows you to control mpv
       using  keyboard,  mouse,  joystick or remote control (with LIRC). See the --input- options
       for ways to customize it.

   Keyboard Control
       LEFT and RIGHT
              Seek backward/forward 10 seconds. Shift+arrow does  a  1  second  exact  seek  (see

       UP and DOWN
              Seek  forward/backward  1  minute.  Shift+arrow  does  a  5  second exact seek (see

       PGUP and PGDWN
              Seek forward/backward 10 minutes.

       [ and ]
              Decrease/increase current playback speed by 10%.

       { and }
              Halve/double current playback speed.

              Reset playback speed to normal.

       < and >
              Go backward/forward in the playlist.

       ENTER  Go forward in the playlist, even over the end.

       p / SPACE
              Pause (pressing again unpauses).

       .      Step forward. Pressing once will pause movie, every consecutive press will play one
              frame and then go into pause mode again.

       ,      Step  backward.  Pressing  once will pause movie, every consecutive press will play
              one frame in reverse and then go into pause mode again.

       q / ESC
              Stop playing and quit.

       Q      Like q, but store the current playback position. Playing the same file  later  will
              resume at the old playback position if possible.

       U      Stop playing (and quit if --idle is not used).

       + and -
              Adjust audio delay by +/- 0.1 seconds.

       / and *
              Decrease/increase volume.

       9 and 0
              Decrease/increase volume.

       ( and )
              Adjust audio balance in favor of left/right channel.

       m      Mute sound.

       _      Cycle through the available video tracks.

       #      Cycle through the available audio tracks.

       TAB (MPEG-TS and libavformat only)
              Cycle through the available programs.

       f      Toggle fullscreen (see also --fs).

       T      Toggle stay-on-top (see also --ontop).

       w and e
              Decrease/increase pan-and-scan range.

       o      Toggle OSD states: none / seek / seek + timer / seek + timer + total time.

       d      Toggle   frame   dropping  states:  none  /  skip  display  /  skip  decoding  (see

       v      Toggle subtitle visibility.

       j and J
              Cycle through the available subtitles.

       F      Toggle displaying "forced subtitles".

       x and z
              Adjust subtitle delay by +/- 0.1 seconds.

       V      Toggle     subtitle     VSFilter      aspect      compatibility      mode.      See
              --ass-vsfilter-aspect-compat for more info.

       r and t
              Move subtitles up/down.

       s      Take a screenshot.

       S      Take  a  screenshot,  without  subtitles.  (Whether this works depends on VO driver

       I      Show filename on the OSD.

       P      Show progression bar, elapsed time and total duration on the OSD.

       ! and @
              Seek to the beginning of the previous/next chapter. In most cases, "previous"  will
              actually go to the beginning of the current chapter; see --chapter-seek-threshold.

       D (--vo=vdpau, --vf=yadif only)
              Activate/deactivate deinterlacer.

       A      Cycle through the available DVD angles.

       c      Change YUV colorspace.

       (The  following  keys  are  valid  only  when  using  a  video  output  that  supports the
       corresponding adjustment, or the software equalizer (--vf=eq).)

       1 and 2
              Adjust contrast.

       3 and 4
              Adjust brightness.

       5 and 6
              Adjust gamma.

       7 and 8
              Adjust saturation.

       (The following keys are valid only on OSX.)

       command + 0
              Resize movie window to half its original size.

       command + 1
              Resize movie window to its original size.

       command + 2
              Resize movie window to double its original size.

       command + f
              Toggle fullscreen (see also --fs).

       command + [ and command + ]
              Set movie window alpha.

       (The following keys are valid if you have a keyboard with multimedia keys.)

       PAUSE  Pause.

       STOP   Stop playing and quit.

       PREVIOUS and NEXT
              Seek backward/forward 1 minute.

       (The following keys are only valid if you compiled with TV or DVB input support.)

       h and k
              Select previous/next channel.

       n      Change norm.

       u      Change channel list.

   Mouse Control
       button 3 and button 4
              Seek backward/forward 1 minute.

       button 5 and button 6
              Decrease/increase volume.


       Every flag option has a no-flag counterpart, e.g. the  opposite  of  the  --fs  option  is
       --no-fs. --fs=yes is same as --fs, --fs=no is the same as --no-fs.

       If an option is marked as (XXX only), it will only work in combination with the XXX option
       or if XXX is compiled in.

          The suboption parser (used for example for --ao=pcm suboptions) supports a special kind
          of string-escaping intended for use with external GUIs.

       It has the following format:



                 mpv --ao=pcm:file=%10%C:test.wav test.avi

                 Or in a script:

                 mpv --ao=pcm:file=%`expr length "$NAME"`%"$NAME" test.avi

       Some  care  must  be taken when passing arbitrary paths and filenames to mpv. For example,
       paths starting with - will be interpreted as options. Likewise, if  a  path  contains  the
       sequence  ://, the string before that might be interpreted as protocol prefix, even though
       :// can be part of a legal UNIX path. To avoid problems with arbitrary paths,  you  should
       be sure that absolute paths passed to mpv start with /, and relative paths with ./.

       The name - itself is interpreted as stdin, and will cause mpv to disable console controls.
       (Which makes it suitable for playing data piped to stdin.)

       For paths passed to suboptions, the situation is further complicated by the need to escape
       special  characters.  To  work  this  around,  the path can be additionally wrapped in the
       %n%string_of_length_n syntax (see above).

       Some mpv options interpret paths starting with ~. Currently, the prefix ~~/ expands to the
       mpv  configuration  directory (usually ~/.mpv/).  ~/ expands to the user's home directory.
       (The trailing / is always required.)

   Per-File Options
       When playing multiple files, any option given on the  command  line  usually  affects  all
       files. Example:

          mpv --a file1.mkv --b file2.mkv --c

                                      │File      │ Active options │
                                      │file1.mkv │ --a --b --c    │
                                      │file2.mkv │ --a --b --c    │

       (This is different from MPlayer and mplayer2.)

       Also,  if any option is changed at runtime (via input commands), they are not reset when a
       new file is played.

       Sometimes, it is useful to change options per-file. This can be  achieved  by  adding  the
       special  per-file  markers  --{ and --}. (Note that you must escape these on some shells.)

          mpv --a file1.mkv --b --\{ --c file2.mkv --d file3.mkv --e --\} file4.mkv --f

                                 │File      │ Active options          │
                                 │file1.mkv │ --a --b --f             │
                                 │file2.mkv │ --a --b --f --c --d --e │
                                 │file3.mkv │ --a --b --f --c --d --e │
                                 │file4.mkv │ --a --b --f             │

       Additionally, any file-local option changed at runtime is  reset  when  the  current  file
       stops  playing.  If  option  --c is changed during playback of file2.mkv, it is reset when
       advancing to file3.mkv. This only affects file-local options.  The  option  --a  is  never
       reset here.


   Location and Syntax
       You can put all of the options in configuration files which will be read every time mpv is
       run. The system-wide configuration file 'mpv.conf'  is  in  your  configuration  directory
       (/etc/mpv),  the  user-specific  one  is  ~/.mpv/config.   User-specific  options override
       system-wide options and options given on the command line override either. The  syntax  of
       the  configuration  files is option=<value>; everything after a # is considered a comment.
       Options that work without values can be enabled by setting them to  yes  and  disabled  by
       setting them to no. Even suboptions can be specified in this way.

          Example configuration file

              # Use opengl video output by default.
              # Use quotes for text that can contain spaces:
              status-msg="Time: ${time-pos}"

   Putting Command Line Options into the Configuration File
       Almost  all  command  line options can be put into the configuration file. Here is a small

                             │Option            │ Configuration file entry │
                             │--flagflag                     │
                             │-opt valopt=val                  │
                             │--opt=valopt=val                  │
                             │-opt "has spaces"opt="has spaces"         │

   File-specific Configuration Files
       You can also write file-specific configuration files. If you wish to have a  configuration
       file  for  a  file  called  'movie.avi',  create  a  file  named 'movie.avi.conf' with the
       file-specific options in it and put it in ~/.mpv/. You can also put the configuration file
       in the same directory as the file to be played, as long as you give the --use-filedir-conf
       option (either on the command line or in your global  config  file).  If  a  file-specific
       configuration  file  is  found  in  the  same directory, no file-specific configuration is
       loaded from ~/.mpv. In addition, the --use-filedir-conf option enables  directory-specific
       configuration files.  For this, mpv first tries to load a mpv.conf from the same directory
       as the file played and then tries to load any file-specific configuration.

       To  ease  working  with  different  configurations,  profiles  can  be  defined   in   the
       configuration files. A profile starts with its name in square brackets, e.g. [my-profile].
       All following options will be part of the profile. A description (shown by --profile=help)
       can  be defined with the profile-desc option. To end the profile, start another one or use
       the profile name default to continue with normal options.

          Example mpv profile

              # Use hardware decoding (might break playback of some h264 files)

              profile-desc="profile for dvd:// streams"

              profile-desc="profile for .flv files"



       Screenshots of the currently played file can be taken using the  'screenshot'  input  mode
       command, which is by default bound to the s key. Files named shotNNNN.jpg will be saved in
       the working directory, using the first available number - no files will be overwritten.

       A screenshot will usually contain the unscaled video contents at  the  end  of  the  video
       filter  chain  and  subtitles.  By default, S takes screenshots without subtitles, while s
       includes subtitles.

       The screenshot video filter is not required when using  a  recommended  GUI  video  output
       driver.  It  should  normally  not  be  added to the config file, as taking screenshots is
       handled by the VOs, and adding the screenshot filter will break  hardware  decoding.  (The
       filter  may  still  be  useful  for taking screenshots at a certain point within the video
       chain when using multiple video filters.)


              Specify a priority list of audio decoders to be used, according to their family and
              decoder  name.  Entries  like family:* prioritize all decoders of the given family.
              When determining which decoder to use, the first decoder  that  matches  the  audio
              format  is  selected. If that is unavailable, the next decoder is used. Finally, it
              tries all other decoders that are  not  explicitly  selected  or  rejected  by  the

              - at the end of the list suppresses fallback on other available decoders not on the
              --ad list. + in front of an entry forces the decoder.  Both  of  these  should  not
              normally be used, because they break normal decoder auto-selection!

              - in front of an entry disables selection of the decoder.


                        Prefer the FFmpeg/Libav mp3float decoder over all other mp3 decoders.

                        Always prefer spdif AC3 over FFmpeg/Libav over anything else.

                        List all available decoders.

              Select  the  Dynamic  Range Compression level for AC-3 audio streams.  <level> is a
              float value ranging from 0 to 1, where 0 means no compression and 1 (which  is  the
              default)  means  full  compression (make loud passages more silent and vice versa).
              Values up to 2 are also accepted, but are purely  experimental.  This  option  only
              shows  an  effect  if  the  AC-3  stream  contains  the  required range compression

              Whether to request audio channel downmixing from the decoder (default: yes).   Some
              decoders, like AC-3, AAC and DTS, can remix audio on decoding. The requested number
              of output channels is set with the --channels option.  Useful for playing  surround
              audio on a stereo system.

              Number  of  threads  to  use  for decoding. Whether threading is actually supported
              depends on codec. As of this writing, it's supported for some lossless codecs only.
              0  means  autodetect number of cores on the machine and use that, up to the maximum
              of 16 (default: 1).

              Pass AVOptions to libavcodec 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.

       --ad-spdif-dtshd=<yes|no>, --dtshd, --no-dtshd
              When using DTS passthrough, output any DTS-HD track as-is.  With  ad-spdif-dtshd=no
              (the default), only the DTS Core parts will be output.

              DTS-HD  tracks  can be sent over HDMI but not over the original coax/toslink S/PDIF

              Note: this feature is broken.

              --dtshd and --no-dtshd are deprecated aliases.

              Specify a list of audio filters to apply to the audio stream. See AUDIO FILTERS for
              details  and  descriptions of the available filters.  The option variants --af-add,
              --af-pre, --af-del and --af-clr exist to modify a previously  specified  list,  but
              you should not need these for typical use.

              Select  audio  channel.  auto  selects  the  default,  no disables audio.  See also

              Specify a priority list of audio languages  to  use.  Different  container  formats
              employ  different  language  codes.  DVDs  use ISO 639-1 two-letter language codes,
              Matroska, MPEG-TS and NUT use ISO 639-2 three-letter language codes, while OGM uses
              a free-form identifier. See also --aid.


                 mpv dvd://1 --alang=hu,en
                        Chooses  the  Hungarian language track on a DVD and falls back on English
                        if Hungarian is not available.

                 mpv --alang=jpn example.mkv
                        Plays a Matroska file in Japanese.

              Specify a priority list of audio output drivers to be used. For interactive use one
              would normally specify a single one to use, but in configuration files specifying a
              list of fallbacks may  make  sense.  See  AUDIO  OUTPUT  DRIVERS  for  details  and
              descriptions of available drivers.

       --ar, --no-ar
              Enable/disable AppleIR remote support. Enabled by default.

              Override  movie aspect ratio, in case aspect information is incorrect or missing in
              the file being played. See also --no-aspect.


                 • --aspect=4:3  or --aspect=1.3333--aspect=16:9 or --aspect=1.7777

       --ass, --no-ass
              Render ASS subtitles natively (enabled by default).

              If --no-ass is specified, all tags and style declarations are stripped and  ignored
              on  display.  The  subtitle  renderer  uses  the  font  style  as  specified by the
              --sub-text- options instead.

                 Using --no-ass may lead to incorrect or completely broken rendering  of  ASS/SSA
                 subtitles.  It  can  sometimes be useful to forcibly override the styling of ASS
                 subtitles, but should be avoided in general.

              Override some style or script info parameters.


                 • --ass-force-style=FontName=Arial,Default.Bold=1--ass-force-style=PlayResY=768

                 Using this option may lead to incorrect subtitle rendering.

              Set font hinting type. <type> can be:

              none   no hinting (default)

              light  FreeType autohinter, light mode

              normal FreeType autohinter, normal mode

              native font native hinter


                        Enabling hinting can lead  to  mispositioned  text  (in  situations  it's
                        supposed  to match up with video background), or reduce the smoothness of
                        animations with some badly authored ASS scripts. It is recommended to not
                        use this option, unless really needed.

              Set line spacing value for SSA/ASS renderer.

              Set the text layout engine used by libass.

              simple uses Fribidi only, fast, doesn't render some languages correctly

                     uses HarfBuzz, slower, wider language support

              complex  is  the  default.  If libass hasn't been compiled against HarfBuzz, libass
              silently reverts to simple.

              Load all SSA/ASS styles found in the specified file and use them for rendering text
              subtitles.  The  syntax  of the file is exactly like the [V4 Styles] / [V4+ Styles]
              section of SSA/ASS.

                 Using this option may lead to incorrect subtitle rendering.

              Control whether user style overrides should be applied.

              yes    Apply all the --ass-* style override options. Changing the default  for  any
                     of these options can lead to incorrect subtitle rendering (default).

              no     Render subtitles as forced by subtitle scripts.

              Enables placing toptitles and subtitles in black borders when they are available.

              Stretch  SSA/ASS  subtitles  when  playing anamorphic videos for compatibility with
              traditional VSFilter behavior. This switch has no effect when the video  is  stored
              with square pixels.

              The  renderer  historically  most  commonly  used for the SSA/ASS subtitle formats,
              VSFilter, had questionable behavior that resulted in subtitles being stretched  too
              if  the  video  was  stored in anamorphic format that required scaling for display.
              This behavior is  usually  undesirable  and  newer  VSFilter  versions  may  behave
              differently.  However,  many  existing  scripts  compensate  for  the stretching by
              modifying things in the opposite direction.  Thus, if such  scripts  are  displayed
              "correctly",  they  will  not appear as intended.  This switch enables emulation of
              the old VSFilter behavior (undesirable but expected by many existing scripts).

              Enabled by default.

              Scale \blur tags by video resolution  instead  of  script  resolution  (enabled  by
              default).  This is bug in VSFilter, which according to some, can't be fixed anymore
              in the name of compatibility.

              Note that this uses the actual video resolution for calculating  the  offset  scale
              factor, not what the video filter chain or the video output use.

              Mangle  colors  like  (xy-)vsfilter do (default: basic). Historically, VSFilter was
              not colorspace aware. This was no problem as long as the  colorspace  used  for  SD
              video  (BT.601) was used. But when everything switched to HD (BT.709), VSFilter was
              still converting RGB colors to BT.601, rendered them  into  the  video  frame,  and
              handled  the  frame  to  the video output, which would use BT.709 for conversion to
              RGB. The result were mangled subtitle colors. Later on, bad hacks were added on top
              of the ASS format to control how colors are to be mangled.

              basic  Handle  only BT.601->BT.709 mangling, if the subtitles seem to indicate that
                     this is required (default).

              full   Handle the full YCbCr Matrix header with all video colorspaces supported  by
                     libass  and mpv. This might lead to bad breakages in corner cases and is not
                     strictly needed for compatibility (hopefully), which  is  why  this  is  not

                     Force  BT.601->BT.709  mangling,  regardless  of  subtitle  headers or video

              no     Disable color mangling completely. All colors are RGB.

              Choosing anything other than no will make the subtitle color depend  on  the  video
              colorspace,  and it's for example in theory not possible to reuse a subtitle script
              with another video file. The --ass-style-override option doesn't  affect  how  this
              option is interpreted.

              Use  this  audio  demuxer type when using --audiofile. Use a '+' before the name to
              force it; this will  skip  some  checks.  Give  the  demuxer  name  as  printed  by

              Setting  this  option  to  attachment (default) will display image attachments when
              playing audio files. It will display the first image found, and  additional  images
              are available as video tracks.

              Setting  this  option  to  no disables display of video entirely when playing audio

              This option has no influence on files with normal video tracks.

              Play audio from an external file (WAV, MP3 or Ogg Vorbis) while viewing a movie.

              Enables caching for the stream used by --audiofile, using the specified  amount  of

              Set  the  initial  window size to a maximum size specified by WxH, without changing
              the window's aspect ratio. The size is measured  in  pixels,  or  if  a  number  is
              followed by a percentage sign (%), in percents of the screen size.

              This  option  never  changes  the  aspect  ratio of the window. If the aspect ratio
              mismatches, the window's size is reduced until it fits into the specified size.

              Window position is not taken into account, nor is it modified by this  option  (the
              window  manager  still  may  place  the  window differently depending on size). Use
              --geometry to change the window  position.  Its  effects  are  applied  after  this

              See --geometry for details how this is handled with multi-monitor setups.

              Use  --autofit-larger  instead  if  you  just want to limit the maximum size of the
              window, rather than always forcing a window size.

              Use --geometry if you want to force both window width  and  height  to  a  specific

                 Generally only supported by GUI VOs. Ignored for encoding.


                 70%    Make the window width 70% of the screen size, keeping aspect ratio.

                 1000   Set the window width to 1000 pixels, keeping aspect ratio.

                        Make the window as large as possible, without being wider than 70% of the
                        screen width, or higher than 60% of the screen height.

              This option behaves exactly like --autofit, except the window size is only  changed
              if the window would be larger than the specified size.


                        If  the video is larger than 90% of the screen width or 80% of the screen
                        height, make the window smaller until either its  width  is  90%  of  the
                        screen, or its height is 80% of the screen.

       --autosub, --no-autosub
              Load additional subtitle files matching the video filename. Enabled by default. See
              also --autosub-match.

              Adjust matching fuzziness when searching for subtitles:

              exact  exact match

              fuzzy  Load all subs containing movie name.

              all    Load all subs in the current and --sub-paths directories.

              (default: exact)

              Gradually adjusts the A/V sync  based  on  audio  delay  measurements.   Specifying
              --autosync=0,  the  default,  will cause frame timing to be based entirely on audio
              delay measurements. Specifying --autosync=1 will  do  the  same,  but  will  subtly
              change  the  A/V  correction  algorithm. An uneven video framerate in a movie which
              plays fine with --no-audio can often be helped by setting this to an integer  value
              greater  than 1. The higher the value, the closer the timing will be to --no-audio.
              Try --autosync=30 to smooth out problems with sound drivers which do not  implement
              a  perfect  audio  delay  measurement.  With  this value, if large A/V sync offsets
              occur, they will only take about 1 or 2  seconds  to  settle  out.  This  delay  in
              reaction  time to sudden A/V offsets should be the only side-effect of turning this
              option on, for all sound drivers.

              Do not sleep when outputting video frames. Useful for  benchmarks  when  used  with

              Some  Blu-ray  discs  contain scenes that can be viewed from multiple angles.  This
              option tells mpv which angle to use (default: 1).

              (Blu-ray only) Specify the Blu-ray disc location. Must be a directory with  Blu-ray


                        mpv bd:// --bluray-device=/path/to/bd/

       --border, --no-border
              Play  movie  with  window  border and decorations. Since this is on by default, use
              --no-border to disable the standard window decorations.

              Adjust the brightness of the video signal (default: 0). Not supported by all  video
              output drivers.

              Set the size of the cache in kilobytes, disable it with no, or automatically enable
              it if needed with auto (default: auto).  With  auto,  the  cache  will  usually  be
              enabled for network streams, using the size set by --cache-default.

              May  be  useful  when  playing  files  from  slow media, but can also have negative
              effects, especially with file formats that require a lot of seeking, such as mp4.

              Note that half the cache size will be used to allow fast seeking back. This is also
              the reason why a full cache is usually reported as 50% full. The cache fill display
              does not include the part of the cache reserved for seeking  back.  Likewise,  when
              starting a file the cache will be at 100%, because no space is reserved for seeking
              back yet.

              Set the size of the cache in  kilobytes  (default:  320  KB).  Using  no  will  not
              automatically  enable  the cache e.g. when playing from a network stream. Note that
              using --cache will always override this option.

              If the cache percentage goes below the specified value, pause and  wait  until  the
              percentage set by --cache-min is reached, then resume playback (default: 10). If no
              is specified, this behavior is disabled.

              When the player is paused this way, the status  line  shows  Buffering  instead  of
              Paused, and the OSD uses a clock symbol instead of the normal paused symbol.

              Playback  will start when the cache has been filled up to <percentage> of the total
              (default: 20).

              If a seek is to be made to a position within <percentage> of the  cache  size  from
              the  current  position,  mpv  will wait for the cache to be filled to this position
              rather than performing a stream seek (default: 50).

              This matters for small forward seeks. With slow streams (especially  http  streams)
              there  is  a  tradeoff  between skipping the data between current position and seek
              destination, or performing an actual seek. Depending on the  situation,  either  of
              these might be slower than the other method.  This option allows control over this.

              This option can be used to tune the CD Audio reading feature of mpv.

              Available options are:

                     Set CD spin speed.

                     Set  paranoia  level. Values other than 0 seem to break playback of anything
                     but the first track.

                     0      disable checking (default)

                     1      overlap checking only

                     2      full data correction and verification

                     Use specified generic SCSI device.

                     Set atomic read size.

                     Force minimum overlap search during verification to <value> sectors.

                     Assume that the beginning offset of track 1 as reported in the TOC  will  be
                     addressed  as  LBA  0.  Some  discs  need  this for getting track boundaries

                     Add <value> sectors to the values reported when addressing tracks.   May  be

                     (Never) accept imperfect data reconstruction.

              Specify the CD-ROM device (default: /dev/cdrom).

              Request  the  number  of  playback  channels  (default: 2). mpv asks the decoder to
              decode the audio into as many channels as specified. Then it is up to  the  decoder
              to fulfill the requirement. This is usually only important when playing videos with
              AC-3, AAC or DTS audio. In that  case  libavcodec  downmixes  the  audio  into  the
              requested number of channels if possible.

              The  --channels option either takes a channel number or an explicit channel layout.
              Channel numbers refer to default layouts, e.g. 2 channels refer to stereo, 6 refers
              to 5.1.

              See  --channels=help  output  for  defined default layouts. This also lists speaker
              names, which can be used to express arbitrary channel layouts  (e.g.  fl-fr-lfe  is

                 Currently,  this  option  is  not very useful. The main effect of this option is
                 that automatic stereo downmixing is disabled. It depends mainly on the  selected
                 audio  output  and  the  associated  audio  subsystem how playback of files with
                 surround audio will behave.

              Specify which chapter to start playing at. Optionally specify which chapter to  end
              playing at. Also see --start.

              Threshold  for  merging  almost  consecutive  ordered chapter parts in milliseconds
              (default: 100). Some Matroska files with ordered chapters have  inaccurate  chapter
              end timestamps, causing a small gap between the end of one chapter and the start of
              the next one when they should match.  If the end of one playback part is less  than
              the  given  threshold  away  from the start of the next one then keep playing video
              normally over the chapter change instead of doing a seek.

              Distance in seconds from the beginning of a chapter within which a backward chapter
              seek  will  go  to  the  previous  chapter  (default:  5.0). Past this threshold, a
              backward chapter seek will go to the beginning of the current  chapter  instead.  A
              negative value means always go back to the previous chapter.

              Controls  the  YUV  to  RGB  color  space  conversion when playing video. There are
              various standards. Normally, BT.601 should be used for SD video, and BT.709 for  HD
              video.  (This  is done by default.) Using incorrect color space results in slightly
              under or over saturated and shifted colors.

              The color space conversion  is  additionally  influenced  by  the  related  options
              --colormatrix-input-range and --colormatrix-output-range.

              These  options  are  not  always supported. Different video outputs provide varying
              degrees of support. The opengl and vdpau video output drivers  usually  offer  full
              support.  The xv output can set the color space if the system video driver supports
              it, but not input and output levels. The scale video  filter  can  configure  color
              space  and  input levels, but only if the output format is RGB (if the video output
              driver supports RGB output, you can force this with -vf scale,format=rgba).

              If this option is set to auto (which is the default), the video's color space  flag
              will   be  used.  If  that  flag  is  unset,  the  color  space  will  be  selected
              automatically. This is done using a simple heuristic that attempts  to  distinguish
              SD  and  HD video. If the video is larger than 1279x576 pixels, BT.709 (HD) will be
              used; otherwise BT.601 (SD) is selected.

              Available color spaces are:

              auto   automatic selection (default)

              BT.601 ITU-R BT.601 (SD)

              BT.709 ITU-R BT.709 (HD)


              YUV color levels used with YUV to RGB conversion. This  option  is  only  necessary
              when  playing  broken  files which do not follow standard color levels or which are
              flagged wrong. If the video does not specify its color range, it is assumed  to  be
              limited range.

              The same limitations as with --colormatrix apply.

              Available color ranges are:

              auto   automatic selection (normally limited range) (default)

                     limited range (16-235 for luma, 16-240 for chroma)

              full   full range (0-255 for both luma and chroma)

              RGB  color levels used with YUV to RGB conversion. Normally, output devices such as
              PC monitors use full range color levels.  However,  some  TVs  and  video  monitors
              expect  studio RGB levels. Providing full range output to a device expecting studio
              level input results in crushed blacks and whites, the reverse in  dim  grey  blacks
              and dim whites.

              The same limitations as with --colormatrix apply.

              Available color ranges are:

              auto   automatic selection (equals to full range) (default)

                     limited range (16-235 per component), studio levels

              full   full range (0-255 per component), PC levels

                 It  is  advisable  to  use your graphics driver's color range option instead, if

       --consolecontrols, --no-consolecontrols
              --no-consolecontrols prevents the player from  reading  key  events  from  standard
              input.  Useful when reading data from standard input. This is automatically enabled
              when - is found on the command line. There are situations where you have to set  it
              manually, e.g. if you open /dev/stdin (or the equivalent on your system), use stdin
              in a playlist or intend to read from stdin later on via the  loadfile  or  loadlist
              slave commands.

              Adjust  the  contrast  of the video signal (default: 0). Not supported by all video
              output drivers.

       --cookies, --no-cookies
              (network only) Support cookies when making HTTP requests. Disabled by default.

              (network only) Read HTTP cookies from <filename>. The file  is  assumed  to  be  in
              Netscape format.

       --correct-pts, --no-correct-pts
              --no-correct-pts  switches  mpv  to a mode where video timing is determined using a
              fixed framerate value (either using the --fps option, or using  file  information).
              Sometimes,  files  with  very broken timestamps can be played somewhat well in this
              mode. Note that video filters, subtitle rendering and audio synchronization can  be
              completely broken in this mode.

              Make  mouse  cursor automatically hide after given number of milliseconds.  no will
              disable cursor autohide. always means the cursor will stay hidden.

              If this option is given,  the  cursor  is  always  visible  in  windowed  mode.  In
              fullscreen mode, the cursor is shown or hidden according to --cursor-autohide.

              Audio  delay  in  seconds (positive or negative float value). Negative values delay
              the audio, and positive values delay the video.

              Enable or disable interlacing (default: auto, which usually means no).   Interlaced
              video  shows ugly comb-like artifacts, which are visible on fast movement. Enabling
              this typically inserts the yadif video filter in order to deinterlace the video, or
              lets the video output apply deinterlacing if supported.

              This  behaves  exactly  like  the  deinterlace  input  property  (usually mapped to

              auto is  a  technicality.  Strictly  speaking,  the  default  for  this  option  is
              deinterlacing  disabled,  but  the  auto  case  is needed if yadif was added to the
              filter chain manually with --vf. Then the core shouldn't disable deinterlacing just
              because the --deinterlace was not set.

              Force  demuxer  type.  Use  a  '+' before the name to force it; this will skip some
              checks. Give the demuxer name as printed by --demuxer=help.

              Maximum length in seconds to analyze the stream properties.

              Minimum required libavformat probe score. Lower values will require less data to be
              loaded (makes streams start faster), but makes file format detection less reliable.
              Can be used to  force  auto-detected  libavformat  demuxers,  even  if  libavformat
              considers the detection not reliable enough. (Default: 26.)

              Allow deriving the format from the HTTP MIME type (default: yes). Set this to no in
              case playing things from HTTP mysteriously fails, even though the same  files  work
              from local disk.

              This is default in order to reduce latency when opening HTTP streams.

              Force a specific libavformat demuxer.

              Mode  for  deriving  missing  packet  PTS  values  from  packet  DTS.  lavf enables
              libavformat's genpts option. no disables it. This used to be  enabled  by  default,
              but  then  it  was  deemed  as  not  needed anymore.  Enabling this might help with
              timestamp problems, or make them worse.

              Pass AVOptions to libavformat demuxer.

              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 mpv options.



              Maximum amount of data to probe during the detection phase. In the case of  MPEG-TS
              this value identifies the maximum number of TS packets to scan.

              Size of the stream read buffer allocated for libavformat in bytes (default: 32768).
              Lowering the size could lower latency. Note that libavformat might  reallocate  the
              buffer internally, or not fully use all of it.

              Encryption  key  the  demuxer  should  use.  This is the raw binary data of the key
              converted to a hexadecimal string.

       --demuxer-mkv-subtitle-preroll, --mkv-subtitle-preroll
              Try harder to show embedded soft subtitles when seeking somewhere. Normally, it can
              happen  that the subtitle at the seek target is not shown due to how some container
              file formats are designed. The subtitles appear only if seeking before  or  exactly
              to  the  position a subtitle first appears. To make this worse, subtitles are often
              timed to appear a very small amount before the  associated  video  frame,  so  that
              seeking to the video frame typically does not demux the subtitle at that position.

              Enabling  this  option  makes  the demuxer start reading data a bit before the seek
              target, so that subtitles appear correctly. Note that this  makes  seeking  slower,
              and is not guaranteed to always work. It only works if the subtitle is close enough
              to the seek target.

              Works with the internal Matroska demuxer only.  Always  enabled  for  absolute  and
              hr-seeks, and this option changes behavior with relative or imprecise seeks only.

              See also --hr-seek-demuxer-offset option. This option can achieve a similar effect,
              but only if hr-seek is active. It works with any demuxer, but  makes  seeking  much
              slower, as it has to decode audio and video data instead of just skipping over it.

              --mkv-subtitle-preroll is a deprecated alias.

              Number  of  channels  (or  channel  layout) if --demuxer=rawaudio is used (default:

              Sample format for --demuxer=rawaudio (default: s16le).

              Sample rate for --demuxer=rawaudio (default: 44KHz).

              Rate in frames per second for --demuxer=rawvideo (default: 25.0).

       --demuxer-rawvideo-w=<value>, --demuxer-rawvideo-h=<value>
              Image dimension in pixels for --demuxer=rawvideo.


                        Play a raw YUV sample:

                     mpv sample-720x576.yuv --demuxer=rawvideo \

              Colorspace (fourcc) in hex or string for --demuxer=rawvideo (default: YV12).

              Colorspace   by    internal    video    format    for    --demuxer=rawvideo.    Use
              --demuxer-rawvideo-mp-format=help for a list of possible formats.

              Set   the   video  codec  instead  of  selecting  the  rawvideo  codec  when  using
              --demuxer=rawvideo. This uses the same values as codec names in --vd (but  it  does
              not accept decoder names).

              Frame size in bytes when using --demuxer=rawvideo.

              Time  in milliseconds to recognize two consecutive button presses as a double-click
              (default: 300).

              Pass the following parameters to the DVB input module, in  order  to  override  the
              default ones:

                     Specifies using card number 1-4 (default: 1).

                     Instructs  mpv  to  read  the  channels  list  from  <filename>.  Default is
                     ~/.mpv/channels.conf.{sat,ter,cbl,atsc}  (based  on  your  card   type)   or
                     ~/.mpv/channels.conf as a last resort.

                     Maximum  number  of  seconds  to wait when trying to tune a frequency before
                     giving up (default: 30).

              Specify the DVD device or .iso filename (default: /dev/dvd). You can also specify a
              directory  that  contains  files  previously  copied directly from a DVD (with e.g.


                        mpv dvd:// --dvd-device=/path/to/dvd/

              Try to limit DVD speed (default: 0, no change). DVD base speed is 1385 kB/s, so  an
              8x  drive  can  read  at speeds up to 11080 kB/s. Slower speeds make the drive more
              quiet. For watching DVDs, 2700 kB/s should be quiet and fast enough. mpv resets the
              speed  to  the  drive default value on close.  Values of at least 100 mean speed in
              kB/s. Values less than 100 mean multiples of 1385 kB/s, i.e. --dvd-speed=8  selects
              11080 kB/s.

                 You need write access to the DVD device to change the speed.

              Some  DVDs  contain  scenes  that  can be viewed from multiple angles.  This option
              tells mpv which angle to use (default: 1).

              (Matroska files only) Specify the edition (set of chapters) to use, where 0 is  the
              first.  If set to auto (the default), mpv will choose the first edition declared as
              a default, or if there is no default, the first edition defined.

       --embeddedfonts, --no-embeddedfonts
              Use fonts embedded in Matroska container files and ASS scripts (default:  enabled).
              These fonts can be used for SSA/ASS subtitle rendering (--ass option).

              Stop  at  given  absolute  time.  Use  --length  if  the time should be relative to
              --start. See --start for valid option values and examples.

              Set first field for interlaced content. Useful for deinterlacers  that  double  the
              framerate: --vf=yadif=1 and --vo=vdpau:deint.

              auto   (default)  If  the  decoder  does not export the appropriate information, it
                     falls back on top (top field first).

              top    top field first

              bottom bottom field first

       --no-fixed-vo, --fixed-vo
              --no-fixed-vo enforces closing and reopening the video window  for  multiple  files
              (one (un)initialization for each file).

              Change  how  some  video  outputs  render the OSD and text subtitles. This does not
              change appearance of the subtitles and only has performance implications.  For  VOs
              which  support  native  ASS  rendering  (like vdpau, opengl, direct3d), this can be
              slightly faster or slower, depending on GPU drivers and hardware.  For  other  VOs,
              this just makes rendering slower.

              Create  a  video  output  window even if there is no video. This can be useful when
              pretending that mpv is a GUI application. Currently, the window always has the size
              640x480, and is subject to --geometry, --autofit, and similar options.

                 The  window  is  created  only after initialization (to make sure default window
                 placement still works if the video size is  different  from  the  --force-window
                 default  window  size).  This  can  be  a problem if initialization doesn't work
                 perfectly, such as when opening URLs with bad  network  connection,  or  opening
                 broken video files.

              Forcefully  move  mpv's video output window to default location whenever there is a
              change in video parameters, video stream or file.  This  used  to  be  the  default
              behavior. Currently only affects X11 VOs.

              Display  only  forced  subtitles  for  the  DVD  subtitle  stream  selected by e.g.

              Force index rebuilding. Useful for files with broken index (A/V desync, etc).  This
              will enable seeking in files where seeking was not possible.

                 This  option  only works if the underlying media supports seeking (i.e. not with
                 stdin, pipe, etc).

              Select the sample format used for output from the audio filter layer to  the  sound
              card. The values that <format> can adopt are listed below in the description of the
              format audio filter.

              Override video framerate. Useful if the original value is wrong or missing.

                 Works in --no-correct-pts mode only.

              Skip displaying some frames to maintain A/V sync on slow systems. Video filters are
              not  applied  to such frames. For B-frames even decoding is skipped completely. May
              produce unwatchably choppy output. With hard, decoding and output of any frame  can
              be skipped, and will lead to an even worse playback experience.

                 Practical use of this feature is questionable. Disabled by default.

              Play/convert  only  first  <number>  video  frames,  then quit. For audio only, run
              <number> iteration of the playback loop, which is most likely not  what  you  want.
              (This  behavior  also  applies to the corner case when there are fewer video frames
              than <number>, and audio is longer than the video.)

       --fullscreen, --fs
              Fullscreen playback.

              In multi-monitor configurations (i.e. a single desktop that spans  across  multiple
              displays),  this  option tells mpv which screen to go fullscreen to.  If default is
              provided mpv will fallback on using  the  behaviour  depending  on  what  the  user
              provided with the screen option.

                 Note (X11)

                        This  option  does  not  work  properly with all window managers.  all in
                        particular  will  usually  only   work   with   --fstype=-fullscreen   or
                        --fstype=none, and even then only with some window managers.

                 Note (OS X)

                        all does not work on OSX and will behave like current.

              See also --screen.

              OBSOLETE,  use the --fs option.  Try this option if you still experience fullscreen

              (X11 only) Specify a priority list of fullscreen modes to be used. You  can  negate
              the  modes  by  prefixing  them  with  '-'.  If  you  experience  problems like the
              fullscreen window being covered by other windows, try using a different order.

                 See --fstype=help for a full list of available modes.

              The available types are:

              above  Use the _NETWM_STATE_ABOVE hint if available.

              below  Use the _NETWM_STATE_BELOW hint if available.

                     Use the _NETWM_STATE_FULLSCREEN hint if available.

              layer  Use the _WIN_LAYER hint with the default layer.

                     Use the _WIN_LAYER hint with the given layer number.

              netwm  Force NETWM style.

              none   Clear the list of modes; you can add modes to enable afterward.

                     Use _NETWM_STATE_STAYS_ON_TOP hint if available.


                        Default order, will be used as a fallback  if  incorrect  or  unsupported
                        modes are specified.

                        Fixes fullscreen switching on OpenBox 1.x.

              (OS X only) Use OS X Mission Control's fullscreen feature instead of the custom one
              provided by mpv. This can potentially break a lot of stuff like --geometry  and  is
              disabled  by  default.  On  the  other  hand  it  provides  a more 'OS X-like' user

              Adjust the gamma of the video signal (default:  0).  Not  supported  by  all  video
              output drivers.

              Try  to  play consecutive audio files with no silence or disruption at the point of
              file change. This feature is implemented in a simple manner  and  relies  on  audio
              output device buffering to continue playback while moving from one file to another.
              If playback of the new file starts slowly, for example because it is played from  a
              remote  network  location or because you have specified cache settings that require
              time for the initial cache fill,  then  the  buffered  audio  may  run  out  before
              playback of the new file can start.

                 The  audio  device is opened using parameters chosen according to the first file
                 played and is then kept open for gapless playback. This means that if the  first
                 file  for  example  has  a  low  sample  rate,  then the following files may get
                 resampled to the same low sample rate, resulting in reduced  sound  quality.  If
                 you play files with different parameters, consider using options such as --srate
                 and --format to explicitly select what the shared output format will be.

       --geometry=<[W[xH]][+-x+-y]>, --geometry=<x:y>
              Adjust the initial window position or size. W and H set the window size in  pixels.
              x and y set the window position, measured in pixels from the top-left corner of the
              screen to the top-left corner of the image being displayed. If  a  percentage  sign
              (%) is given after the argument, it turns the value into a percentage of the screen
              size in that direction.  Positions  are  specified  similar  to  the  standard  X11
              --geometry option format, in which e.g. +10-50 means "place 10 pixels from the left
              border and 50 pixels from the lower border" and "--20+-10" means "place  20  pixels
              beyond the right and 10 pixels beyond the top border".

              If an external window is specified using the --wid option, this option is ignored.

              The coordinates are relative to the screen given with --screen for the video output
              drivers that fully support --screen.

                 Generally only supported by GUI VOs. Ignored for encoding.

                 Note (X11)

                        This option does not work properly with all window managers.


                 50:40  Places the window at x=50, y=40.

                        Places the window in the middle of the screen.

                        Places the window at the bottom right corner of the screen.

                 50%    Sets the window width to half the screen width. Window height is  set  so
                        that the window has the video aspect ratio.

                        Forces  the  window width and height to half the screen width and height.
                        Will show black borders to compensate for the video aspect  ration  (with
                        most VOs and without --no-keepaspect).

                        Sets  the  window  to  half the screen widths, and positions it 10 pixels
                        below/left of the top left corner of the screen.

              See also --autofit and --autofit-larger for fitting the window into  a  given  size
              without changing aspect ratio.

              Command that is executed every 30 seconds during playback via system() - i.e. using
              the  shell.  The  time  between  the  commands   can   be   customized   with   the
              --heartbeat-interval option. The command is not run while playback is paused.

                 mpv  uses this command without any checking. It is your responsibility to ensure
                 it does not cause security problems (e.g. make sure to use full paths if "."  is
                 in  your  path like on Windows). It also only works when playing video (i.e. not
                 with --no-video but works with -vo=null).

              This can be "misused" to disable screensavers that do not support the proper X  API
              (see also --stop-screensaver). If you think this is too complicated, ask the author
              of  the  screensaver  program  to  support  the  proper  X  APIs.  Note  that   the
              --stop-screensaver does not influence the heartbeat code at all.

                 Example for xscreensaver

                        mpv --heartbeat-cmd="xscreensaver-command -deactivate" file

                 Example for GNOME screensaver

                        mpv --heartbeat-cmd="gnome-screensaver-command -p" file

              Time between --heartbeat-cmd invocations in seconds (default: 30).

                 This does not affect the normal screensaver operation in any way.

       --help Show short summary of options.

              Select  when  to  use  precise  seeks that are not limited to keyframes. Such seeks
              require decoding video from the previous keyframe up to the target position and  so
              can  take  some  time  depending  on  decoding performance. For some video formats,
              precise seeks are disabled. This option selects  the  default  choice  to  use  for
              seeks;  it is possible to explicitly override that default in the definition of key
              bindings and in slave mode commands.

              no     Never use precise seeks.

                     Use precise seeks if the seek is to an absolute position in the  file,  such
                     as  a  chapter seek, but not for relative seeks like the default behavior of
                     arrow keys (default).

              yes    Use precise seeks whenever possible.

              This option exists to work around failures to do precise seeks  (as  in  --hr-seek)
              caused  by bugs or limitations in the demuxers for some file formats. Some demuxers
              fail to seek to a keyframe before the given  target  position,  going  to  a  later
              position  instead. The value of this option is subtracted from the time stamp given
              to the demuxer. Thus, if you set this option to 1.5 and try to do a precise seek to
              60  seconds,  the demuxer is told to seek to time 58.5, which hopefully reduces the
              chance that it erroneously goes to some time later than 60 seconds. The downside of
              setting  this  option  is  that  precise  seeks become slower, as video between the
              earlier demuxer position and the real target may be unnecessarily decoded.

              Set custom HTTP fields when accessing HTTP stream.


                     mpv --http-header-fields='Field1: value1','Field2: value2' \

                 Will generate HTTP request:

                     GET / HTTP/1.0
                     Host: localhost:1234
                     User-Agent: MPlayer
                     Icy-MetaData: 1
                     Field1: value1
                     Field2: value2
                     Connection: close

              Adjust the hue of the video signal (default: 0). You can get a colored negative  of
              the image with this option. Not supported by all video output drivers.

              Specify  the  hardware video decoding API that should be used if possible.  Whether
              hardware decoding is actually done depends on the video codec. If hardware decoding
              is not possible, mpv will fall back on software decoding.

              <api> can be one of the following:

              no     always use software decoding (default)

              auto   see below

              vdpau  requires --vo=vdpau or --vo=opengl (Linux only)

              vaapi  requires --vo=opengl or --vo=vaapi (Linux with Intel GPUs only)

                     copies video back into system RAM (Linux with Intel GPUs only)

              vda    requires --vo=opengl or --vo=corevideo (OSX only)

              auto  tries  to  automatically  enable  hardware decoding using the first available
              method. This still depends what VO you are using. For example, if you are not using
              --vo=vdpau,  vdpau  decoding  will  never  be enabled.  Also note that if the first
              found method doesn't actually work, it will always fall back to software  decoding,
              instead of trying the next method.

              The  vaapi-copy  function  allows you to use vaapi with any VO. Because this copies
              the decoded video back to system RAM, it's quite inefficient.

                 When using this switch, hardware decoding is still only done  for  some  codecs.
                 See --hwdec-codecs to enable hardware decoding for more codecs.

              Allow  hardware  decoding  for  a  given list of codecs only. The special value all
              always allows all codecs.

              You can get the list of allowed codecs with mpv --vd=help. Remove the prefix,  e.g.
              instead of lavc:h264 use h264.

              By default this is set to h264,vc1,wmv3.

              This  is  usually  only  needed  with  broken  GPUs,  where  a codec is reported as
              supported, but decoding causes more problems than it solves.


                 mpv --hwdec=vdpau --vo=vdpau --hwdec-codecs=h264,mpeg2video
                        Enable vdpau decoding for h264 and mpeg2 only.

              Deprecated. Use TOOLS/

       --idle Makes mpv wait idly instead of quitting when there is  no  file  to  play.   Mostly
              useful  in slave mode, where mpv can be controlled through input commands (see also

       --idx  Rebuilds index of files if no  index  was  found,  allowing  seeking.  Useful  with
              broken/incomplete  downloads or badly created files. Now this is done automatically
              by the demuxers used for most video formats, meaning that this switch has no effect
              in the typical case. See also --forceidx.

                 This  option  only works if the underlying media supports seeking (i.e. not with
                 stdin, pipe, etc).

              Specify configuration file to be parsed after the default ones.

       --initial-audio-sync, --no-initial-audio-sync
              When starting a video file or after events such as seeking,  mpv  will  by  default
              modify  the  audio  stream  to  make  it start from the same timestamp as video, by
              either inserting silence at the start or cutting away the first samples.  Disabling
              this  option  makes  the player behave like older mpv versions did: video and audio
              are both started immediately even if their start timestamps differ, and then  video
              timing is gradually adjusted if necessary to reach correct synchronization later.

              Specify input configuration file other than the default ~/.mpv/input.conf.

              Delay in milliseconds before we start to autorepeat a key (0 to disable).

              Number of key presses to generate per second on autorepeat.

              Disable mpv default (builtin) key bindings.

              Prints all keys that can be bound to commands.

              Prints all commands that can be bound to keys.

              Specifies the joystick device to use (default: /dev/input/js0).

              Read  commands  from  the  given  file.  Mostly  useful  with  a  FIFO.   See  also

                 When the given file is a FIFO mpv opens both ends, so you can  do  several  echo
                 "seek 10" > mp_pipe and the pipe will stay valid.

              Input  test  mode.  Instead of executing commands on key presses, mpv will show the
              keys and the bound commands on the OSD. Has to be used with a dummy video, and  the
              normal  ways to quit the player will not work (key bindings that normally quit will
              be shown on OSD only, just like any other binding). See INPUT.CONF.

       --joystick, --no-joystick
              Enable/disable joystick support. Disabled by default.

       --no-keepaspect, --keepaspect
              --no-keepaspect will always stretch the video to window size, and will disable  the
              window  manager  hints  that force the window aspect ratio.  (Ignored in fullscreen

              Do not terminate when playing or seeking beyond the  end  of  the  file.   Instead,
              pause the player. When trying to seek beyond end of the file, the player will pause
              at an arbitrary playback position (or, in corner cases, not redraw  the  window  at

                 This  option  is  not  respected  when  using --frames, --end, --length, or when
                 passing a chapter range to --chapter.  Explicitly skipping to the next  file  or
                 skipping  beyond  the  last  chapter  will  terminate  playback as well, even if
                 --keep-open is given.

              Specify the size of the FIFO that buffers key events (default: 7).  If  it  is  too
              small  some events may be lost. The main disadvantage of setting it to a very large
              value is that if you hold down a key triggering some particularly slow command then
              the player may be unresponsive while it processes all the queued commands.

       --length=<relative time>
              Stop  after  a given time relative to the start time.  See --start for valid option
              values and examples.

       --lirc, --no-lirc
              Enable/disable LIRC support. Enabled by default.

              (LIRC only) Specifies a configuration file for LIRC (default: ~/.lircrc).

              Prints all available options.

              Print a list of the available properties.

              Normally, something like mpv playlist.m3u won't load the playlist. This is  because
              the playlist code is unsafe. (This is the same in all other variations of MPlayer.)

              See --playlist for details.

              Note:  this option will allow opening playlists using the playlist special demuxer.
              The --playlist uses different code, and supports more  playlist  formats  than  the
              playlist  demuxer.  This means that for now, the --playlist option should always be
              used if you intend to open playlists.  Background:  the  special  demuxer  contains
              newly  written  code, while the --playlist option uses the old MPlayer code. Adding
              support for more playlist formats to the special demuxer is work in  progress,  and
              eventually the old code should disappear.

              Loops playback N times. A value of 1 plays it one time (default), 2 two times, etc.
              inf means forever. no is the same as 1 and disables looping. If several  files  are
              specified on command line, the entire playlist is looped.

              Load  a  Lua  script.  You can load multiple scripts by separating them with commas

              Maximum A-V sync correction per frame (in seconds)

       --media-keys, --no-media-keys
              OSX only: Enabled by default. Enables/disable media keys support.

              Pretend that all files passed to mpv are concatenated into a single, big file. This
              uses timeline/EDL support internally. Note that this won't work for ordered chapter
              files or quvi-resolved URLs (such as youtube links).

              This option is interpreted at program start, and doesn't affect for  example  files
              or playlists loaded with the loadfile or loadlist commands.

              Used when decoding from multiple PNG or JPEG files with mf://.

              Available options are:

                     output fps (default: 1)

                     input file type (available: jpeg, png, tga, sgi)

              Set the aspect ratio of your monitor or TV screen. A value of 0 disables a previous
              setting (e.g. in the config file). Overrides the  --monitorpixelaspect  setting  if

              See also --monitorpixelaspect and --aspect.


                 • --monitoraspect=4:3  or --monitoraspect=1.3333--monitoraspect=16:9 or --monitoraspect=1.7777

              Set the aspect of a single pixel of your monitor or TV screen (default: 1). A value
              of 1 means square pixels (correct for (almost?) all LCDs). See also --monitoraspect
              and --aspect.

       --mouse-movements, --no-mouse-movements
              Permit mpv to receive pointer events reported by the video output driver. Necessary
              to select the buttons in DVD menus. Supported for X11-based VOs (x11, xv, etc)  and
              the gl, direct3d and corevideo VOs.

              Disable colorful console output on terminals.

              Control verbosity directly for each module. The all module changes the verbosity of
              all the modules not explicitly specified on the command line.

              Run mpv with --msglevel=all=trace to see all messages mpv outputs. You can use  the
              module  names  printed  in the output (prefixed to each line in [...]) to limit the
              output to interesting modules.

                 Some messages are printed before the command line is parsed  and  are  therefore
                 not  affected  by  --msglevel.  To  control  these messages, you have to use the
                 MPV_VERBOSE environment variable; see ENVIRONMENT VARIABLES for details.

              Available levels:

              no     complete silence

              fatal  fatal messages only

              error  error messages

              warn   warning messages

              info   informational messages

              status status messages (default)

              v      verbose messages

              debug  debug messages

              trace  very noisy debug messages

              One special case is the identify module name. This is silenced by default, and  can
              be enabled with the -identify option.

              Prepend module name in front of each console message.

              Set startup audio mute status. auto (default) will not change the mute status. Also
              see --volume.

       --name Set the window class name for X11-based video output methods.

              Use system settings for keyrepeat delay and rate, instead of  --input-ar-delay  and
              --input-ar-rate. (Whether this applies depends on the VO backend and how it handles
              keyboard input. Does not apply to terminal input.)

              Ignore aspect ratio information from video file and assume  the  video  has  square
              pixels. See also --aspect.

              Turn off input stream caching. See --cache.

              Do not load default configuration files. This prevents loading of ~/.mpv/config and
              ~/.mpv/input.conf, as well as loading the same files from system wide configuration

              Loading  of  some  configuration  files  is  not  affected  by this option, such as
              configuration files for DVB code and fontconfig.

                 Files  explicitly  requested  by  command  line  options,  like   --include   or
                 --use-filedir-conf, will still be loaded.

              Do not use index present in the file even if one is present.

              Do not play sound. With some demuxers this may not work. In those cases you can try
              --ao=null instead.

              Do not restore playback position from  ~/.mpv/watch_later/.   See  quit_watch_later
              input command.

              Do not select any subtitle when the file is loaded.

       --sub-visibility, --no-sub-visibility
              Can be used to disable display of subtitles, but still select and decode them.

              Do not play video. With some demuxers this may not work. In those cases you can try
              --vo=null instead.

              Makes the player window stay on top of other windows.  Supported  by  video  output
              drivers which use X11, as well as corevideo.

       --ordered-chapters, --no-ordered-chapters
              Enabled  by  default.   Disable support for Matroska ordered chapters. mpv will not
              load or search for video segments from  other  files,  and  will  also  ignore  any
              chapter order specified for the main file.

              Loads  the  given  file  as playlist, and tries to use the files contained in it as
              reference files when opening a Matroska  file  that  uses  ordered  chapters.  This
              overrides  the  normal  mechanism for loading referenced files by scanning the same
              directory the main file is located in.

              Useful for loading ordered  chapter  files  that  are  not  located  on  the  local
              filesystem, or if the referenced files are in different directories.

              Note:  a playlist can be as simple as a text file containing filenames separated by

       --osc, --no-osc
              Whether to load the on-screen-controller (default: yes).

       --no-osd-bar, --osd-bar
              Disable display of the OSD bar. This will make some things (like seeking)  use  OSD
              text messages instead of the bar.

              You  can  configure  this on a per-command basis in input.conf using osd- prefixes,
              see Input command prefixes.  If  you  want  to  disable  the  OSD  completely,  use

              Position of the OSD bar. -1 is far left, 0 is centered, 1 is far right.  Fractional
              values (like 0.5) are allowed.

              Position of the OSD bar. -1 is top, 0 is centered, 1 is bottom.  Fractional  values
              (like 0.5) are allowed.

              Width  of the OSD bar, in percentage of the screen width (default: 75).  A value of
              50 means the bar is half the screen wide.

              Height of the OSD bar, in percentage of the screen height (default: 3.125).

       --osd-back-color=<#RRGGBB>, --sub-text-back-color=<#RRGGBB>
              See --osd-color. Color used for OSD/sub text background.

       --osd-blur=<0..20.0>, --sub-text-blur=<0..20.0>
              Gaussian blur factor. 0 means no blur applied (default).

       --osd-border-color=<#RRGGBB>, --sub-text-border-color=<#RRGGBB>
              See --osd-color. Color used for the OSD/sub font border.

                 ignored  when  --osd-back-color/--sub-text-back-color  is  specified  (or   more
                 exactly: when that option is not set to completely transparent).

       --osd-border-size=<size>, --sub-text-border-size=<size>
              Size of the OSD/sub font border in scaled pixels (see --osd-font-size for details).
              A value of 0 disables borders.

              Default: 2.5.

       --osd-color=<#RRGGBB|#AARRGGBB>, --sub-text-color=<#RRGGBB|#AARRGGBB>
              Specify the color used for OSD/unstyled text subtitles.

              The color is specified as a RGB hex triplet, and each  2-digit  group  expresses  a
              color  value in the range 0 (00) to 255 (FF).  For example, #FF0000 is red. This is
              similar to web colors.

              You can specify transparency by specifying an alpha value in the form #AARRGGBB. 00
              is  fully transparent, while FF is opaque (opaque is default with the shorter color


                 • --osd-color='#FF0000' set OSD to opaque red

                 • --osd-color='#C0808080' set OSD to 50% gray with 75% alpha

              Set the duration of the OSD messages in ms (default: 1000).

       --osd-font=<pattern>, --sub-text-font=<pattern>
              Specify font to use for OSD and for subtitles that  do  not  themselves  specify  a
              particular font. The default is sans-serif.


                 • --osd-font='Bitstream Vera Sans'--osd-font='Bitstream Vera Sans:style=Bold' (fontconfig pattern)

                 The --sub-text-font option (and most other --sub-text- options) are ignored when
                 ASS-subtitles are rendered, unless the --no-ass option is specified.

       --osd-font-size=<size>, --sub-text-font-size=<size>
              Specify the OSD/sub font size. The unit is the size in scaled pixels  at  a  window
              height  of  720.  The  actual  pixel  size is scaled with the window height: if the
              window height is larger or smaller than 720, the actual size of the text  increases
              or decreases as well.

              Default: 45.

              Show OSD times with fractions of seconds.

              Specifies which mode the OSD should start in.

              0      subtitles only

              1      volume + seek (default)

              2      volume + seek + timer + percentage

              3      volume + seek + timer + percentage + total time

       --osd-margin-x=<size>, --sub-text-margin-x=<size>
              Left and right screen margin for the OSD/subs in scaled pixels (see --osd-font-size
              for details).

              This option specifies the distance of the OSD to the left,  as  well  as  at  which
              distance from the right border long OSD text will be broken.

              Default: 25.

       --osd-margin-y=<size>, --sub-text-margin-y=<size>
              Top and bottom screen margin for the OSD/subs in scaled pixels (see --osd-font-size
              for details).

              This option specifies the vertical margins of  the  OSD.  This  is  also  used  for
              unstyled  text subtitles. If you just want to raise the vertical subtitle position,
              use --sub-pos.

              Default: 10.

              OSD font size multiplicator, multiplied with --osd-font-size value.

              Whether to scale the OSD with the window size (default: yes). If this is  disabled,
              --osd-font-size  and  other OSD options that use scaled pixels are always in actual
              pixels. The effect is that changing the window size won't change the OSD font size.

       --osd-shadow-color=<#RRGGBB>, --sub-text-shadow-color=<#RRGGBB>
              See --osd-color. Color used for OSD/sub text shadow.

       --osd-shadow-offset=<size>, --sub-text-shadow-offset=<size>
              Displacement of the OSD/sub text shadow in scaled pixels (see  --osd-font-size  for
              details). A value of 0 disables shadows.

              Default: 0.

       --osd-spacing=<size>, --sub-text-spacing=<size>
              Horizontal OSD/sub font spacing in scaled pixels (see --osd-font-size for details).
              This value is added to the normal letter spacing. Negative values are allowed.

              Default: 0.

              Show a custom string during playback instead of the  standard  status  text.   This
              overrides  the  status  text  used  for --osd-level=3, when using the show_progress
              command (by default mapped to P),  or  in  some  non-default  cases  when  seeking.
              Expands properties. See Property Expansion.

              Enables pan-and-scan functionality (cropping the sides of e.g. a 16:9 movie to make
              it fit a 4:3 display without black bands). The range controls how much of the image
              is cropped. May not work with all video output drivers.

              Start the player in paused state.

              Print  out a string after starting playback. The string is expanded for properties,
              e.g. --playing-msg='file: ${filename}' will print the string file:  followed  by  a
              space and the currently played filename.

              See Property Expansion.

              Print  out  a  custom  string  during playback instead of the standard status line.
              Expands properties. See Property Expansion.

              Allows capturing the primary stream (not additional audio tracks or other  kind  of
              streams) into the given file. Capturing can also be started and stopped by changing
              the filename with the stream-capture  slave  property.   Generally  this  will  not
              produce usable results for anything else than MPEG or raw streams, unless capturing
              includes the file  headers  and  is  not  interrupted.  Note  that,  due  to  cache
              latencies,  captured  data  may begin and end somewhat delayed compared to what you
              see displayed.

              Same as --stream-capture, but do not start playback. Instead, the  entire  file  is

              Play  files  according  to a playlist file (ASX, Winamp, SMIL, or one-file-per-line

                 The way mpv parses and uses playlist  files  is  not  safe  against  maliciously
                 constructed  files.  Such  files may trigger harmful actions.  This has been the
                 case for all mpv and MPlayer versions, but unfortunately this fact was not  well
                 documented  earlier,  and  some  people have even misguidedly recommended use of
                 --playlist with untrusted sources. Do NOT use --playlist  with  random  internet
                 sources or files you do not trust!

                 FIXME: This needs to be clarified and documented thoroughly.

              (Windows  only.)   Set  process  priority  for  mpv  according  to  the  predefined
              priorities available under Windows.

              Possible values of <prio>: idle|belownormal|normal|abovenormal|high|realtime

                 Using realtime priority can cause system lockup.

              Use the given profile(s), --profile=help displays a list of the defined profiles.

              Select the method used to determine which container packet timestamp corresponds to
              a  particular  output frame from the video decoder. Normally you should not need to
              change this option.

                     Use  decoder  reordering  functionality.  Unlike  in  classic  MPlayer   and
                     mplayer2, this includes a dTS fallback. (Default.)

              sort   Maintain  a  buffer  of  unused  pts values and use the lowest value for the

              auto   Try to pick a working mode from the ones above automatically.

              You can  also  try  to  use  --no-correct-pts  for  files  with  completely  broken

              This option tunes various encoding properties of the PVR capture module.  It has to
              be used with any hardware MPEG encoder based card supported by the V4L2 driver. The
              Hauppauge  WinTV  PVR-150/250/350/500  and  all  IVTV  based cards are known as PVR
              capture cards. Be aware that only Linux 2.6.18 kernel and above is able  to  handle
              MPEG  stream  through  V4L2  layer.   For  hardware  capture  of an MPEG stream and
              watching it with mpv, use pvr:// as a movie URL.

              Available options are:

                     Specify input aspect ratio:

                     0      1:1

                     1      4:3 (default)

                     2      16:9

                     3      2.21:1

                     Specify encoding audio rate (default: 48000 Hz, available: 32000, 44100  and
                     48000 Hz).

                     Specify MPEG audio layer encoding (default: 2).

                     Specify audio encoding bitrate in kbps (default: 384).

                     Specify   audio   encoding  mode.  Available  preset  values  are  'stereo',
                     'joint_stereo', 'dual' and 'mono' (default: stereo).

                     Specify average video bitrate encoding in Mbps (default: 6).

                     Specify video encoding mode:

                     vbr    Variable BitRate (default)

                     cbr    Constant BitRate

                     Specify peak video bitrate encoding in Mbps (only useful for  VBR  encoding,
                     default: 9.6).

                     Choose an MPEG format for encoding:

                     ps     MPEG-2 Program Stream (default)

                     ts     MPEG-2 Transport Stream

                     mpeg1  MPEG-1 System Stream

                     vcd    Video CD compatible stream

                     svcd   Super Video CD compatible stream

                     dvd    DVD compatible stream

              Make console output less verbose; in particular, prevents the status line (i.e. AV:
              3.4 (00:00:03.37) / 5320.6 ...) from being displayed.  Particularly useful on  slow
              terminals or broken ones which do not properly handle carriage return (i.e. \r).

              Also see --really-quiet and --msglevel.

              Toggles  fetching  of  subtitles  from  streaming  sites  with libquvi. Disabled by
              default, because it's unreliable and slow. Note that when enabled,  subtitles  will
              always be fetched, even if subtitles are explicitly disabled with --no-sub (because
              you might want to enable subtitles at runtime).

              Supported when using libquvi 0.9.x.

              Video format/quality that is directly passed to libquvi (default: best).   This  is
              used when opening links to streaming sites like YouTube. The interpretation of this
              value is highly specific to the streaming site and the video.

              libquvi 0.4.x:
                 The  only  well-defined  values  that  work  on  all  sites   are   best   (best
                 quality/highest bandwidth, default), and default (lowest quality).

                 The  quvi  command line tool can be used to find out which formats are supported
                 for a given URL: quvi --query-formats URL.

              libquvi 0.9.x:
                 The           following           explanations           are           relevant:

              The  quvi-format  property  can  be  used  at  runtime to cycle through the list of
              formats. Unfortunately, this is slow.  On  libquvi  0.4.x,  this  functionality  is
              limited to switching between best and default if the cycle input command is used.

              These  options set various parameters of the radio capture module. For listening to
              radio with mpv, use radio://<frequency>  (if  channels  option  is  not  given)  or
              radio://<channel_number>  (if channels option is given) as a movie URL. You can see
              allowed frequency range by running mpv with -v. To start  the  grabbing  subsystem,
              use  radio://<frequency  or  channel>/capture. If the capture keyword is not given,
              you can listen to radio using the line-in cable only. Using capture  to  listen  is
              not   recommended  due  to  synchronization  problems,  which  makes  this  process

              Available options are:

                     Radio device to use (default: /dev/radio0  for  Linux  and  /dev/tuner0  for

                     Radio driver to use (default: v4l2 if available, otherwise v4l).  Currently,
                     v4l and v4l2 drivers are supported.

                     Sound volume for radio device (default 100).

                     Set channel list. Use _ for spaces in names (or play  with  quoting  ;-)  ).
                     The  channel  names  will  then be written using OSD, and the slave commands
                     radio_step_channel and radio_set_channel will be usable for a remote control
                     (see  LIRC).  If  given,  number  in  movie  URL  will be treated as channel
                     position in channel list.


                               radio://1, radio://104.4, radio_set_channel 1

              adevice=<value> (radio capture only)
                     Name of device to capture sound from. Without such a name, capture  will  be
                     disabled, even if the capture keyword appears in the URL.  For ALSA devices,
                     use it in the form hw=<card>.<device>. If the device name  contains  a  '=',
                     the module will use ALSA to capture, otherwise OSS.

              arate=<value> (radio capture only)
                     Rate in samples per second (default: 44100).

                        When using audio capture set also --rawaudio=rate=<value> option with the
                        same value as arate. If you have problems  with  sound  speed  (runs  too
                        quickly),  try  to  play  with different rate values (e.g.  48000, 44100,

              achannels=<value> (radio capture only)
                     Number of audio channels to capture.

              Display even less output and status messages than with --quiet.

              Specify a referrer path or URL for HTTP requests.

              Normally, mpv will try to keep all settings when  playing  the  next  file  on  the
              playlist,  even if they were changed by the user during playback. (This behavior is
              the opposite of MPlayer's, which tries to reset all  settings  when  starting  next

              Default: --reset-on-next-file=pause (only the pause mode is reset).

              This  can  be  changed with this option. It accepts a list of options, and mpv will
              reset the value of these options on  playback  start  to  the  initial  value.  The
              initial  value is either the default value, or as set by the config file or command

              In some cases, this might not work as expected. For example, --volume will only  be
              reset if it is explicitly set in the config file or the command line.

              The special name all resets as many options as possible.


                 • --reset-on-next-file=fullscreen,speed  Reset  fullscreen  and  playback  speed
                   settings if they were changed during playback.

                 • --reset-on-next-file=all Try to reset all settings that  were  changed  during

                 • --reset-on-next-file="" Do not reset pause mode.

       --right-alt-gr, --no-right-alt-gr
              (Cocoa  and  Windows  only)  Use  the  right  Alt  key as Alt Gr to produce special
              characters. If disabled, count the right Alt as an Alt  modifier  key.  Enabled  by

              Select  RTSP  transport  method (default: tcp). This selects the underlying network
              transport when playing rtsp://... URLs. The  value  lavf  leaves  the  decision  to

              Adjust  the  saturation  of  the  video  signal (default: 0). You can get grayscale
              output with this option. Not supported by all video output drivers.

              Always save the current playback position on quit. When this file is  played  again
              later,  the  player  will seek to the old playback position on start. This does not
              happen if playback of a file is  stopped  in  any  other  way  than  quitting.  For
              example,  going  to  the  next file in the playlist will not save the position, and
              start playback at beginning the next time the file is played.

              This behavior is disabled by default, but is always  available  when  quitting  the
              player with Shift+Q.

              Seek  to  byte  position.  Useful for playback from CD-ROM images or VOB files with
              junk at the beginning. See also --start.

              In multi-monitor configurations (i.e. a single desktop that spans  across  multiple
              displays), this option tells mpv which screen to display the movie on.

                 Note (X11)

                        This  option  does  not  work properly with all window managers. In these
                        cases, you can try to use --geometry to position the  window  explicitly.
                        It's  also  possible  that the window manager provides native features to
                        control which screens application windows should use.

              See also --fs-screen.

              Set the image file type used for saving screenshots.

              Available choices:

              png    PNG

              ppm    PPM

              pgm    PGM

              pgmyuv PGM with YV12 pixel format

              tga    TARGA

              jpg    JPEG (default)

              jpeg   JPEG (same as jpg, but with .jpeg file ending)

              Set the JPEG quality level. Higher means better quality. The default is 90.

              Set the PNG compression level. Higher means better compression.  This  will  affect
              the  file  size  of  the  written  screenshot file and the time it takes to write a
              screenshot. Too  high  compression  might  occupy  enough  CPU  time  to  interrupt
              playback. The default is 7.

              Set  the filter applied prior to PNG compression. 0 is none, 1 is "sub", 2 is "up",
              3 is "average", 4 is  "Paeth",  and  5  is  "mixed".  This  affects  the  level  of
              compression  that  can  be  achieved.  For  most  images, "mixed" achieves the best
              compression ratio, hence it is the default.

              Specify the filename template used to save screenshots. The template specifies  the
              filename  without  file extension, and can contain format specifiers, which will be
              substituted when taking a screeshot.  By default  the  template  is  shot%n,  which
              results in filenames like shot0012.png for example.

              The  template  can  start  with  a relative or absolute path, in order to specify a
              directory location where screenshots should be saved.

              If the final screenshot filename points to an already existing file, the file  will
              not  be  overwritten.  The  screenshot will either not be saved, or if the template
              contains %n, saved using different, newly generated filename.

              Allowed format specifiers:

                     A sequence number, padded  with  zeros  to  length  X  (default:  04).  E.g.
                     passing  the format %04n will yield 0012 on the 12th screenshot.  The number
                     is incremented every time a screenshot is  taken  or  if  the  file  already
                     exists. The length X must be in the range 0-9. With the optional # sign, mpv
                     will use the lowest  available  number.  For  example,  if  you  take  three
                     screenshots--0001,  0002,  0003--and  delete  the  first  two,  the next two
                     screenshots will not be 0004 and 0005, but 0001 and 0002 again.

              %f     Filename of the currently played video.

              %F     Same as %f, but strip the file extension, including the dot.

              %p     Current playback time, in the same format as used in the OSD. The result  is
                     a  string  of  the form "HH:MM:SS". For example, if the video is at the time
                     position 5 minutes and 34 seconds, %p will be replaced with "00:05:34".

              %P     Similar to %p, but extended with the playback time in milliseconds.   It  is
                     formatted  as  "HH:MM:SS.mmm",  with "mmm" being the millisecond part of the
                     playback time.

                        This is a simple way  for  getting  unique  per-frame  timestamps.  Frame
                        numbers would be more intuitive, but are not easily implementable because
                        container formats usually use time stamps for identifying frames.)

              %wX    Specify the current playback time using the format string  X.   %p  is  like
                     %wH:%wM:%wS, and %P is like %wH:%wM:%wS.%wT.

                     Valid format specifiers:

                            %wH    hour (padded with 0 to two digits)

                            %wh    hour (not padded)

                            %wM    minutes (00-59)

                            %wm    total minutes (includes hours, unlike %wM)

                            %wS    seconds (00-59)

                            %ws    total seconds (includes hours and minutes)

                            %wf    like %ws, but as float

                            %wT    milliseconds (000-999)

              %tX    Specify  the  current  local  date/time  using  the  format  X.  This format
                     specifier uses the UNIX strftime()  function  internally,  and  inserts  the
                     result  of passing "%X" to strftime. For example, %tm will insert the number
                     of the current month as number. You have to use multiple %tX  specifiers  to
                     build a full date/time string.

              %{prop[:fallback text]}
                     Insert  the value of the slave property 'prop'. E.g. %{filename} is the same
                     as %f. If the property does not exist or is not available, an error text  is
                     inserted, unless a fallback is specified.

              %%     Replaced with the % character itself.

              Specify  the  screen  height  for video output drivers which do not know the screen
              resolution, like x11 and TV-out.

              Specify the screen width for video output drivers which  do  not  know  the  screen
              resolution, like x11 and TV-out.

              Select  a  secondary  subtitle  stream.  This  is  similar to --sid. If a secondary
              subtitle is selected, it will be rendered as toptitle  (i.e.  on  the  top  of  the
              screen)  alongside  the normal subtitle, and provides a way to render two subtitles
              at once.

              there are some caveats associated with this feature. For example, bitmap  subtitles
              will  always be rendered in their usual position, so selecting a bitmap subtitle as
              secondary subtitle will result in overlapping subtitles.  Secondary  subtitles  are
              never shown on the terminal if video is disabled.

                 Styling  and interpretation of any formatting tags is disabled for the secondary
                 subtitle. Internally, the same mechanism  as  --no-ass  is  used  to  strip  the

                 If  the main subtitle stream contains formatting tags which display the subtitle
                 at the top of the screen, it  will  overlap  with  the  secondary  subtitle.  To
                 prevent  this,  you  could  use --no-ass to disable styling in the main subtitle

              Show the description and content of a profile.

              Play files in random order.

              Display the subtitle stream  specified  by  <ID>.  auto  selects  the  default,  no
              disables subtitles.

              See also --slang, --no-sub.

              Specify  a  priority list of subtitle languages to use. Different container formats
              employ different language codes. DVDs use ISO  639-1  two  letter  language  codes,
              Matroska  uses  ISO  639-2  three  letter language codes while OGM uses a free-form
              identifier. See also --sid.


                 • mpv dvd://1 --slang=hu,en chooses the Hungarian subtitle track on  a  DVD  and
                   falls back on English if Hungarian is not available.

                 • mpv --slang=jpn example.mkv plays a Matroska file with Japanese subtitles.

              Switches  on  the old slave mode. This is for testing only, and incompatible to the
              removed --slave switch.

                 Changes incompatible to slave mode applications have been made.  In  particular,
                 the  status  line  output  was  changed,  which  is used by some applications to
                 determine the current playback position. This switch has been renamed to prevent
                 these  applications from working with this version of mpv, because it would lead
                 to buggy and confusing behavior only. Moreover, the slave mode  protocol  is  so
                 horribly  bad  that  it should not be used for new programs, nor should existing
                 programs attempt to adapt to the  changed  output  and  use  the  --slave-broken
                 switch.  Instead,  a  new,  saner  protocol should be developed (and will be, if
                 there is enough interest).

                 This affects most third-party GUI frontends.

              Time frames by repeatedly checking the current time instead of asking the kernel to
              wake  up mpv at the correct time. Useful if your kernel timing is imprecise and you
              cannot use the RTC either. Comes at the price of higher CPU consumption.

              Control whether to use the volume controls  of  the  audio  output  driver  or  the
              internal mpv volume filter.

              no     prefer  audio  driver  controls,  use  the  volume filter only if absolutely

              yes    always use the volume filter

              auto   prefer the volume filter if the audio driver uses the system mixer (default)

              The intention of auto is to avoid changing system mixer settings  from  within  mpv
              with  default  settings.  mpv  is  a video player, not a mixer panel.  On the other
              hand, mixer controls are enabled for sound servers like PulseAudio,  which  provide
              per-application volume.

              Set  the maximum amplification level in percent (default: 200). A value of 200 will
              allow you to adjust the volume up to a maximum of double the  current  level.  With
              values  below  100  the  initial  volume (which is 100%) will be above the maximum,
              which e.g. the OSD cannot display correctly.


                        The maximum value of --volume as well as the volume  property  is  always
                        100.  Likewise, the volume OSD bar always goes from 0 to 100.  This means
                        that with --softvol-max=200,  --volume=100  sets  maximum  amplification,
                        i.e. amplify by 200%. The default volume (no change in volume) will be 50
                        in this case.

              Slow down or speed up playback by the factor given as parameter.

              Select the output sample rate to be used (of course  sound  cards  have  limits  on
              this).  If  the  sample  frequency  selected  is different from that of the current
              media, the lavrresample audio filter will be inserted into the audio  filter  layer
              to compensate for the difference.

       --start=<relative time>
              Seek to given time position.

              The  general format for absolute times is [[hh:]mm:]ss[.ms]. If the time is negated
              with -, the seek is relative from the end of the file.

              pp% seeks to percent position pp (0-100).

              #c seeks to chapter number c. (Chapters start from 1.)


                        Seeks to 56 seconds.

                        Seeks to 1 hour 10 min.

                        Seeks to the middle of the file.

                 --start=30 --end=40
                        Seeks to 30 seconds, plays 10 seconds, and exits.

                 --start=-3:20 --length=10
                        Seeks to 3 minutes and 20 seconds before the end of the  file,  plays  10
                        seconds, and exits.

                 --start='#2' --end='#4'
                        Plays chapters 2 and 3, and exits.

              Stretch  DVD  subtitles  when playing anamorphic videos for better looking fonts on
              badly mastered DVDs. This switch has no effect when the video is stored with square
              pixels - which for DVD input cannot be the case though.

              Many  studios  tend  to  use bitmap fonts designed for square pixels when authoring
              DVDs, causing the fonts to look stretched on playback on DVD players.  This  option
              fixes  them, however at the price of possibly misaligning sume subtitles (e.g. sign

              Disabled by default.

              Specifies software scaler parameters.

                     gaussian blur filter (luma)

                     gaussian blur filter (chroma)

                     sharpen filter (luma)

                     sharpen filter (chroma)

                     chroma horizontal shifting

                     chroma vertical shifting


                        --vf=scale --ssf=lgb=3.0

              Skip <sec> seconds after every frame.

                 Without --hr-seek, skipping will snap to keyframes.

       --stop-screensaver, --no-stop-screensaver
              Turns off the screensaver (or screen blanker and similar mechanisms) at startup and
              turns it on again on exit (default: yes). The screensaver is always re-enabled when
              the player is paused.

              This is  not  supported  on  all  video  outputs  or  platforms.  Sometimes  it  is
              implemented,  but  does  not work (happens often on GNOME). You might be able to to
              work this around using --heartbeat-cmd instead.

              Use/display these subtitle files. Only one file can be displayed at the same time.

       --sub-fix-timing, --no-sub-fix-timing
              By default, external text subtitles  are  preprocessed  to  remove  minor  gaps  or
              overlaps  between  subtitles  (if the difference is smaller than 200 ms, the gap or
              overlap is removed). This does not affect image  subtitles,  subtitles  muxed  with
              audio/video, or subtitles in the ASS format.

              Force  subtitle  demuxer  type  for  --sub.  Give  the  demuxer  name as printed by

              Specify extra directories to search for subtitles  matching  the  video.   Multiple
              directories  can  be  separated  by ":" (";" on Windows).  Paths can be relative or
              absolute. Relative paths are interpreted relative to video file directory.


                        Assuming     that     /path/to/movie/movie.avi     is     played      and
                        --sub-paths=sub:subtitles:/tmp/subs   is   specified,  mpv  searches  for
                        subtitle files in these directories:

                 • /path/to/movie//path/to/movie/sub//path/to/movie/subtitles//tmp/subs/~/.mpv/sub/

              If your system supports iconv(3), you can use this option to specify  the  subtitle
              codepage.  By  default,  ENCA  will  be  used  to guess the charset.  If mpv is not
              compiled with ENCA, UTF-8:UTF-8-BROKEN is the default, which means it will  try  to
              use UTF-8, otherwise the UTF-8-BROKEN pseudo codepage (see below).


                        If  you force the charset, even subtitles that are known to be UTF-8 will
                        be recoded, which is perhaps not what you expect. Prefix  codepages  with
                        utf8:  if you want the codepage to be used only if the input is not valid


                 • --subcp=utf8:latin2 Use Latin 2 if input is not UTF-8.

                 • --subcp=utf8:cp1250 Use CP1250 if input is not UTF-8.

                 • --subcp=cp1250 Always force recoding to cp1250.

              The pseudo codepage UTF-8-BROKEN is used internally. If this is used  as  codepage,
              the subtitle will be interpreted as UTF-8, but with "Latin 1" as fallback for bytes
              which are not valid UTF-8 sequences. iconv is never involved in this mode.

              If the player was compiled with ENCA support, you can control it with the following

                 ``--subcp=enca:<language>:<fallback codepage>``

              You  can specify your language using a two letter language code to make ENCA detect
              the codepage automatically. If unsure, enter anything (if the language is  invalid,
              mpv  will  complain  and  list  valid  languages).  Fallback codepage specifies the
              codepage to use if autodetection fails.  If no fallback is specified,  UTF-8-BROKEN
              is used.


                 • --subcp=enca:cs:latin2  guess  the encoding, assuming the subtitles are Czech,
                   fall back on latin 2, if the detection fails.

                 • --subcp=enca:pl:cp1250 guess the encoding for Polish, fall back on cp1250.

                 • --subcp=enca:pl guess the encoding for Polish, fall back on UTF-8.

                 • --subcp=enca try universal detection, fall back on UTF-8.

              If the player was compiled with libguess support, you can use it with:

              --subcp=guess:<language>:<fallback codepage>

              Note that libguess always needs a language. There is no universal  detection  mode.
              Use  --subcp=guess:help  to  get  a  list  of languages (like with ENCA, it will be
              printed only if the conversion code is somehow called, for example when loading  an
              external subtitle).

              Delays subtitles by <sec> seconds. Can be negative.

              Specify the framerate of the subtitle file (default: movie fps).

                 <rate>  >  movie  fps speeds the subtitles up for frame-based subtitle files and
                 slows them down for time-based ones.

              Also see --sub-speed option.

              Apply gaussian blur to image subtitles (default: 0). This can help making pixelated
              DVD/Vobsubs  look  nicer.  A  value other than 0 also switches to software subtitle
              scaling. Might be slow.

                 Never applied to text subtitles.

              Convert image subtitles to grayscale.  Can  help  making  yellow  DVD/Vobsubs  look

                 Never applied to text subtitles.

              Specify the position of subtitles on the screen. The value is the vertical position
              of the subtitle in % of the screen height.

                 This affects  ASS  subtitles  as  well,  and  may  lead  to  incorrect  subtitle
                 rendering. Use with care, or use --sub-text-margin-y instead.

              Factor for the text subtitle font size (default: 1).

                 This  affects  ASS  subtitles  as  well,  and  may  lead  to  incorrect subtitle
                 rendering. Use with care, or use --sub-text-font-size instead.

              Multiply the subtitle event timestamps with the given value. Can be used to fix the
              playback  speed for frame-based subtitle formats. Works for external text subtitles


                        --sub-speed=25/23.976` plays frame based subtitles which have been loaded
                        assuming a framerate of 23.976 at 25 FPS.

              Specify the software scaler algorithm to be used with --vf=scale. This also affects
              video  output  drivers  which  lack  hardware  acceleration,  e.g.  x11.  See  also

              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

                 Some  --sws  options  are tunable. The description of the scale video filter has
                 further information.

       --term-osd, --no-term-osd, --term-osd=force
              Display OSD messages on the console when no video output is available.  Enabled  by

              Specify  the  escape  sequence to use before writing an OSD message on the console.
              The escape sequence should move the pointer to the beginning of the line  used  for
              the OSD and clear it (default: ^[[A\r^[[K).

              force enables terminal OSD even if a video window is created.

              Set  the  window  title.  Properties are expanded on playback start.  (See Property

                 There is a danger of this  causing  significant  CPU  usage,  depending  on  the
                 properties  used  and  the  window manager. Changing the window title is often a
                 slow operation, and if the title changes every frame, playback can be ruined.

              Certificate authority database file for use with TLS. (Silently  fails  with  older
              ffmpeg or libav versions.)


              Verify peer certificates when using TLS (e.g. with https://...).
                     (Silently fails with older ffmpeg or libav versions.)

              This option tunes various properties of the TV capture module. For watching TV with
              mpv, use tv:// or tv://<channel_number> or  even  tv://<channel_name>  (see  option
              channels  for channel_name below) as a movie URL. You can also use tv:///<input_id>
              to start watching a movie from a composite or S-Video input (see option  input  for

              Available options are:

                     no sound

              automute=<0-255> (v4l and v4l2 only)
                     If  signal  strength  reported  by device is less than this value, audio and
                     video will be muted. In most cases automute=100 will be enough.  Default  is
                     0 (automute disabled).

                     See --tv=driver=help for a list of compiled-in TV input drivers.  available:
                     dummy, v4l2 (default: autodetect)

                     Specify TV device (default: /dev/video0).

                     Specify input (default: 0 (TV), see console output for available inputs).

                     Specify the frequency to set the tuner to  (e.g.  511.250).  Not  compatible
                     with the channels parameter.

                     Specify  the output format of the tuner with a preset value supported by the
                     V4L driver (YV12, UYVY, YUY2, I420) or an  arbitrary  format  given  as  hex

                     output window width

                     output window height

                     framerate at which to capture video (frames per second)

                     maximum size of the capture buffer in megabytes (default: dynamical)

                     See  the  console  output  for  a  list of all available norms, also see the
                     normid option below.

              normid=<value> (v4l2 only)
                     Sets the TV norm to the given numeric ID. The TV norm depends on the capture
                     card. See the console output for a list of available TV norms.

                     Set tuner to <value> channel.

                     available:  argentina,  australia,  china-bcast,  europe-east,  europe-west,
                     france,  ireland,  italy,  japan-bcast,  japan-cable,  newzealand,   russia,
                     southafrica, us-bcast, us-cable, us-cable-hrc

                     Set names for channels.

                        If  <chan>  is  an  integer  greater  than  1000,  it  will be treated as
                        frequency (in kHz) rather than channel name from frequency table.  Use  _
                        for  spaces  in names (or play with quoting ;-) ). The channel names will
                        then be written  using  OSD,  and  the  slave  commands  tv_step_channel,
                        tv_set_channel  and  tv_last_channel  will be usable for a remote control
                        (see LIRC). Not compatible with the frequency parameter.

                        The channel number will then be the  position  in  the  'channels'  list,
                        beginning with 1.


                               tv://1, tv://TV1, tv_set_channel 1, tv_set_channel TV1

                     Set the image equalizer on the card.

                     Set input audio sample rate.

                     Capture audio even if there are no audio sources reported by v4l.

              alsa   Capture from ALSA.

                     Choose an audio mode:

                     0      mono

                     1      stereo

                     2      language 1

                     3      language 2

                     By default, the count of recorded audio channels is determined automatically
                     by querying the audio mode from the TV  card.  This  option  allows  forcing
                     stereo/mono recording regardless of the amode option and the values returned
                     by v4l. This can be used for troubleshooting when the TV card is  unable  to
                     report the current audio mode.

                     Set  an  audio  device. <value> should be /dev/xxx for OSS and a hardware ID
                     for ALSA. You must replace any ':' by a '.' in the hardware ID for ALSA.

                     Choose an audio output of the capture card, if it has more than one.

                     These options set parameters of the mixer on the video capture  card.   They
                     will have no effect, if your card does not have one. For v4l2 50 maps to the
                     default value of the control, as reported by the driver.

                     Set gain control for video devices (usually webcams) to  the  desired  value
                     and switch off automatic control. A value of 0 enables automatic control. If
                     this option is omitted, gain control will not be modified.

                     A value of 0 means capture and buffer audio and video together. A value of 1
                     (default)  means  to  do  video  capture only and let the audio go through a
                     loopback cable from the TV card to the sound card.

              mjpeg  Use hardware MJPEG compression (if the card supports it).  When  using  this
                     option,  you  do  not  need  to  specify  the width and height of the output
                     window, because mpv will determine  it  automatically  from  the  decimation
                     value (see below).

                     choose  the  size  of  the picture that will be compressed by hardware MJPEG

                     1      full size

                            • 704x576 PAL

                            • 704x480 NTSC

                     2      medium size

                            • 352x288 PAL

                            • 352x240 NTSC

                     4      small size

                            • 176x144 PAL

                            • 176x120 NTSC

                     Choose the quality of the JPEG compression (< 60 recommended for full size).

              Tune the TV channel scanner. mpv will also print value for  --tv=channels=  option,
              including existing and just found channels.

              Available suboptions are:

                     Begin channel scanning immediately after startup (default: disabled).

                     Specify  delay  in  seconds before switching to next channel (default: 0.5).
                     Lower values will cause faster scanning, but can detect inactive TV channels
                     as active.

                     Threshold  value  for  the  signal strength (in percent), as reported by the
                     device (default: 50). A signal strength higher than this value will indicate
                     that the currently scanning channel is active.

              Look  for a file-specific configuration file in the same directory as the file that
              is being played. See File-specific Configuration Files.

                 May be dangerous if playing from untrusted media.

              Use <string> as user agent for HTTP streaming.

       -v     Increment verbosity level, one level for each -v found on the command line.

              Specify a priority list of video decoders to be used, according to their family and
              name.  See  --ad for further details. Both of these options use the same syntax and
              semantics; the only difference is that they operate on different codec lists.

                 See --vd=help for a full list of available decoders.

              Check hardware decoder profile (default: yes). If no is set, the highest profile of
              the  hardware  decoder  is unconditionally selected, and decoding is forced even if
              the profile of the video is higher than that.  The result  is  most  likely  broken
              decoding,  but  may  also  help  if  the  detected or reported profiles are somehow

              Only use bit-exact algorithms in all decoding steps (for codec testing).

       --vd-lavc-fast (MPEG-2, MPEG-4, and H.264 only)
              Enable optimizations  which  do  not  comply  with  the  format  specification  and
              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.

              Pass  AVOptions  to  libavcodec  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.

              Some  options  which used to be direct options can be set with this mechanism, like
              bug, gray, idct, ec, vismv, skip_top (was st), skip_bottom (was sb), debug.



              Show even broken/corrupt frames (default: yes).  If  this  option  is  set  to  no,
              libavcodec  won't output frames that were either decoded before an initial keyframe
              was decoded, or frames that are recognized as corrupted.

       --vd-lavc-skiploopfilter=<skipvalue> (H.264 only)
              Skips the loop filter (AKA deblocking) during H.264 decoding.  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 little visible
              quality loss.

              <skipvalue> can be one of the following:

              none   Never skip.

                     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.

       --vd-lavc-skipidct=<skipvalue> (MPEG-1/2 only)
              Skips  the  IDCT  step.  This  degrades  quality  a  lot  in  almost all cases (see
              skiploopfilter for available skip values).

              Skips decoding of frames completely. Big speedup, but jerky  motion  and  sometimes
              bad artifacts (see skiploopfilter for available skip values).

              Number  of  threads  to  use  for decoding. Whether threading is actually supported
              depends on codec. 0 means autodetect number of cores on the machine and  use  that,
              up to the maximum of 16 (default: 0).

       --version, -V
              Print version string and exit.

              Specify a list of video filters to apply to the video stream. See VIDEO FILTERS for
              details and descriptions of the available filters.  The option  variants  --vf-add,
              --vf-pre,  --vf-del  and  --vf-clr exist to modify a previously specified list, but
              you should not need these for typical use.

              Select video channel. auto selects the default, no disables video.

       --video-align-x=<-1-1>, --video-align-y=<-1-1>
              Moves the video rectangle within the black borders, which are usually added to  pad
              the   video   to   screen   if  video  and  screen  aspect  ratios  are  different.
              --video-align-y=-1 would move the video to the top of the screen (leaving a  border
              only  on the bottom), a value of 0 centers it (default), and a value of 1 would put
              the video at the bottom of the screen.

              If video and screen aspect match perfectly, these options do nothing.

              This option is disabled if the --no-keepaspect option is used.

       --video-pan-x=<value>, --video-pan-y=<value>
              Moves the displayed video rectangle by the given value in the X or Y direction. The
              unit  is in fractions of the size of the scaled video (the full size, even if parts
              of the video are not visible due to panscan or other options).

              For example, displaying a 1280x720 video fullscreen  on  a  1680x1050  screen  with
              --video-pan-x=-0.1  would  move the video 168 pixels to the left (making 128 pixels
              of the source video invisible).

              This option is disabled if the --no-keepaspect option is used.

              Disable scaling of the video. If the window is larger than the  video,  black  bars
              are  added.  Otherwise,  the video is cropped. The video still can be influenced by
              the other --video-... options. (If the --video-zoom option is set to a value  other
              than  1, scaling is enabled, but the video isn't automatically scaled to the window

              The video and monitor aspects aspect  will  be  ignored.  Aspect  correction  would
              require  to  scale  the  video  in  the  X or Y direction, but this option disables
              scaling, disabling all aspect correction.

              Note that the scaler algorithm may still be used, even if the video  isn't  scaled.
              For example, this can influence chroma conversion.

              This option is disabled if the --no-keepaspect option is used.

              Adjust  the video display scale factor by the given value. The unit is in fractions
              of the (scaled) window video size.

              For example, given a 1280x720 video shown in a 1280x720  window,  --video-zoom=-0.1
              would  make  the  video  by  128  pixels smaller in X direction, and 72 pixels in Y

              This option is disabled if the --no-keepaspect option is used.

              Specify a priority list of video output drivers to be used.  For  interactive  use,
              one  would  normally  specify  a  single  one  to  use, but in configuration files,
              specifying a list of fallbacks may make sense. See VIDEO OUTPUT DRIVERS for details
              and descriptions of available drivers.

              Set  the  step  size of mixer volume changes in percent of the full range (default:

              Set the startup volume. A value of -1 (the default) will not change the volume. See
              also --softvol.

              Used internally for use by playback resume (e.g. with quit_watch_later).  Restoring
              value has to be done carefully, because different AOs as well as softvol  can  have
              different  value  ranges, and we don't want to restore volume if setting the volume
              changes it system wide. The normal options (like --volume)  would  always  set  the
              volume.  This  option was added for restoring volume in a safer way (by storing the
              method used to set the volume), and is not  generally  useful.  Its  semantics  are
              considered private to mpv.

              Do not use.

              (X11  and  Windows  only) This tells mpv to attach to an existing window. The ID is
              interpreted as "Window" on X11, and as HWND on Windows. If a VO  is  selected  that
              supports this option, a new window will be created and the given window will be set
              as parent. The window will always be resized to cover the parent window fully,  and
              will add black bars to compensate for the video aspect ratio.

              See also --slave-broken.


       Audio output drivers are interfaces to different audio output facilities. The syntax is:

              Specify a priority list of audio output drivers to be used.

       If  the  list has a trailing ',', mpv will fall back on drivers not contained in the list.
       Suboptions are optional and can mostly be omitted.

       You can also set defaults for each driver. The defaults  are  applied  before  the  normal
       driver parameters.

              Set defaults for each driver.

          See --ao=help for a list of compiled-in audio output drivers.


          • --ao=alsa,oss, Try the ALSA driver, then the OSS driver, then others.

          • --ao=alsa:no-block:device=[hw:0,3]  Sets  noblock-mode  and  the device-name as first
            card, fourth device.

       Available audio output drivers are:

       alsa (Linux only)
              ALSA audio output driver

                     Sets noblock-mode.

                     Enable ALSA resampling plugin. (This is disabled by  default,  because  some
                     drivers report incorrect audio delay in some cases.)

                     Sets  the device name. For ac3 output via S/PDIF, use an "iec958" or "spdif"
                     device, unless you really know how to set it correctly.

                     Set the mixer device used with --no-softvol (default: default).

                     Set the name of the mixer element (default: Master). This is for example PCM
                     or Master.

                     Set  the  index  of  the  mixer channel (default: 0). Consider the output of
                     "amixer scontrols", then the index is the number that follows  the  name  of
                     the element.

                 MPlayer  and  mplayer2 required you to replace any ',' with '.' and any ':' with
                 '=' in the ALSA device name. mpv does not do this anymore.  Instead,  quote  the
                 device name:

                 Note that the [ and ] simply quote the device name. With some shells (like zsh),
                 you have to quote the option string to prevent the shell from  interpreting  the
                 brackets instead of passing them to mpv.

       oss    OSS audio output driver

                     Sets the audio output device (default: /dev/dsp).

                     Sets the audio mixer device (default: /dev/mixer).

                     Sets the audio mixer channel (default: pcm). Other valid values include vol,
                     pcm, line. For a complete list of options  look  for  SOUND_DEVICE_NAMES  in

       jack   JACK (Jack Audio Connection Kit) audio output driver

                     Connects to the ports with the given name (default: physical ports).

                     Client  name  that  is  passed to JACK (default: mpv). Useful if you want to
                     have certain connections established automatically.

                     Estimate the audio delay, supposed  to  make  the  video  playback  smoother
                     (default: enabled).

                     Automatically  start  jackd if necessary (default: disabled). Note that this
                     tends to be unreliable and will flood stdout with server messages.

                     Automatically create connections to output ports (default:  enabled).   When
                     enabled, the maximum number of output channels will be limited to the number
                     of available output ports.

                     Select the standard channel layout  (default:  alsa).  JACK  itself  has  no
                     notion  of  channel layouts (i.e. assigning which speaker a given channel is
                     supposed to map to) - it just takes whatever the  application  outputs,  and
                     reroutes  it  to  whatever  the  user  defines.  This means the user and the
                     application are in charge of dealing with the channel layout. alsa uses  the
                     old  MPlayer  layout,  which is inspired by ALSA's standard layouts. In this
                     mode, ao_jack will refuse to play 3 or 7  channels  (because  these  do  not
                     really    have    a    defined    meaning    in   MPlayer).   waveext   uses
                     WAVE_FORMAT_EXTENSIBLE  order,  which,  even  though  it  was   defined   by
                     Microsoft, is the standard on many systems.  The value any makes JACK accept
                     whatever comes from the audio filter chain, regardless of channel layout and
                     without  reordering.  This  mode is probably not very useful, other than for
                     debugging or when used with fixed setups.

       coreaudio (Mac OS X only)
              Native Mac OS X audio output driver

                     ID of output device to use (0 = default device)

              help   List all available output devices with their IDs.

       openal Experimental OpenAL audio output driver

       pulse  PulseAudio audio output driver

              [<host>][:<output sink>]
                     Specify the host and optionally output sink to use. An empty  <host>  string
                     uses  a local connection, "localhost" uses network transfer (most likely not
                     what you want).

              PortAudio audio output driver. This works on all platforms, and  has  extensive  MS
              Windows support.

              device Specify  the  subdevice to use. Giving help as device name lists all devices
                     found by PortAudio. Devices can be given as numeric values, starting from 1.

       dsound (Windows only)
              DirectX DirectSound audio output driver

                     Sets the device number to use. Playing a file with -v will show  a  list  of
                     available devices.

       sdl    SDL 1.2+ audio output driver. Should work on any platform supported by SDL 1.2, but
              may require the SDL_AUDIODRIVER environment variable to be  set  appropriately  for
              your system.

                     Sets the audio buffer length in seconds. Is used only as a hint by the sound
                     system. Playing a file with -v will show the requested  and  obtained  exact
                     buffer size. A value of 0 selects the sound system default.

                     Sets the number of extra audio buffers in mpv. Usually needs not be changed.

       null   Produces  no audio output but maintains video playback speed. Use --ao=null:untimed
              for benchmarking.

                     Do not simulate timing of a perfect audio device. This means audio  decoding
                     will go as fast as possible, instead of timing it to the system clock.

              buffer Simulated buffer length in seconds.

                     Simulated chunk size in samples.

       pcm    Raw PCM/WAVE file writer audio output

                     Include  or  do  not  include  the WAVE header (default: included). When not
                     included, raw PCM will be generated.

                     Write the sound to <filename>  instead  of  the  default  audiodump.wav.  If
                     no-waveheader is specified, the default is audiodump.pcm.

       rsound Audio output to an RSound daemon

                     Set the address of the server (default: localhost).  Can be either a network
                     hostname for TCP connections or a Unix domain socket path starting with '/'.

                     Set the TCP port used for connecting to the server  (default:  12345).   Not
                     used if connecting to a Unix domain socket.

       sndio  Audio output to the OpenBSD sndio sound system

              (Note: only supports mono, stereo, 4.0, 5.1 and 7.1 channel layouts.)

                     sndio device to use (default: $AUDIODEVICE, resp. snd0).

       wasapi Audio output to the Windows Audio Session API.

                     Uses  the requested endpoint instead of the system's default audio endpoint.
                     Both the number and the ID String are valid; the ID String is guaranteed  to
                     not change unless the driver is uninstalled.

                     Also  supports  searching  active  devices  by name. If more than one device
                     matches the name, refuses loading it.

                     To get a list of the valid devices, give help as the id.  The  list  is  the
                     same as the list suboption, but stops the player initialization.

                     Requests  exclusive,  direct  hardware  access. By definition prevents sound
                     playback of any other program until mpv exits.

              list   Lists all audio endpoints (output devices) present in the system.


       Video output drivers are interfaces to different video output facilities. The syntax is:

              Specify a priority list of video output drivers to be used.

       If the list has a trailing ',', mpv will fall back on drivers not contained in  the  list.
       Suboptions are optional and can mostly be omitted.

       You  can  also  set  defaults  for each driver. The defaults are applied before the normal
       driver parameters.

              Set defaults for each driver.

          See --vo=help for a list of compiled-in video output drivers.


                 Try the opengl driver, then the xv driver, then others.

       Available video output drivers are:

       xv (X11 only)
              Uses the XVideo extension to enable hardware-accelerated display. This is the  most
              compatible  VO  on  X, but may be low-quality, and has issues with OSD and subtitle

                     Select a specific XVideo adaptor (check xvinfo results).

                     Select a specific XVideo port.

                     Select the source from which the colorkey is taken (default: cur).

                     cur    The default takes the colorkey currently set in Xv.

                     use    Use but do not set the colorkey from mpv (use the  --colorkey  option
                            to change it).

                     set    Same as use but also sets the supplied colorkey.

                     Sets the colorkey drawing method (default: man).

                     man    Draw the colorkey manually (reduces flicker in some cases).

                     bg     Set the colorkey as window background.

                     auto   Let Xv draw the colorkey.

                     Changes  the  colorkey to an RGB value of your choice. 0x000000 is black and
                     0xffffff is white.

                     Disables colorkeying.

       x11 (X11 only)
              Shared memory video output driver without hardware acceleration that works whenever
              X11 is present.

                 This is a fallback only, and should not be normally used.

       vdpau (X11 only)
              Uses  the  VDPAU  interface  to display and optionally also decode video.  Hardware
              decoding is used with --hwdec=vdpau.

                     For positive values, apply a sharpening algorithm to the video, for negative
                     values a blurring algorithm (default: 0).

                     Apply  a  noise  reduction  algorithm  to  the  video  (default: 0; no noise

                     Select deinterlacing mode (default: -3). Positive  values  choose  mode  and
                     enable   deinterlacing.   Corresponding  negative  values  select  the  same
                     deinterlacing mode, but do not enable deinterlacing on  startup  (useful  in
                     configuration  files  to specify which mode will be enabled by the "D" key).
                     All modes respect --field-dominance.

                     0      Same as -3.

                     1      Show only first field.

                     2      Bob deinterlacing.

                     3      Motion-adaptive temporal deinterlacing. May lead to A/V  desync  with
                            slow video hardware and/or high resolution.

                     4      Motion-adaptive   temporal  deinterlacing  with  edge-guided  spatial
                            interpolation. Needs fast video hardware.

                     Makes temporal deinterlacers operate both on luma and chroma (default).  Use
                     no-chroma-deint  to  solely  use  luma  and speed up advanced deinterlacing.
                     Useful with slow video memory.

              pullup Try to apply inverse telecine, needs motion adaptive temporal deinterlacing.


                     0      Use default VDPAU scaling (default).

                     1-9    Apply high quality VDPAU scaling (needs capable hardware).

                     Override autodetected display refresh rate value (the value  is  needed  for
                     framedrop  to  allow  video playback rates higher than display refresh rate,
                     and  for  vsync-aware  frame  timing  adjustments).  Default  0  means   use
                     autodetected  value. A positive value is interpreted as a refresh rate in Hz
                     and overrides the autodetected value. A negative value disables  all  timing
                     adjustment and framedrop logic.

                     NVIDIA's  current  VDPAU implementation behaves somewhat differently under a
                     compositing  window  manager  and  does  not  give  accurate  frame   timing
                     information.  With this option enabled, the player tries to detect whether a
                     compositing window manager  is  active.  If  one  is  detected,  the  player
                     disables  timing  adjustments  as  if the user had specified fps=-1 (as they
                     would be based on incorrect input).  This  means  timing  is  somewhat  less
                     accurate  than without compositing, but with the composited mode behavior of
                     the NVIDIA driver, there is no hard playback speed limit  even  without  the
                     disabled logic. Enabled by default, use no-composite-detect to disable.

              queuetime_windowed=<number> and queuetime_fs=<number>
                     Use  VDPAU's  presentation  queue  functionality to queue future video frame
                     changes at most this many milliseconds in advance (default: 50).  See  below
                     for additional information.

                     Allocate this many output surfaces to display video frames (default: 3). See
                     below for additional information.

                     Set the VDPAU presentation queue background color, which in practice is  the
                     colorkey  used  if  VDPAU  operates  in overlay mode (default: #020507, some
                     shade of black). If the alpha component of this  value  is  0,  the  default
                     VDPAU colorkey will be used instead (which is usually green).

                     Never accept RGBA input. This means mpv will insert a filter to convert to a
                     YUV format before the VO. Sometimes useful to force availability of  certain
                     YUV-only features, like video equalizer or deinterlacing.

              Using  the  VDPAU  frame queueing functionality controlled by the queuetime options
              makes mpv's frame flip timing less sensitive to system CPU load and allows  mpv  to
              start  decoding  the next frame(s) slightly earlier, which can reduce jitter caused
              by individual slow-to-decode frames. However, the NVIDIA graphics drivers can  make
              other  window behavior such as window moves choppy if VDPAU is using the blit queue
              (mainly happens if you have the composite extension enabled) and  this  feature  is
              active.  If  this  happens  on  your system and it bothers you then you can set the
              queuetime value to 0 to disable this feature. The settings to use in  windowed  and
              fullscreen  mode are separate because there should be no reason to disable this for
              fullscreen mode (as the driver issue should not affect the video itself).

              You can queue more  frames  ahead  by  increasing  the  queuetime  values  and  the
              output_surfaces count (to ensure enough surfaces to buffer video for a certain time
              ahead you need at least as many surfaces as the video has frames during that  time,
              plus  two).  This  could help make video smoother in some cases. The main downsides
              are increased video RAM requirements for the surfaces and laggier display  response
              to  user  commands  (display  changes  only  become visible some time after they're
              queued). The graphics driver implementation may also have limits on the  length  of
              maximum queuing time or number of queued surfaces that work well or at all.

       direct3d_shaders (Windows only)
              Video output driver that uses the Direct3D interface.

                     Use IDirect3DDevice9::StretchRect over other methods if possible.

                     Never render the video using IDirect3DDevice9::StretchRect.

                     Never  render the video using D3D texture rendering. Rendering with textures
                     + shader will still be allowed. Add disable-shaders  to  completely  disable
                     video rendering with textures.

                     Never use shaders when rendering video.

                     Never render YUV video with more than 8 bits per component.  Using this flag
                     will force software conversion to 8-bit.

                     Normally texture sizes are always aligned to 16. With this  option  enabled,
                     the  video  texture  will  always  have  exactly  the same size as the video

              Debug options. These might be incorrect, might be  removed  in  the  future,  might
              crash, might cause slow downs, etc. Contact the developers if you actually need any
              of these for performance or proper operation.

                     Always  force  textures  to  power  of  2,  even  if  the   device   reports
                     non-power-of-2 texture sizes as supported.

                     Only  affects  operation with shaders/texturing enabled, and (E)OSD.  Values
                     for N:

                        0      default, will often use an additional shadow texture + copy

                        1      use D3DPOOL_MANAGED

                        2      use D3DPOOL_DEFAULT

                        3      use D3DPOOL_SYSTEMMEM, but without shadow texture

                     Use D3DSWAPEFFECT_DISCARD, which might be faster.  Might be slower  too,  as
                     it must(?) clear every frame.

                     Always resize the backbuffer to window size.

       direct3d (Windows only)
              Same as direct3d_shaders, but with the options disable-textures and disable-shaders

       corevideo (Mac OS X 10.6 and later)
              Mac  OS  X  CoreVideo  video  output  driver.  Uses  the  CoreVideo  APIs  to  fill
              PixelBuffers  and  generate  OpenGL  textures  from  them (useful as a fallback for

       opengl OpenGL video output driver. It supports extended  scaling  methods,  dithering  and
              color management.

              By default, it tries to use fast and fail-safe settings. Use the alias opengl-hq to
              use this driver with defaults set to high quality rendering.

              Requires at least  OpenGL  2.1  and  the  GL_ARB_texture_rg  extension.  For  older
              drivers, opengl-old may work.

              Some  features are available with OpenGL 3 capable graphics drivers only (or if the
              necessary extensions are available).

              Hardware decoding over OpenGL-interop is supported to some  degree.  Note  that  in
              this  mode,  some  corner  case  might  not  be  gracefully handled, and colorspace
              conversion and chroma upsampling is generally in the hand of the  hardware  decoder


                        Bilinear  hardware texture filtering (fastest, mid-quality).  This is the

                        Lanczos scaling with radius=2. Provides good quality and speed.  This  is
                        the default when using opengl-hq.

                        Lanczos with radius=3.

                        Bicubic filter. Has a blurring effect on the image, even if no scaling is

                        Unsharp masking (sharpening) with radius=3 and a default strength of  0.5
                        (see lparam1).

                        Unsharp  masking (sharpening) with radius=5 and a default strength of 0.5
                        (see lparam1).

                        Mitchell-Netravali. The b and c parameters can be set  with  lparam1  and
                        lparam2. Both are set to 1/3 by default.

                 There are some more filters. For a complete list, pass help as value, e.g.:

                     mpv --vo=opengl:lscale=help

                     Set filter parameters. Ignored if the filter is not tunable. These are unset
                     by default, and use the filter specific default if applicable.

                     See lparam1.

                     Disable the scaler if the video image is not resized. In that case, bilinear
                     is  used  instead  whatever  is set with lscale. Bilinear will reproduce the
                     source image perfectly if no scaling is performed.  Note  that  this  option
                     never  affects  cscale,  although  the  different  processing chain might do
                     chroma scaling differently if lscale is disabled.

                     Select a method for stereo display. You may have to use --aspect to fix  the
                     aspect value. Experimental, do not expect too much from it.

                     no     Normal 2D display

                            Convert side by side input to full-color red-cyan stereo.

                            Convert side by side input to full-color green-magenta stereo.

                            Convert  side by side input to quadbuffered stereo. Only supported by
                            very few OpenGL cards.

              srgb   Enable gamma-correct scaling by working in linear light. This makes  use  of
                     sRGB textures and framebuffers.  This option forces the options indirect and

                        for YUV colorspaces, gamma 1/0.45 (2.222) is assumed. RGB input is always
                        assumed to be in sRGB.

                     This  option  is  not  really  useful, as gamma-correct scaling has not much
                     influence on typical video playback. Most visible effect comes from slightly
                     different gamma.

              pbo    Enable  use  of  PBOs.  This  is  slightly faster, but can sometimes lead to
                     sporadic and temporary image corruption (in theory, because reupload is  not
                     retried  when  it  fails),  and  perhaps actually triggers slower paths with
                     drivers that don't support PBOs properly.

                     Set dither target depth to N. Default: no.

                     no     Disable any dithering done by mpv.

                     auto   Automatic selection. If output bit depth cannot be detected,  8  bits
                            per component are assumed.

                     8      Dither to 8 bit output.

                     Note  that  the  depth  of  the  connected  video  display device can not be
                     detected. Often, LCD panels will do dithering on their own, which  conflicts
                     with opengl's dithering and leads to ugly output.

                     Set  the  size  of  the  dither  matrix (default: 6). The actual size of the
                     matrix is (2^N) x (2^N) for an option value of N, so a value of  6  gives  a
                     size  of  64x64. The matrix is generated at startup time, and a large matrix
                     can take rather long to compute (seconds).

                     Used in dither=fruit mode only.

                     Select dithering algorithm (default: fruit).

                     Enable temporal dithering. (Only active if dithering is enabled in general.)
                     This changes between 8 different dithering pattern on each frame by changing
                     the orientation of the tiled dithering matrix.  Unfortunately, this can lead
                     to flicker on LCD displays, since these have a high reaction time.

              debug  Check for OpenGL errors, i.e. call glGetError(). Also request a debug OpenGL
                     context (which does  nothing  with  current  graphics  drivers  as  of  this

                     Interval  in  displayed frames between two buffer swaps.  1 is equivalent to
                     enable VSYNC, 0 to disable VSYNC.

                     When using a separable scale filter for luma, usually two filter passes  are
                     done. This is often faster. However, it forces conversion to RGB in an extra
                     pass, so it can actually be slower if used with fast filters on small screen
                     resolutions.  Using  this  options  will  make rendering a single operation.
                     Note that chroma scalers are always done as 1-pass filters.

                     As lscale, but for chroma (2x slower with little visible effect).  Note that
                     with some scaling filters, upscaling is always done in RGB. If chroma is not
                     subsampled, this option is ignored, and the luma  scaler  is  used  instead.
                     Setting this option is often useless.

                     When   using   convolution  based  filters,  extend  the  filter  size  when
                     downscaling. Trades quality for reduced downscaling performance.

                     Force use of power-of-2 texture sizes. For debugging only.  Borders will  be
                     distorted due to filtering.

                     Call glFinish() before swapping buffers

              sw     Continue even if a software renderer is detected.

                     The  value  auto  (the  default) selects the windowing backend. You can also
                     pass help to get  a  complete  list  of  compiled  in  backends  (sorted  by
                     autoprobe order).

                     auto   auto-select (default)

                     cocoa  Cocoa/OSX

                     win    Win32/WGL

                     x11    X11/GLX


                     Do YUV conversion and scaling as separate passes. This will first render the
                     video into a video-sized RGB texture, and draw the result  on  screen.   The
                     luma  scaler  is  used to scale the RGB image when rendering to screen.  The
                     chroma scaler is used only on YUV conversion,  and  only  if  the  video  is
                     chroma-subsampled  (usually  the  case).   This mechanism is disabled on RGB
                     input.  Specifying this option directly is generally  useful  for  debugging

                     Selects  the  internal  format  of  textures  used  for FBOs. The format can
                     influence performance and quality of the video output. (FBOs are not  always
                     used,  and  typically only when using extended scalers.)  fmt can be one of:
                     rgb, rgba, rgb8, rgb10, rgb10_a2, rgb16,  rgb16f,  rgb32f,  rgba12,  rgba16,
                     rgba16f, rgba32f.  Default: rgb.

              gamma  Always enable gamma control. (Disables delayed enabling.)

                     Load  an  ICC  profile  and use it to transform linear RGB to screen output.
                     Needs LittleCMS2 support compiled in.

                     Store and load the 3D LUT created from the ICC profile in this  file.   This
                     can be used to speed up loading, since LittleCMS2 can take a while to create
                     the 3D LUT. Note that this file contains  an  uncompressed  LUT.   Its  size
                     depends on the 3dlut-size, and can be very big.


                     0      perceptual

                     1      relative colorimetric

                     2      saturation

                     3      absolute colorimetric (default)

                     Size  of  the  3D  LUT  generated  from  the  ICC profile in each dimension.
                     Default is 128x256x64.  Sizes must be a power of two, and 256 at most.

                     Decides what to do if the input has an alpha component (default: blend).

                     blend  Blend the frame against a black background.

                     yes    Try to create a framebuffer with alpha  component.  This  only  makes
                            sense  if  the  video  contains alpha information (which is extremely
                            rare). May not be supported on all platforms. If  alpha  framebuffers
                            are unavailable, it silently falls back on a normal framebuffer. Note
                            that when using FBO indirections (such as  with  opengl-hq),  an  FBO
                            format with alpha must be specified with the fbo-format option.

                     no     Ignore alpha component.

                     Set  the  YUV  chroma  sample  location.  auto means use the bitstream flags
                     (default: auto).

                     Force use of rectangle textures (default: no). Normally this shouldn't  have
                     any  advantages  over normal textures. Note that hardware decoding overrides
                     this flag.

              Same as opengl, but with default settings for high quality rendering.

              This is equivalent to:


              Note that some cheaper LCDs do dithering  that  gravely  interferes  with  opengl's
              dithering. Disabling dithering with dither-depth=no helps.

              Unlike  opengl,  opengl-hq  makes use of FBOs by default. Sometimes you can achieve
              better quality or performance by  changing  the  fbo-format  suboption  to  rgb16f,
              rgb32f  or  rgb.  Known  problems  include  Mesa/Intel  not  accepting  rgb16, Mesa
              sometimes not being compiled with float texture support, and some OSX setups  being
              very slow with rgb16 but fast with rgb32f.

              OpenGL  video  output  driver,  old  version.  Video  size must be smaller than the
              maximum texture size of your OpenGL implementation. Intended to work even with  the
              most  basic  OpenGL  implementations,  but also makes use of newer extensions which
              allow support for more color spaces.

              The code performs very few checks, so if a feature does not  work,  this  might  be
              because  it is not supported by your card and/or OpenGL implementation, even if you
              do not get any error message.  Use  glxinfo  or  a  similar  tool  to  display  the
              supported OpenGL extensions.

                     ATI  drivers  may  give  a  corrupted  image  when PBOs are used (when using
                     force-pbo). This option fixes this, at the  expense  of  using  a  bit  more

                     Always  uses  PBOs to transfer textures even if this involves an extra copy.
                     Currently this gives a little extra speed with NVIDIA drivers and a lot more
                     speed with ATI drivers. May need the ati-hack suboption to work correctly.

                     Scales  the  OSD  and  subtitles  instead  of rendering them at display size
                     (default: disabled).

                     Select usage of rectangular textures, which saves video RAM,  but  often  is
                     slower (default: 0).

                     0      Use power-of-two textures (default).

                     1      Use the GL_ARB_texture_rectangle extension.

                     2      Use the GL_ARB_texture_non_power_of_two extension. In some cases only
                            supported in software and thus very slow.

                     Minimum interval between two  buffer  swaps,  counted  in  displayed  frames
                     (default:  1).  1  is  equivalent  to  enabling VSYNC, 0 to disabling VSYNC.
                     Values below 0 will  leave  it  at  the  system  default.  This  limits  the
                     framerate  to  (horizontal  refresh rate / n). Requires GLX_SGI_swap_control
                     support to work. With some (most/all?)  implementations this only  works  in
                     fullscreen mode.

              ycbcr  Use the GL_MESA_ycbcr_texture extension to convert YUV to RGB. In most cases
                     this is probably slower than doing software conversion to RGB.

                     Select the type of YUV to RGB  conversion.  The  default  is  auto-detection
                     deciding between values 0 and 2.

                     0      Use   software  conversion.  Compatible  with  all  OpenGL  versions.
                            Provides brightness, contrast and saturation control.

                     1      Same as 2. This used to use NVIDIA-specific extensions, which did not
                            provide  any advantages over using fragment programs, except possibly
                            on very ancient graphics cards. It produced a gray-ish output,  which
                            is why it has been removed.

                     2      Use  a  fragment program. Needs the GL_ARB_fragment_program extension
                            and at least three  texture  units.  Provides  brightness,  contrast,
                            saturation and hue control.

                     3      Use   a  fragment  program  using  the  POW  instruction.  Needs  the
                            GL_ARB_fragment_program extension and at least three  texture  units.
                            Provides  brightness,  contrast,  saturation,  hue and gamma control.
                            Gamma can also be set independently for red, green and blue. Method 4
                            is usually faster.

                     4      Use   a   fragment   program   with   additional  lookup.  Needs  the
                            GL_ARB_fragment_program extension and at least  four  texture  units.
                            Provides  brightness,  contrast,  saturation,  hue and gamma control.
                            Gamma can also be set independently for red, green and blue.

                     5      Use ATI-specific method (for older cards). This uses an  ATI-specific
                            extension  (GL_ATI_fragment_shader - not GL_ARB_fragment_shader!). At
                            least three texture units are needed.  Provides  saturation  and  hue
                            control. This method is fast but inexact.

                     6      Use   a   3D   texture   to  do  conversion  via  lookup.  Needs  the
                            GL_ARB_fragment_program extension and at least  four  texture  units.
                            Extremely slow (software emulation) on some (all?) ATI cards since it
                            uses a texture with border  pixels.  Provides  brightness,  contrast,
                            saturation,   hue   and   gamma   control.  Gamma  can  also  be  set
                            independently for red, green and blue.  Speed  depends  more  on  GPU
                            memory bandwidth than other methods.

                     Select the scaling function to use for luminance scaling. Only valid for yuv
                     modes 2, 3, 4 and 6.

                     0      Use simple linear filtering (default).

                     1      Use bicubic B-spline filtering (better quality). Needs one additional
                            texture  unit. Older cards will not be able to handle this for chroma
                            at least in fullscreen mode.

                     2      Use cubic filtering  in  horizontal,  linear  filtering  in  vertical
                            direction. Works on a few more cards than method 1.

                     3      Same  as 1 but does not use a lookup texture. Might be faster on some

                     4      Use experimental unsharp masking  with  3x3  support  and  a  default
                            strength of 0.5 (see filter-strength).

                     5      Use  experimental  unsharp  masking  with  5x5  support and a default
                            strength of 0.5 (see filter-strength).

                     Select the scaling function to use for chrominance scaling. For details  see

                     Set the effect strength for the lscale/cscale filters that support it.

                     Select  a method for stereo display. You may have to use --aspect to fix the
                     aspect value. Experimental, do not expect too much from it.

                     0      Normal 2D display

                     1      Convert side by side input to full-color red-cyan stereo.

                     2      Convert side by side input to full-color green-magenta stereo.

                     3      Convert side by side input to quadbuffered stereo. Only supported  by
                            very few OpenGL cards.

              The following options are only useful if writing your own fragment programs.

                     Load a custom fragment program from <filename>.

                     Load  a  custom  "gamma  ramp"  texture from <filename>. This can be used in
                     combination with yuv=4 or with the customprog option.

                     If enabled (default) use GL_LINEAR interpolation, otherwise  use  GL_NEAREST
                     for customtex texture.

                     If  enabled,  use  texture_rectangle  for the customtex texture.  Default is

                     If enabled, mipmaps for the video are automatically generated.  This  should
                     be  useful together with the customprog and the TXB instruction to implement
                     blur filters with a large radius. For most OpenGL implementations,  this  is
                     very slow for any non-RGB formats.  Default is disabled.

              Normally  there  is  no  reason to use the following options; they mostly exist for
              testing purposes.

                     Call glFinish() before swapping buffers.  Slower  but  in  some  cases  more
                     correct output (default: disabled).

                     Enables  support  for  more  (RGB and BGR) color formats (default: enabled).
                     Needs OpenGL version >= 1.2.

                     Number of lines copied to texture in one piece (default:  0).  0  for  whole

              sw     Continue even if a software renderer is detected.


                     auto   auto-select (default)

                     cocoa  Cocoa/OSX

                     win    Win32/WGL

                     x11    X11/GLX


       sdl    SDL  2.0+  Render video output driver, depending on system with or without hardware
              acceleration. Should work on all platforms supported by SDL 2.0.  For tuning, refer
              to your copy of the file SDL_hints.h.

              sw     Continue even if a software renderer is detected.

                     Instruct SDL to switch the monitor video mode when going fullscreen.

       vaapi  Intel  VA  API  video  output  driver with support for hardware decoding. Note that
              there is absolutely no reason to use this,  other  than  wanting  to  use  hardware
              decoding  to  save power on laptops, or possibly preventing video tearing with some


                            Driver default (mpv default as well).

                     fast   Fast, but low quality.

                     hq     Unspecified driver dependent high-quality scaling, slow.

                     nla    non-linear anamorphic scaling

                     Select deinterlacing  algorithm.  Note  that  by  default  deinterlacing  is
                     initially  always  off,  and needs to be enabled with the D key (default key
                     binding for cycle deinterlace).

                     This option doesn't apply if libva supports video post processing (vpp).  In
                     this  case, the default for deint-mode is no, and enabling deinterlacing via
                     user interaction using the methods  mentioned  above  actually  inserts  the
                     vavpp  video filter. If vpp is not actually supported with the libva backend
                     in use, you can use this option to forcibly enable VO based deinterlacing.

                     no     Don't allow deinterlacing (default for newer libva).

                            Show only first field (going by --field-dominance).

                     bob    bob deinterlacing (default for older libva).

                     If enabled, then the OSD is rendered  at  video  resolution  and  scaled  to
                     display resolution. By default, this is disabled, and the OSD is rendered at
                     display resolution if the driver supports it.

       null   Produces no video output. Useful for benchmarking.

       caca   Color ASCII art video output driver that works on a text console.

       image  Output each frame into an image file in the current directory. Each file takes  the
              frame number padded with leading zeros as name.

                     Select the image file format.

                     jpg    JPEG files, extension .jpg. (Default.)

                     jpeg   JPEG files, extension .jpeg.

                     png    PNG files.

                     ppm    Portable bitmap format.

                     pgm    Portable graymap format.

                     pgmyuv Portable graymap format, using the YV12 pixel format.

                     tga    Truevision TGA.

                     PNG compression factor (speed vs. file size tradeoff) (default: 7)

                     Filter  applied  prior  to  PNG  compression (0 = none; 1 = sub; 2 = up; 3 =
                     average; 4 = Paeth; 5 = mixed) (default: 5)

                     JPEG quality factor (default: 90)

                     Specify standard or progressive JPEG (default: no).

                     Specify use of JPEG baseline or not (default: yes).

                     JPEG optimization factor (default: 100)

                     smooth factor (default: 0)

                     JPEG DPI (default: 72)

                     Specify the directory to save the image files to (default: ./).

       wayland (Wayland only)
              Wayland shared memory video output as fallback for opengl.

                     Use the default RGB32 format instead of an auto-detected one.

              alpha  Use a buffer format that supports videos and images with alpha information


       Audio filters allow you to modify the audio stream and its properties. The syntax is:

              Setup a chain of audio filters.

          To get a full list of available audio filters, see --af=help.

       You can also set defaults for each filter. The defaults  are  applied  before  the  normal
       filter parameters.

              Set defaults for each filter.

       Audio filters are managed in lists. There are a few commands to manage the filter list:

              Appends the filters given as arguments to the filter list.

              Prepends the filters given as arguments to the filter list.

              Deletes  the  filters  at  the  given  indexes.  Index numbers start at 0, negative
              numbers address the end of the list (-1 is the last).

              Completely empties the filter list.

       Available filters are:

              This filter uses libavresample (or libswresample, depending on the build) to change
              sample  rate, sample format, or channel layout of the audio stream.  This filter is
              automatically enabled if the audio output does not support the audio  configuration
              of the file being played.

              It supports only the following sample formats: u8, s16, s32, float.

                     Length of the filter with respect to the lower sampling rate. (default: 16)

                     Log2 of the number of polyphase entries. (..., 10->1024, 11->2048, 12->4096,
                     ...) (default: 10->1024)

                     Cutoff frequency (0.0-1.0), default set depending upon filter length.

              linear If set then filters will be linearly interpolated between polyphase entries.
                     (default: no)

                     Do not detach if input and output audio format/rate/channels match.  (If you
                     just want to set defaults  for  this  filter  that  will  be  used  even  by
                     automatically  inserted  lavrresample  instances,  you should prefer setting
                     them with --af-defaults=lavrresample:....)

                     Set AVOptions on the SwrContext or AVAudioResampleContext. These  should  be
                     documented by FFmpeg or Libav.

              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, native-endian when outputting to S/PDIF. If the input
              sample rate is not 48 kHz, 44.1 kHz or 32 kHz, it will be resampled to 48 kHz.

                     Output raw AC-3 stream if no,  output  to  S/PDIF  for  passthrough  if  yes

                     The bitrate use for the AC-3 stream. Set it to 384 to get 384 kbps.

                     Valid values: 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320,
                     384, 448, 512, 576, 640.

                     The special value default selects a  default  bitrate  based  on  the  input
                     channel number:

                     1ch    96

                     2ch    192

                     3ch    224

                     4ch    384

                     5ch    448

                     6ch    448

                     If  the  input  channel number is less than <minchn>, the filter will detach
                     itself (default: 5).

              Produces a sine sweep.

                     Sine function delta, use very low values to hear the sweep.

              Remove a sine at the specified frequency. Useful to get rid of the 50/60Hz noise on
              low quality audio equipment. It only works on mono input.

              <freq> The frequency of the sine which should be removed (in Hz) (default: 50)

                     Controls  the  adaptivity  (a  larger  value  will  make the filter adapt to
                     amplitude  and  phase  changes  quicker,  a  smaller  value  will  make  the
                     adaptation slower) (default: 0.0001). Reasonable values are around 0.001.

              Bauer stereophonic to binaural transformation using libbs2b. Improves the headphone
              listening experience by  making  the  sound  similar  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.

                     Set cut frequency in Hz.

                     Set feed level for low frequencies in 0.1*dB.

                     Several profiles are available for convenience:

                            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.

              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)     │

              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 disabled. 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 a resampling filter before it reaches
              this filter.

                     floating point numbers representing the gain in dB for each  frequency  band


                 mpv --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.

              Can be used for adding, removing, routing and copying audio channels. If only <nch>
              is given, the default routing is used. It works as follows: If the number of output
              channels is greater than the number of input channels, empty channels are  inserted
              (except  when  mixing from mono to stereo; then the mono channel is duplicated). If
              the number of output channels is less  than  the  number  of  input  channels,  the
              exceeding channels are truncated.

              <nch>  number of output channels (1-8)

                     List  of , separated routes, in the form from1-to1,from2-to2,....  Each pair
                     defines where to route each channel. There can be at most 8 routes.  Without
                     this argument, the default routing is used. Since , is also used to separate
                     filters, you must quote this argument with [...] or similar.


                 mpv --af=channels=4:[0-1,1-0,0-2,1-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 were played back, channels 2 and 3 would
                        contain silence but 0 and 1 would still be swapped.

                 mpv --af=channels=6:[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.

                 You should probably not use this filter.  If  you  want  to  change  the  output
                 channel  layout, try the format filter, which can make mpv automatically up- and
                 downmix standard channel layouts.

              Force a specific audio format/configuration without  actually  changing  the  audio
              data.  Keep  in  mind  that  the  filter system might auto-insert actual conversion
              filters before or after this filter if needed.

              All parameters are optional. The  first  3  parameters  restrict  what  the  filter
              accepts  as  input.  The  out- parameters change the audio format, without actually
              doing a conversion. The data will  be  'reinterpreted'  by  the  filters  or  audio
              outputs following this filter.

                     Force  conversion  to this format. Use --af=format=format=help to get a list
                     of valid formats.

                     Force conversion to a specific sample rate. The rate is  an  integer,  48000
                     for example.

                     Force  mixing  to  a  specific  channel  layout.  See  --channels option for
                     possible values.




              See also --format, --srate, and --channels for related options.  Keep in mind  that
              --channels does not actually force the number of channels in most cases, while this
              filter can do this.

              NOTE: this filter used to be named force. Also, unlike the old format filter,  this
              does  not  do  any  actual  conversion  anymore.   Conversion  is  done  by  other,
              automatically inserted filters.

              Filter for internal use only. Converts between 24-bit and 32-bit sample formats.

              Filter for internal use only. Converts between signed/unsigned formats and  formats
              with different endian.

              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 use  the
              Master volume control of your sound card or the volume knob on your amplifier.

              NOTE: This filter is not reentrant and can therefore only be enabled once for every
              audio stream.

                     Sets the desired gain in dB for all channels in the stream  from  -200dB  to
                     +60dB,  where  -200dB  mutes the sound completely and +60dB equals a gain of
                     1000 (default: 0).

                     Turns soft clipping on. 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

              <s16>  Force  S16  sample format if set. Lower quality, but might be faster in some


                 mpv --af=volume=10.1 media.avi
                        Would amplify the sound by 10.1dB and hard-clip if the sound level is too

              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 center 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-channel file to two  channels  with  this
              filter can be found in the examples section near the end.

              <n>    Number of output channels (1-8).

                     A  list  of  values [L00,L01,L02,...,L10,L11,L12,...,Ln0,Ln1,Ln2,...], where
                     each element Lij means how much of input channel  i  is  mixed  into  output
                     channel  j (range 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.  Note that the values are separated by ,,  which  is
                     already  used by the option parser to separate filters. This is why you must
                     quote the value list with [...] or similar.


                 mpv --af=pan=1:[0.5,0.5] media.avi
                        Would downmix from stereo to mono.

                 mpv --af=pan=3:[1,0,0.5,0,1,0.5] media.avi
                        Would give 3 channel output leaving channels 0  and  1  intact,  and  mix
                        channels  0  and  1  into  output  channel  2  (which  could be sent to a
                        subwoofer for example).

                 If you just want to force remixing to a certain output  channel  layout,  it  is
                 easier  to  use  the  format filter. For example, mpv '--af=format=channels=5.1'
                 '--channels=5.1' would always force remixing audio to 5.1  and  output  it  like

              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

                 Disable  this  filter  when  you are playing media with an LFE channel (e.g. 5.1
                 surround 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 (default: 5). Observe that the number
                     of channels will automatically be increased to <ch> if necessary.


                 mpv --af=sub=100:4 --channels=5 media.avi
                        Would add a subwoofer 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 instead.

              <ch>   Determines  the  channel  number  in  which  to  insert  the center channel.
                     Channel number can be between 0 and 7 (default: 5). Observe that the  number
                     of channels will automatically be increased to <ch> if necessary.

              Decoder  for  matrix  encoded  surround  sound like Dolby Surround. Some files with
              2-channel audio actually contain matrix encoded surround sound.

                     delay time in ms for the rear speakers (0 to 1000) (default: 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 position  to
                     the  rear  speakers, then the delay should be set to 15ms if d1 <= d2 and to
                     15 + 5*(d1-d2) if d1 > d2.


                 mpv --af=surround=15 --channels=4 media.avi
                        Would add surround sound decoding with 15ms delay for the  sound  to  the
                        rear speakers.

              Delays  the  sound  to  the  loudspeakers  such  that  the sound from the different
              channels arrives at the listening position simultaneously. It is only useful if you
              have more than 2 loudspeakers.

                     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

              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.


                 mpv --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
                        subwoofer by 0ms and the center channel by 7ms.

              Exports  the  incoming  signal  to  other  processes using memory mapping (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.

                     File to map data to (required)

                     number of samples per channel (default: 512).


                 mpv --af=export=/tmp/mpv-af_export:1024 media.avi
                        Would export 1024 samples per channel to /tmp/mpv-af_export.

              (Linearly) increases the difference between left and right channels 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.

              Applies  dynamic  range  compression.  This maximizes the volume by compressing the
              audio signal's dynamic range. (Formerly called volnorm.)

                     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.

                     Sets the target amplitude as a fraction of the maximum for the  sample  type
                     (default: 0.25).

                 This  filter  can  cause  distortion  with  audio signals that have a very large
                 dynamic range.

              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.

                        See  also  the  note  about  the  LADSPA_PATH variable in the ENVIRONMENT
                        VARIABLES section.

                     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  are  zero or more , separated floating point values that determine
                     the behavior of the loaded plugin (for example delay,  threshold  or  gain).
                     In verbose mode (add -v to the mpv command line), all available controls and
                     their valid ranges are printed. This eliminates the use  of  'analyseplugin'
                     from  the  LADSPA  SDK.  Note that , is already used by the option parser to
                     separate filters, so you must  quote  the  list  of  values  with  [...]  or


                 mpv --af=ladspa='/usr/lib/ladspa/':delay_5s:[0.5,0.2] media.avi
                        Does something.

              Simple voice removal filter exploiting the fact that voice is usually recorded with
              mono gear and later 'center' mixed onto the final 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.

              Scales audio tempo without altering pitch,  optionally  synced  to  playback  speed

              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 analysis on the next 'search' ms of audio to determine
              the best overlap position.

                     Nominal  amount  to  scale  tempo.  Scales this amount in addition to speed.
                     (default: 1.0)

                     Length in milliseconds to output each stride. Too high of a value will cause
                     noticeable  skips  at  high  scale amounts and an echo at low scale amounts.
                     Very low values will alter pitch. Increasing improves performance. (default:

                     Percentage of stride to overlap. Decreasing improves performance.  (default:

                     Length in milliseconds to  search  for  best  overlap  position.  Decreasing
                     improves performance greatly. On slow systems, you will probably want to set
                     this very low. (default: 14)

                     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.

                               Loses sync with video.

                     both   Scale both tempo and pitch.

                     none   Ignore speed changes.


                 mpv --af=scaletempo --speed=1.2 media.ogg
                        Would play media at 1.2x  normal  speed,  with  audio  at  normal  pitch.
                        Changing playback speed would change audio tempo to match.

                 mpv --af=scaletempo=scale=1.2:speed=none --speed=1.2 media.ogg
                        Would  play  media  at 1.2x normal speed, with audio at normal pitch, but
                        changing playback speed would have no effect on audio tempo.

                 mpv --af=scaletempo=stride=30:overlap=.50:search=10 media.ogg
                        Would tweak the quality and performace parameters.

                 mpv --af=format=float,scaletempo media.ogg
                        Would make scaletempo use float code. Maybe faster on some platforms.

                 mpv --af=scaletempo=scale=1.2:speed=pitch audio.ogg
                        Would play media at 1.2x  normal  speed,  with  audio  at  normal  pitch.
                        Changing playback speed would change pitch, leaving audio tempo at 1.2x.

              Filter audio using ffmpeg's libavfilter.

                     Libavfilter  graph. See lavfi video filter for details - the graph syntax is
                     the same.

                        Don't forget to quote libavfilter graphs as described in the lavfi  video
                        filter section.



       Video filters allow you to modify the video stream and its properties. The syntax is:

              Setup a chain of video filters.

       You  can  also  set  defaults  for each filter. The defaults are applied before the normal
       filter parameters.

              Set defaults for each filter.

          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.

              Appends the filters given as arguments to the filter list.

              Prepends the filters given as arguments to the filter list.

              Deletes the filters at the given  indexes.  Index  numbers  start  at  0,  negative
              numbers address the end of the list (-1 is the last).

              Completely empties the filter list.

       With filters that support it, you can access parameters by their name.

              Prints the parameter names and parameter value ranges for a particular filter.

              Sets a named parameter to the given value. Use on and off or yes and no to set flag

       Available filters are:

              Crops the given part of the image and discards the rest.  Useful  to  remove  black
              bands from widescreen movies.

                     Cropped width and height, defaults to original width and height.

                     Position of the cropped picture, defaults to center.

              Expands  (not  scales)  movie resolution to the given value and places the unscaled
              original at coordinates x, y.

                     Expanded width,height (default: original width,height). Negative values  for
                     w and h are treated as offsets to the original size.


                               Adds a 50 pixel border to the bottom of the picture.

                     position of original image on the expanded image (default: center)

                     Expands to fit an aspect instead of a resolution (default: 0).


                               Expands  to  800x600,  unless  the source is higher resolution, in
                               which case it expands to fill a 4/3 aspect.

                     Rounds up to make both width and height divisible by <r> (default: 1).

       flip   Flips the image upside down.

       mirror Mirrors the image on the Y axis.

              Rotates the image by 90 degrees and optionally flips it.  For  values  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.

              Scales  the  image  with  the  software  scaler  (slow)  and  performs  a YUV<->RGB
              colorspace conversion (see also --sws).

                     scaled width/height (default: original width/height)

                     0      scaled d_width/d_height

                     -1     original width/height

                     -2     Calculate w/h using the other  dimension  and  the  prescaled  aspect

                     -3     Calculate  w/h  using  the  other  dimension  and the original aspect

                     -(n+8) Like -n above, but rounding the dimension to the closest multiple  of

                     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>] (see also --sws)
                     Set  some  scaling  parameters depending on the type of scaler selected with

                        --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)

              <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.

              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 aspect.

                     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


                               Specifies  a display resolution of 800x600 for a 4/3 aspect video,
                               or 800x450 for a 16/9 aspect video.

                     Modifies width and height according to original aspect ratios.

                     -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.


                               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).

                     Force an aspect ratio.

              Restricts  the  color  space for the next filter without doing any conversion.  Use
              together with the scale filter for a real conversion.

                 For a list of available formats, see format=fmt=help.

              <fmt>  Format name, e.g. rgb15, bgr24, 420p, etc. (default: yuyv).

                     Format name that should be substituted for the output. If this is  not  100%
                     compatible with the <fmt> value, it will crash.


                                          │Valid              │ Invalid (will crash) │
                                          │format=rgb24:bgr24format=rgb24:420p    │
                                          │format=yuyv:uyvy   │                      │

              Restricts  the colorspace for the next filter without doing any conversion.  Unlike
              the format filter, this will allow any colorspace except the one you specify.

                 For a list of available formats, see noformat=fmt=help.

              <fmt>  Format name, e.g. rgb15, bgr24, 420p, etc. (default: 420p).

              Enables the specified  chain  of  postprocessing  subfilters.  Subfilters  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

                     Automatically switch the subfilter off if the CPU is too slow.

                     Do chrominance filtering, too (default).

                     Do luminance filtering only (no chrominance).

                     Do chrominance filtering only (no luminance).

                 --vf=pp:help shows a list of available subfilters.

                 Unlike in MPlayer or in earlier versions, you must quote the  pp  string  if  it
                 contains : characters, e.g. '--vf=pp=[...]'.

              Available subfilters are:

                     horizontal deblocking filter

                            Difference  factor where higher values mean more deblocking (default:

                            Flatness threshold where lower values mean more deblocking  (default:

                     vertical deblocking filter

                            Difference  factor where higher values mean more deblocking (default:

                            Flatness threshold where lower values mean more deblocking  (default:

                     accurate horizontal deblocking filter

                            Difference  factor where higher values mean more deblocking (default:

                            Flatness threshold where lower values mean more deblocking  (default:

                     accurate vertical deblocking filter

                            Difference  factor where higher values mean more deblocking (default:

                            Flatness threshold where lower values mean more deblocking  (default:

              The  horizontal  and  vertical deblocking filters share the difference and flatness
              values so you cannot set different horizontal and vertical thresholds.

                     experimental horizontal deblocking filter

                     experimental vertical deblocking filter

                     deringing filter

                     temporal noise reducer

                            larger -> stronger filtering

                            larger -> stronger filtering

                            larger -> stronger filtering

                     automatic brightness / contrast correction

                            Stretch luminance to (0-255).

                     Linear blend deinterlacing filter  that  deinterlaces  the  given  block  by
                     filtering all lines with a (1 2 1) filter.

                     Linear  interpolating deinterlacing filter that deinterlaces the given block
                     by linearly interpolating every second line.

                     Cubic interpolating deinterlacing filter deinterlaces  the  given  block  by
                     cubically interpolating every second line.

                     Median  deinterlacing filter that deinterlaces the given block by applying a
                     median filter to every second line.

                     FFmpeg deinterlacing filter that deinterlaces the given block  by  filtering
                     every second line with a (-1 4 2 4 -1) filter.

                     Vertically  applied  FIR  lowpass deinterlacing filter that deinterlaces the
                     given block by filtering all lines with a (-1 2 6 2 -1) filter.

                     Overrides the quantizer table from the input with the constant quantizer you

                            quantizer to use

                     default pp filter combination (hb:a,vb:a,dr:a)

                     fast pp filter combination (h1:a,v1:a,dr:a)

              ac     high quality pp filter combination (ha:a:128:7,va:a,dr:a)

                 This filter is only available if FFmpeg/libav has been compiled with libpostproc


                        horizontal   and   vertical   deblocking,   deringing    and    automatic

                        default filters without brightness/contrast correction

                        Enable default filters & temporal denoiser.

                        Horizontal  deblocking  on luminance only, and switch vertical deblocking
                        on or off automatically depending on available CPU time.

              Filter video using FFmpeg's libavfilter.

                     The libavfilter graph string. The filter must have a single video input  pad
                     and a single video output pad.

                     See for syntax and available filters.

                        If  you  want to use the full filter syntax with this option, you have to
                        quote the filter graph in order to prevent mpv's syntax  and  the  filter
                        graph syntax from clashing.


                        -vf lavfi=[gradfun=20:30,vflip]
                               gradfun  filter  with  nonsense  parameters,  followed  by a vflip
                               filter. (This demonstrates how libavfilter takes a graph  and  not
                               just  a  single  filter.) The filter graph string is quoted with [
                               and ]. This requires no additional quoting or escaping  with  some
                               shells  (like  bash), while others (like zsh) require additional "
                               quotes around the option string.

                               Same as before, but uses quoting that  should  be  safe  with  all
                               shells.  The  outer  '  quotes  make  sure that the shell does not
                               remove the " quotes needed by mpv.

                               Same as before, but uses named parameters for everything.

                     If libavfilter inserts filters for  pixel  format  conversion,  this  option
                     gives the flags which should be passed to libswscale. This option is numeric
                     and takes a bit-wise combination of SWS_ flags.


              <o>    Set AVFilterGraph options. These should be documented by FFmpeg.


                               forces a specific threading configuration.

              Adds noise.

                     Set the noise for all components. If you want different strength values  for
                     luma   and   chroma,   use   libavfilter's   noise  filter  directly  (using
                     --vf=lavfi=[noise=...]), or tell the libavfilter developers  to  stop  being

                     averaged temporal noise (smoother, but a lot slower)

                     mix random noise with a (semi)regular pattern

                     temporal noise (noise pattern changes between frames)

                     uniform noise (gaussian otherwise)

              hq     high quality (slightly better looking, slightly slower) - not available when
                     using libavfilter

              This filter aims to reduce image noise producing smooth  images  and  making  still
              images really still (This should enhance compressibility.).

                     spatial luma strength (default: 4)

                     spatial chroma strength (default: 3)

                     luma temporal strength (default: 6)

                     chroma temporal strength (default: luma_tmp*chroma_spatial/luma_spatial)

              Software  equalizer  that  uses  lookup tables (slow), allowing gamma correction in
              addition to simple brightness and contrast adjustment. The parameters are given  as
              floating point values.

                     initial gamma value (default: 1.0)

              <-2-2> initial contrast, where negative values result in a negative image (default:

              <-1-1> initial brightness (default: 0.0)

              <0-3>  initial saturation (default: 1.0)

                     gamma value for the red component (default: 1.0)

                     gamma value for the green component (default: 1.0)

                     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).

              When  interlaced  video is stored in YUV 4:2:0 formats, chroma interlacing 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 locations, 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)

              unsharp mask / gaussian blur

              l  is for the luma component, c for the chroma component. x/y is the filter size. a
              is the amount.

              lx, ly, cx, cy
                     width and height of the matrix, odd sized in both directions (min = 3:3, max
                     = 13:11 or 11:13, usually something between 3:3 and 7:7)

              la, ca 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.

              Pulldown  reversal  (inverse  telecine)   filter,   capable   of   handling   mixed
              hard-telecine,  24000/1001 fps progressive, and 30000/1001 fps progressive content.
              The pullup filter makes use of future  context  in  making  its  decisions.  It  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.

              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

              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 processing 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 u or v to use a chroma plane instead 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.

              Inverse telecine for deinterlaced video. If 3:2-pulldown telecined video  has  lost
              one  of  the  fields  or  is  deinterlaced  using a method that keeps one field and
              interpolates the other, the result is a juddering video that has every fourth frame
              duplicated.  This  filter is intended to find and drop those duplicates and restore
              the original film framerate. 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
              entire 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. 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:

                     Use two pass mode.

                     Set the two pass log filename (default: framediff.log).

                     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.

                     Set  the  number  of  past  frames  to  look  at  when searching for pattern
                     (default: 30). Longer window improves the reliability of the pattern search,
                     but shorter window improves 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 future and past.

                     Sets the initial telecine phase for one pass mode (default: 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 output from the first pass, you get constant phase result.

                     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 compression 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.

              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 transfer. 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 delay 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      Capture unknown or varying, transfer opposite. Filter selects 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  default

              U      Both  capture and transfer unknown or varying. Filter selects 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. (Ignored
                     when libavfilter is used.)

              Yet another deinterlacing filter


                     frame  Output 1 frame for each frame.

                     field  Output 1 frame for each field.

                            Like frame but skips spatial interlacing check.

                            Like field but skips spatial interlacing check.


                     yes    Filter is active (default).

                     no     Filter is not active, but can be activated with the  D  key  (or  any
                            other key that toggles the deinterlace property).

              This  filter, is automatically inserted when using the D key (or any other key that
              toggles the deinterlace property or when using the --deinterlace switch),  assuming
              the video output does not have native deinterlacing support.

              If  you  just  want  to  set the default mode, put this filter and its options into
              --vf-defaults instead, and enable deinterlacing with D or --deinterlace.

              Also note that the D key is stupid  enough  to  insert  an  interlacer  twice  when
              inserting yadif with --vf, so using the above methods is recommended.

              Suppresses  a  TV station logo by a simple interpolation of the surrounding pixels.
              Just set a rectangle covering the  logo  and  watch  it  disappear  (and  sometimes
              something even uglier appear - your mileage may vary).

                     top left corner of the logo

                     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.

                     You  can  specify  a text file to load the coordinates from.  Each line must
                     have a timestamp (in seconds, and in  ascending  order)  and  the  x:y:w:h:t
                     coordinates (t can be omitted).  (Not supported when using libavfilter.)

              show   Draw a rectangle showing the area defined by x/y/w/h.

              Optional  filter  for  screenshot  support. This is only needed if the video output
              does not provide working direct screenshot support. Note that it is not always safe
              to insert this filter by default. See TAKING SCREENSHOTS for details.

              Moves  subtitle  rendering  to  an  arbitrary  point  in the filter chain, or force
              subtitle rendering in the video  filter  as  opposed  to  using  video  output  OSD

                     Adds a black band at the bottom of the frame. The SSA/ASS renderer can place
                     subtitles there (with --ass-use-margins).

                     Black band on the top for toptitles  (with --ass-use-margins).


                        Moves sub rendering before the eq filter. This  will  put  both  subtitle
                        colors and video under the influence of the video equalizer settings.

              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)

                     abl or above_below_left_first
                            above-below (left eye above, right eye below)

                     abr 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

                     ab2r or above_below_half_height_right_first
                            above-below with half height resolution (right eye  above,  left  eye

              <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

                     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

                     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)

              Fix the banding artifacts that are sometimes introduced into nearly flat regions by
              truncation to 8bit color depth. Interpolates the gradients that should go where the
              bands are, and dithers them.

                     Maximum amount by which the filter will  change  any  one  pixel.  Also  the
                     threshold for detecting nearly flat regions (default: 1.5).

                     Neighborhood  to  fit  the  gradient  to.  Larger  radius makes for smoother
                     gradients, but also prevents the filter from modifying pixels near  detailed
                     regions (default: disabled).

              <size> size  of  the  filter in percent of the image diagonal size. This is used to
                     calculate the final radius size (default: 1).

              Loads an external library to  filter  the  image.  The  library  interface  is  the
              vf_dlopen interface specified using libmpcodecs/vf_dlopen.h.

                     Specify  the  library  to  load. This may require a full file system path in
                     some cases. This argument is required.

                     Specify the first parameter to pass to the library.

                     Specify the second parameter to pass to the library.

                     Specify the third parameter to pass to the library.

                     Specify the fourth parameter to pass to the library.

       vavpp  VA-AP-API video post  processing.  Works  with  --vo=vaapi  and  --vo=opengl  only.
              Currently  deinterlaces.  This filter is automatically inserted if deinterlacing is
              requested (either using  the  D  key,  by  default  mapped  to  the  command  cycle
              deinterlace, or the --deinterlace option).

                     Select the deinterlacing algorithm.

                     no     Don't perform deinterlacing.

                            Show only first field (going by --field-dominance).

                     bob    bob deinterlacing (default).


       You can encode files from one format/codec to another using this facility.

       -o <filename>
              Enables encoding mode and specifies the output file name.

              Specifies  the output format (overrides autodetection by the file name extension of
              the file specified by -o). This can be a comma separated list of  possible  formats
              to try. See --of=help for a full list of supported formats.

              Specifies  the output format options for libavformat.  See --ofopts=help for a full
              list of supported options.

              Options are managed in lists. There are a few commands to manage the options list.

                     Appends the options given as arguments to the options list.

                     Prepends the options given as arguments to the options list.

                     Deletes the options at the given indexes. Index numbers start at 0, negative
                     numbers address the end of the list (-1 is the last).

                     Completely empties the options list.

       --ofps=<float value>
              Specifies  the  output  format time base (default: 24000). Low values like 25 limit
              video fps by dropping frames.

              Sets the output format time base to the guessed  frame  rate  of  the  input  video
              (simulates  mencoder  behavior,  useful for AVI; may cause frame drops).  Note that
              not all codecs and not all formats support VFR encoding, and  some  which  do  have
              bugs  when  a  target  bitrate is specified - use --ofps or --oautofps to force CFR
              encoding in these cases.

       --omaxfps=<float value>
              Specifies the minimum distance of adjacent frames (default: 0, which means  unset).
              Content of lower frame rate is not readjusted to this frame rate; content of higher
              frame rate is decimated to this frame rate.

              If set, the frame rate given by --ofps is attained not by skipping time codes,  but
              by duplicating frames (constant frame rate mode).

              If  set,  frames  are never dropped. Instead, time codes of video are readjusted to
              always increase. This may cause AV desync, though;  to  work  around  this,  use  a
              high-fps time base using --ofps and absolutely avoid --oautofps.

              Specifies  the  output  audio codec. This can be a comma separated list of possible
              codecs to try. See --oac=help for a full list of supported codecs.

              Shifts audio data by the given time (in seconds) by adding/removing samples at  the

              Specifies  the output audio codec options for libavcodec.  See --oacopts=help for a
              full list of supported options.


                 --oac=libmp3lame --oacopts=b=128000
                        selects 128kbps MP3 encoding.

              Options are managed in lists. There are a few commands to manage the options list.

                     Appends the options given as arguments to the options list.

                     Prepends the options given as arguments to the options list.

                     Deletes the options at the given indexes. Index numbers start at 0, negative
                     numbers address the end of the list (-1 is the last).

                     Completely empties the options list.

              Force  the  audio  stream  to become the first stream in the output. By default the
              order is unspecified.

              Specifies the output video codec. This can be a comma separated  list  of  possible
              codecs to try. See --ovc=help for a full list of supported codecs.

              Shifts video data by the given time (in seconds) by shifting the pts values.

       --ovcopts <options>
              Specifies  the output video codec options for libavcodec.  See --ovcopts=help for a
              full list of supported options.


                 "--ovc=mpeg4 --oacopts=qscale=5"
                        selects constant quantizer scale 5 for MPEG-4 encoding.

                 "--ovc=libx264 --ovcopts=crf=23"
                        selects VBR quality factor 23 for H.264 encoding.

              Options are managed in lists. There are a few commands to manage the options list.

                     Appends the options given as arguments to the options list.

                     Prepends the options given as arguments to the options list.

                     Deletes the options at the given indexes. Index numbers start at 0, negative
                     numbers address the end of the list (-1 is the last).

                     Completely empties the options list.

              Force  the  video  stream  to become the first stream in the output. By default the
              order is unspecified.

              Copies input pts to the output  video  (not  supported  by  some  output  container
              formats, e.g. AVI). Discontinuities are still fixed.  By default, audio pts are set
              to playback time and video pts are synchronized to match audio pts, as some  output
              formats do not support anything else.

              Copies  input  pts  to  the  output  video  (not supported by some output container
              formats, e.g. AVI). In this mode, discontinuities are not fixed  and  all  pts  are
              passed  through  as-is.  Never  seek  backwards or use multiple input files in this


       The input.conf file consists of a list of key bindings, for example:

          s screenshot      # take a screenshot with the s key

       Each line maps a key to an input command. Keys are  specified  with  their  literal  value
       (upper  case  if  combined with Shift), or a name for special keys. For example, a maps to
       the a key without shift, and A maps to a with shift.

       A list of special keys can be obtained with
          mpv --input-keylist

       In general, keys can be combined with Shift, Ctrl and Alt:

          ctrl+q quit

       mpv can be started in input test mode,  which  displays  key  bindings  and  the  commands
       they're bound to on the OSD, instead of executing the commands:

          mpv --input-test --demuxer=rawvideo --demuxer-rawvideo=w=1280:h=720 /dev/zero

       (Commands  which  normally  close the player will not work in this mode, and you must kill
       mpv externally to make it exit.)

   General Input Command Syntax
       [Shift+][Ctrl+][Alt+][Meta+]<key> [{<section>}] [<prefixes>]  <command>  (<argument>)*  [;

       Note that by default, the right Alt key can be used to create special characters, and thus
       does not register as a modifier. The option --no-right-alt-gr changes this behavior.

       Newlines always start a new  binding.  #  starts  a  comment  (outside  of  quoted  string
       arguments). To bind commands to the # key, SHARP can be used.

       <key>  is either the literal character the key produces (ASCII or Unicode character), or a
       symbolic name (as printed by --input-keylist).

       <section> (braced with { and }) is the input section for this command.

       Arguments are separated by whitespace. This applies even to string  arguments.   For  this
       reason,  string  arguments should be quoted with ". Inside quotes, C-style escaping can be

       You can bind multiple commands to one key. For example:
       a show_text "command 1" ; show_text "command 2"

       Note that some magic is disabled for keys: seek commands inside lists  are  not  coalesced
       (seeking  will  appear slower), and no check is done for abort commands (so these commands
       can't be used to abort playback if the network cache is stuck).

   List of Input Commands
       ignore Use this to "block" keys that  should  be  unbound,  and  do  nothing.  Useful  for
              disabling    default    bindings,    without    disabling    all    bindings   with

       seek <seconds> [relative|absolute|absolute-percent|- [default-precise|exact|keyframes]]
              Change the playback position. By default, seeks by a relative amount of seconds.

              The second argument sets the seek mode:

              relative (default)
                     Seek relative to current position (a negative value seeks backwards).

                     Seek to a given time.

                     Seek to a given percent position.

              The third argument defines how exact the seek is:

              default-precise (default)
                     Follow the default behavior as set  by  --hr-seek,  which  by  default  does
                     imprecise seeks (like keyframes).

              exact  Always do exact/hr/precise seeks (slow).

                     Always restart playback at keyframe boundaries (fast).

              Undoes the seek command, and some other commands that seek (but not necessarily all
              of them). Calling this command once will jump to the playback position  before  the
              seek. Calling it a second time undoes the revert_seek command itself.

              Play one frame, then pause.

              Go  back  by one frame, then pause. Note that this can be very slow (it tries to be
              precise, not fast), and sometimes fails to behave as expected. How well this  works
              depends   on   whether   precise   seeking   works   correctly   (e.g.    see   the
              --hr-seek-demuxer-offset option). Video filters or other video postprocessing  that
              modifies  timing of frames (e.g. deinterlacing) should usually work, but might make
              backstepping silently behave incorrectly in corner cases.

              This does not work with audio-only playback.

       set <property> <value>
              Set the given property to the given value.

       add <property> [<value>]
              Add the given value to the property. On overflow or underflow, clamp  the  property
              to the maximum. If <value> is omitted, assume 1.

       cycle <property> [up|down]
              Cycle the given property. up and down set the cycle direction. On overflow, set the
              property back to the minimum, on underflow set it to the maximum. If up or down  is
              omitted, assume up.

       multiply <property> <factor>
              Multiplies the value of a property with the numeric factor.

       screenshot [subtitles|video|window|- [single|each-frame]]
              Take a screenshot.

              First argument:

              <subtitles> (default)
                     Save  the video image, in its original resolution, and with subtitles.  Some
                     video outputs may  still  include  the  OSD  in  the  output  under  certain

                     Like  subtitles,  but typically without OSD or subtitles. The exact behavior
                     depends on the selected video output.

                     Save the contents  of  the  mpv  window.  Typically  scaled,  with  OSD  and
                     subtitles.  The  exact behavior depends on the selected video output, and if
                     no support is available, this will act like video.

              Second argument:

              <single> (default)
                     Take a single screenshot.

                     Take a screenshot each frame.  Issue  this  command  again  to  stop  taking

       screenshot_to_file <filename> [subtitles|video|window]
              Take  a  screenshot  and  save  it  to a given file. The format of the file will be
              guessed by the extension (and --screenshot-format is ignored -  the  behavior  when
              the extension is missing or unknown is arbitrary).

              The second argument is like the first argument to screenshot.

              This command tries to never overwrite files. If the file already exists, it fails.

              Like all input command parameters, the filename is subject to property expansion as
              described in Property Expansion.

       playlist_next [weak|force]
              Go to the next entry on the playlist.

              weak (default)
                     If the last file on the playlist is currently played, do nothing.

              force  Terminate playback if there are no more files on the playlist.

       playlist_prev [weak|force]
              Go to the previous entry on the playlist.

              weak (default)
                     If the first file on the playlist is currently played, do nothing.

              force  Terminate playback if the first file is being played.

       loadfile <file> [replace|append]
              Load the given file and play it.

              Second argument:

              <replace> (default)
                     Stop playback of the current file, and play the new file immediately.

                     Append the file to the playlist.

       loadlist <playlist> [replace|append]
              Load the given playlist file (like --playlist).

              Clear the playlist, except the currently played file.

       playlist_remove current|<index>
              Remove the playlist entry at the given index. Index values start counting  with  0.
              The special value current removes the current entry. Note that removing the current
              entry also stops playback and starts playing the next entry.

       playlist_move <index1> <index2>
              Move the playlist entry at index1, so that it takes the place of the entry  index2.
              (Paradoxically, the moved playlist entry will not have the index value index2 after
              moving if index1 was lower than index2, because index2 refers to the target  entry,
              not the index the entry will have after moving.)

       run command arg1 arg2 ...
              (Unix  only) Run the given command. Unlike in MPlayer/mplayer2 and earlier versions
              of mpv (0.2.x and older), this doesn't call the shell. Instead, the command is  run
              directly,  with  each argument passed separately. Each argument is expanded like in
              Property Expansion. Note that there is a static limit of (as of  this  writing)  10
              arguments (this limit could be raised on demand).

              The  program  is  run  in  a  detached  way.  mpv doesn't wait until the command is
              completed, but continues playback right after spawning it.

              To get the old behavior, use /bin/sh and -c as the first two arguments.


                        run "/bin/sh" "-c" "echo ${title} > /tmp/playing"

                        This is not a  particularly  good  example,  because  it  doesn't  handle
                        escaping,  and  a  specially  prepared  file  might  allow an attacker to
                        execute arbitrary shell commands. It is  recommended  to  write  a  small
                        shell script, and call that with run.

       quit [<code>]
              Exit the player using the given exit code.

              Exit player, and store current playback position. Playing that file later will seek
              to the previous position on start.

       sub_add <file>
              Load the given subtitle file. It is not selected as current subtitle after loading.

       sub_remove [<id>]
              Remove the given subtitle track. If the id argument is missing, remove the  current
              track. (Works on external subtitle files only.)

       sub_reload [<id>]
              Reload the given subtitle tracks. If the id argument is missing, remove the current
              track. (Works on external subtitle files only.)

              This works by unloading and re-adding the subtitle track.

       sub_step <skip>
              Change subtitle timing such, that the subtitle event after the next <skip> subtitle
              events is displayed. <skip> can be negative to step backwards.

       sub_seek <skip>
              Seek  to  the next (skip set to 1) or the previous (skip set to -1) subtitle.  This
              is similar to sub_step, except that it seeks video and audio instead  of  adjusting
              the subtitle delay.

              Like with sub_step, this works with external text subtitles only. For embedded text
              subtitles (like with Matroska), this works only  with  subtitle  events  that  have
              already been displayed.

       osd [<level>]
              Toggle  OSD  level.  If <level> is specified, set the OSD mode (see --osd-level for
              valid values).

       print_text <string>
              Print text to stdout. The string can contain properties (see Property Expansion).

       show_text <string> [<duration>|- [<level>]]
              Show text on the OSD. The string can contain  properties,  which  are  expanded  as
              described  in Property Expansion. This can be used to show playback time, filename,
              and so on.

                     The time in ms to show the message for. By default, it uses the  same  value
                     as --osd-duration.

                     The minimum OSD level to show the text at (see --osd-level).

              Show  the  progress bar, the elapsed time and the total duration of the file on the

   Input Commands that are Possibly Subject to Change
       af set|add|toggle|del|clr filter1=params,filter2,...
              Change audio filter chain. See vf command.

       vf set|add|toggle|del|clr filter1=params,filter2,...
              Change video filter chain.

              The first argument decides what happens:

              set    Overwrite the previous filter chain with the new one.

              add    Append the new filter chain to the previous one.

              toggle Check if the given filter (with the exact  parameters)  is  already  in  the
                     video  chain. If yes, remove the filter. If no, add the filter.  (If several
                     filters are passed to the command, this is done for each filter.)

              del    Remove the given filters from the video chain. Unlike in  the  other  cases,
                     the  second  parameter  is a comma separated list of filter names or integer
                     indexes. 0 would denote the first filter. Negative indexes  start  from  the
                     last filter, and -1 denotes the last filter.

              clr    Remove  all  filters.  Note  that like the other sub-commands, this does not
                     control automatically inserted filters.

              You can assign labels to filter by prefixing them with  @name:  (where  name  is  a
              user-chosen  arbitrary  identifier). Labels can be used to refer to filters by name
              in all of the filter chain modification commands.  For add, using an  already  used
              label will replace the existing filter.

              The  vf  command  shows the list of requested filters on the OSD after changing the
              filter  chain.  This  is  roughly  equivalent  to  show_text   ${vf}.   Note   that
              auto-inserted  filters  for  format conversion are not shown on the list, only what
              was requested by the user.

                 Example for input.conf

                 • a vf set flip turn video upside-down on the a key

                 • b vf set "" remove all video filters on bc vf toggle lavfi=gradfun toggle debanding on c

       cycle_values ["!reverse"] <property> <value1> <value2> ...
              Cycle through a list of values. Each invocation of the command will set  the  given
              property  to  the next value in the list. The command maintains an internal counter
              which value to pick next, and which is initially 0. It is reset to 0 once the  last
              value is reached.

              The  internal  counter is associated using the property name and the value list. If
              multiple commands (bound to different keys) use the same name and value list,  they
              will share the internal counter.

              The  special  argument  !reverse  can  be  used to cycle the value list in reverse.
              Compared with a command that just lists the value in  reverse,  this  command  will
              actually share the internal counter with the forward-cycling key binding.

              Note  that there is a static limit of (as of this writing) 10 arguments (this limit
              could be raised on demand).

       enable_section <section> [default|exclusive]
              Enable all key bindings in the named input section.

              The enabled input sections form a stack. Bindings in sections on  the  top  of  the
              stack  are preferred to lower sections. This command puts the section on top of the
              stack. If  the  section  was  already  on  the  stack,  it  is  implicitly  removed
              beforehand. (A section cannot be on the stack more than once.)

              If  exclusive is specified as second argument, all sections below the newly enabled
              section are disabled. They will be re-enabled as soon  as  all  exclusive  sections
              above them are removed.

       disable_section <section>
              Disable the named input section. Undoes enable_section.

       overlay_add <id> <x> <y> <file> <offset> <fmt> <w> <h> <stride>
              Add  an  OSD  overlay  sourced  from raw data. This might be useful for scripts and
              applications controlling mpv, and which want to display things on top of the  video

              Overlays  are  usually  displayed  in  screen  resolution,  but  with some VOs, the
              resolution is reduced to that of the  video's.  You  can  read  the  osd-width  and
              osd-height  properties.  At  least with --vo-xv and anamorphic video (such as DVD),
              osd-par should be read as well,  and  the  overlay  should  be  aspect-compensated.
              (Future   directions:   maybe  mpv  should  take  care  of  some  of  these  things
              automatically, but it's hard to tell where to draw the line.)

              id is an integer between 0 and 63 identifying the overlay element. The  ID  can  be
              used  to  add  multiple  overlay parts, update a part by using this command with an
              already existing ID, or to remove a part with overlay_remove.  Using  a  previously
              unused  ID  will  add  a  new  overlay, while reusing an ID will update it. (Future
              directions: there should be something  to  ensure  different  programs  wanting  to
              create overlays don't conflict with each others, should that ever be needed.)

              x and y specify the position where the OSD should be displayed.

              file specifies the file the raw image data is read from. It can be either a numeric
              UNIX file descriptor prefixed with @ (e.g. @4), or a filename.  The  file  will  be
              mapped  into  memory with mmap(). Some VOs will pass the mapped pointer directly to
              display APIs (e.g. opengl or vdpau), so no actual copying is  involved.  Truncating
              the  source  file  while the overlay is active will crash the player. You shouldn't
              change the data while the overlay  is  active,  because  the  data  is  essentially
              accessed  at  random  points.  Instead,  call  overlay_add again (preferably with a
              different memory region to prevent tearing).

              offset is the offset of the first pixel in the source file. It is  passed  directly
              to  mmap  and  is  subject  to  certain restrictions (see man mmap for details). In
              particular, this value has to be a multiple of the system's page size.

              fmt is a string identifying the image format. Currently, only bgra is defined. This
              format  has 4 bytes per pixels, with 8 bits per component.  The least significant 8
              bits are blue, and the most significant 8 bits are alpha  (in  little  endian,  the
              components are B-G-R-A, with B as first byte). This uses premultiplied alpha: every
              color component is already multiplied with the  alpha  component.  This  means  the
              numeric  value  of  each component is equal to or smaller than the alpha component.
              (Violating this rule will lead to different results  with  different  VOs:  numeric
              overflows  resulting from blending broken alpha values is considered something that
              shouldn't happen, and  consequently  implementations  don't  ensure  that  you  get
              predictable behavior in this case.)

              w,  h,  and  stride  specify the size of the overlay. w is the visible width of the
              overlay, while stride gives the width in bytes in memory. In the simple  case,  and
              with the bgra format, stride==4*w.  In general, the total amount of memory accessed
              is stride * h.  (Technically, the minimum size would be stride * (h - 1) + w  *  4,
              but for simplicity, the player will access all stride * h bytes.)


                        When  updating  the  overlay,  you  should prepare a second shared memory
                        region (e.g. make use of the offset parameter) and add this  as  overlay,
                        instead  of  reusing the same memory every time. Otherwise, you might get
                        the equivalent of tearing, when your application and mpv  write/read  the
                        buffer  at  the  same  time.  Also, keep in mind that mpv might access an
                        overlay's memory at random times whenever it feels the need to do so, for
                        example when redrawing the screen.

       overlay_remove <id>
              Remove  an  overlay  added  with  overlay_add  and  the same ID. Does nothing if no
              overlay with this ID exists.

       Undocumented commands:  tv_start_scan,  tv_step_channel,  tv_step_norm,  tv_step_chanlist,
       tv_set_channel,  tv_last_channel,  tv_set_freq, tv_step_freq, tv_set_norm, dvb_set_channel
       (all of these should be replaced by properties),  stop  (questionable  use),  get_property
       (?), vo_cmdline (experimental).

   Input Command Prefixes
       These  prefixes  are placed between key name and the actual command. Multiple prefixes can
       be specified. They are separated by whitespace.

       osd-auto (default)
              Use the default behavior for this command.

       no-osd Do not use any OSD for this command.

              If possible, show a bar with this command. Seek commands  will  show  the  progress
              bar, property changing commands may show the newly set value.

              If  possible,  show an OSD message with this command. Seek command show the current
              playback time, property changing commands show the newly set value as text.

              Combine osd-bar and osd-msg.

       raw    Do not expand properties in string arguments. (Like "${property-name}".)

       expand-properties (default)
              All string arguments are expanded as described in Property Expansion.

       All of the osd prefixes are still overridden by the global --osd-level settings.

       Undocumented prefixes: pausing, pausing_keep, pausing_toggle, pausing_keep_force.  (Should
       these be made official?)

   Input Sections
       Input  sections  group  a  set  of  bindings,  and  enable  or  disable  them at once.  In
       input.conf, each key binding is assigned to an input section, rather than actually  having
       explicit text sections.

       Also see enable_section and disable_section commands.

       Predefined bindings:

              Bindings  without  input  section  are  implicitly  assigned to this section. It is
              enabled by default during normal playback.

       encode Section which is active in encoding  mode.  It  is  enabled  exclusively,  so  that
              bindings in the default sections are ignored.

       Properties  are used to set mpv options during runtime, or to query arbitrary information.
       They can be manipulated with the set/add/cycle commands, and retrieved with show_text,  or
       anything else that uses property expansion. (See Property Expansion.)

       The  W  column  indicates  whether  the  property  is  generally writable. If an option is
       referenced, the property should take/return exactly the same values as the option.

                    │Name                       │ W │ Comment                      │
                    │osd-level                  │ x │ see --osd-level              │

                    │osd-scale                  │ x │ osd      font       size     │
                    │                           │   │ multiplicator,       see     │
                    │                           │   │ --osd-scale                  │
                    │loop                       │ x │ see --loop                   │
                    │speed                      │ x │ see --speed                  │
                    │filename                   │   │ currently  played   file     │
                    │                           │   │ (path stripped)              │
                    │path                       │   │ currently   played  file     │
                    │                           │   │ (full path)                  │
                    │media-title                │   │ filename, title tag,  or     │
                    │                           │   │ libquvi                      │
                    │                           │   │ QUVIPROP_PAGETITLE           │
                    │demuxer                    │   │                              │
                    │stream-path                │   │ filename (full path)  of     │
                    │                           │   │ stream layer filename        │
                    │stream-pos                 │ x │ byte  position in source     │
                    │                           │   │ stream                       │
                    │stream-start               │   │ start  byte  offset   in     │
                    │                           │   │ source stream                │
                    │stream-end                 │   │ end position in bytes in     │
                    │                           │   │ source stream                │
                    │stream-length              │   │ length     in      bytes     │
                    │                           │   │ (${stream-end}         -     │
                    │                           │   │ ${stream-start})             │
                    │stream-time-pos            │ x │ time position in  source     │
                    │                           │   │ stream     (also     see     │
                    │                           │   │ time-pos)                    │
                    │length                     │   │ length  of  the  current     │
                    │                           │   │ file in seconds              │
                    │avsync                     │   │ last A/V synchronization     │
                    │                           │   │ difference                   │
                    │percent-pos                │ x │ position in current file     │
                    │                           │   │ (0-100)                      │
                    │ratio-pos                  │ x │ position in current file     │
                    │                           │   │ (0.0-1.0)                    │
                    │time-pos                   │ x │ position in current file     │
                    │                           │   │ in seconds                   │
                    │time-remaining             │   │ estimated      remaining     │
                    │                           │   │ length of  the  file  in     │
                    │                           │   │ seconds                      │
                    │playtime-remaining         │   │ time-remaining scaled by     │
                    │                           │   │ the the current speed        │
                    │chapter                    │ x │ current chapter number       │
                    │edition                    │ x │ current   MKV    edition     │
                    │                           │   │ number                       │
                    │titles                     │   │ number of DVD titles         │
                    │chapters                   │   │ number of chapters           │
                    │editions                   │   │ number of MKV editions       │
                    │angle                      │ x │ current DVD angle            │
                    │metadata                   │   │ metadata key/value pairs     │
                    │metadata/<key>             │   │ value  of metadata entry     │
                    │                           │   │ <key>                        │
                    │chapter-metadata           │   │ metadata   of    current     │
                    │                           │   │ chapter (works similar)      │
                    │pause                      │ x │ pause status (bool)          │
                    │cache                      │   │ network cache fill state     │
                    │                           │   │ (0-100)                      │
                    │pts-association-mode       │ x │ see                          │
                    │                           │   │ --pts-association-mode       │
                    │hr-seek                    │ x │ see --hr-seek                │
                    │volume                     │ x │ current volume (0-100)       │
                    │mute                       │ x │ current    mute   status     │
                    │                           │   │ (bool)                       │
                    │audio-delay                │ x │ see --audio-delay            │
                    │audio-format               │   │ audio format (string)        │
                    │audio-codec                │   │ audio codec selected for     │
                    │                           │   │ decoding                     │

                    │audio-bitrate              │   │ audio bitrate                │
                    │samplerate                 │   │ audio samplerate             │
                    │channels                   │   │ number of audio channels     │
                    │aid                        │ x │ current    audio   track     │
                    │                           │   │ (similar to --aid)           │
                    │audio                      │ x │ alias for aid                │
                    │balance                    │ x │ audio channel balance        │
                    │fullscreen                 │ x │ see --fullscreen             │
                    │deinterlace                │ x │ similar to --deinterlace     │
                    │colormatrix                │ x │ see --colormatrix            │
                    │colormatrix-input-range    │ x │ see                          │
                    │                           │   │ --colormatrix-input-range    │
                    │colormatrix-output-range   │ x │ see                          │
                    │                           │   │ --colormatrix-output-range   │
                    │ontop                      │ x │ see --ontop                  │
                    │border                     │ x │ see --border                 │
                    │framedrop                  │ x │ see --framedrop              │
                    │gamma                      │ x │ see --gamma                  │
                    │brightness                 │ x │ see --brightness             │
                    │contrast                   │ x │ see --contrast               │
                    │saturation                 │ x │ see --saturation             │
                    │hue                        │ x │ see --hue                    │
                    │panscan                    │ x │ see --panscan                │
                    │video-format               │   │ video format (string)        │
                    │video-codec                │   │ video codec  selected  for   │
                    │                           │   │ decoding                     │
                    │video-bitrate              │   │ video bitrate                │
                    │width                      │   │ video  width (container or   │
                    │                           │   │ decoded size)                │
                    │height                     │   │ video height                 │
                    │fps                        │   │ container FPS (may contain   │
                    │                           │   │ bogus values)                │
                    │dwidth                     │   │ video width (after filters   │
                    │                           │   │ and aspect scaling)          │
                    │dheight                    │   │ video height                 │
                    │window-scale               │ x │ window size multiplier  (1   │
                    │                           │   │ means video size)            │
                    │aspect                     │ x │ video aspect                 │
                    │osd-width                  │   │ last  known OSD width (can   │
                    │                           │   │ be 0)                        │
                    │osd-height                 │   │ last known OSD height (can   │
                    │                           │   │ be 0)                        │
                    │osd-par                    │   │ last   known  OSD  display   │
                    │                           │   │ pixel aspect (can be 0)      │
                    │vid                        │ x │ current    video     track   │
                    │                           │   │ (similar to --vid)           │
                    │video                      │ x │ alias for vid                │
                    │video-align-x              │ x │ see --video-align-x          │
                    │video-align-y              │ x │ see --video-align-y          │
                    │video-pan-x                │ x │ see --video-pan-x            │
                    │video-pan-y                │ x │ see --video-pan-y            │
                    │video-zoom                 │ x │ see --video-zoom             │
                    │video-unscaled             │ x │ see --video-unscaled         │
                    │program                    │ x │ switch      TS     program   │
                    │                           │   │ (write-only)                 │
                    │sid                        │ x │ current   subtitle   track   │
                    │                           │   │ (similar to --sid)           │
                    │secondary-sid              │ x │ secondary  subtitle  track   │
                    │                           │   │ (--secondary-sid)            │
                    │sub                        │ x │ alias for sid                │

                    │sub-delay                  │ x │ see --sub-delay              │
                    │sub-pos                    │ x │ see --sub-pos                │
                    │sub-visibility             │ x │ see --sub-visibility         │
                    │sub-forced-only            │ x │ see --sub-forced-only        │
                    │sub-scale                  │ x │ subtitle     font     size   │
                    │                           │   │ multiplicator                │
                    │ass-use-margins            │ x │ see --ass-use-margins        │
                    │ass-vsfilter-aspect-compat │ x │ see                          │
                    │                           │   │ --ass-vsfilter-aspect-compat │
                    │ass-style-override         │ x │ see --ass-style-override     │
                    │stream-capture             │ x │ a filename, see --capture    │
                    │tv-brightness              │ x │                              │
                    │tv-contrast                │ x │                              │
                    │tv-saturation              │ x │                              │
                    │tv-hue                     │ x │                              │
                    │playlist-pos               │   │ current position on playlist │
                    │playlist-count             │   │ number  of  total   playlist │
                    │                           │   │ entries                      │
                    │playlist                   │   │ playlist,    current   entry │
                    │                           │   │ marked                       │
                    │track-list                 │   │ list   of    audio/video/sub │
                    │                           │   │ tracks, current entry marked │
                    │chapter-list               │   │ list  of  chapters,  current │
                    │                           │   │ entry marked                 │
                    │quvi-format                │ x │ see --quvi-format            │
                    │af                         │ x │ see --af                     │
                    │vf                         │ x │ see --vf                     │
                    │options/name               │   │ read-only access to value of │
                    │                           │   │ option --name                │

   Property Expansion
       All string arguments to input commands as well as certain options (like --playing-msg) are
       subject to property expansion.

          Example for input.conf

          i show_text Filename: ${filename}
                 shows the filename of the current file when pressing the i key

       Within input.conf, property expansion can be inhibited by putting the raw prefix in  front
       of commands.

       The following expansions are supported:

              Expands to the value of the property NAME. If retrieving the property fails, expand
              to an error string. (Use ${NAME:} with a trailing : to expand to  an  empty  string
              instead.)  If NAME is prefixed with =, expand to the raw value of the property (see
              section below).

              Expands to the value of the property  NAME,  or  STR  if  the  property  cannot  be
              retrieved. STR is expanded recursively.

              Expands to STR (recursively) if the property NAME is available.

              Expands to STR (recursively) if the property NAME cannot be retrieved.

              Expands  to  STR  (recursively)  if  the property NAME expands to a string equal to
              VALUE. You can prefix NAME with = in order to compare the raw value of  a  property
              (see  section  below).  If the property is unavailable, or other errors happen when
              retrieving it, the value is never considered equal.  Note that VALUE can't  contain
              any of the characters : or }.  Also, it is possible that escaping with " or % might
              be added in the future, should the need arise.

              Same as with the ? variant, but STR is expanded if the value is not  equal.  (Using
              the same semantics as with ?.)

       $$     Expands to $.

       $}     Expands to }. (To produce this character inside recursive expansion.)

       $>     Disable property expansion and special handling of $ for the rest of the string.

       In places where property expansion is allowed, C-style escapes are often accepted as well.

          • \n becomes a newline character

          • \\ expands to \

   Raw and Formatted Properties
       Normally, properties are formatted as human-readable text, meant to be displayed on OSD or
       on  the terminal. It is possible to retrieve an unformatted (raw) value from a property by
       prefixing its name with =. These raw values can be parsed by other programs and follow the
       same conventions as the options associated with the properties.


          • ${time-pos} expands to 00:14:23 (if playback position is at 14 minutes 23 seconds)

          • ${=time-pos}  expands  to  863.4 (same time, plus 400 milliseconds - milliseconds are
            normally not shown in the formatted case)

       Sometimes, the difference in amount of information carried by raw and  formatted  property
       values  can  be  rather  big. In some cases, raw values have more information, like higher
       precision than seconds with time-pos. Sometimes it is the other way around, e.g. aid shows
       track title and language in the formatted case, but only the track number if it is raw.


       The  On Screen Controller (short: OSC) is a minimal GUI integrated with mpv to offer basic
       mouse-controllability. It is intended to make interaction easier  for  new  users  and  to
       enable precise and direct seeking.

       The  OSC  is  enabled  by default if mpv was compiled with lua support. It can be disabled
       entirely using the --osc=no option.

   Using the OSC
       By default, the OSC will show up whenever the mouse is moved inside the player window  and
       will hide if the mouse is not moved outside the OSC for 0.5 seconds or if the mouse leaves
       the window.

   The Interface
          | playlist prev    |   title   |      playlist next |
          | audio | skip | seek |      | seek | skip |  full  |
          +-------+ back | back | play | frwd | frwd | screen |
          | sub   |      |      |      |      |      |        |
          |                     seekbar                       |
          | time passed    | cache status |    time remaining |

       playlist prev

                               │left-click    │ play previous file in playlist │
                               │shift+L-click │ show playlist                  │

              Displays current media-title or filename

                               │left-click  │ show   playlist   position   and │
                               │            │ length and full title            │
                               │right-click │ show filename                    │

       playlist next

                                 │left-click    │ play next file in playlist │
                                 │shift+L-click │ show playlist              │

       audio and sub
              Displays selected track and amount of available tracks

                              │left-click    │ cycle audio/sub tracks forward   │
                              │right-click   │ cycle audio/sub tracks backwards │
                              │shift+L-click │ show available audio/sub tracks  │

       skip back

                              │left-click    │ go  to  beginning  of  chapter / │
                              │              │ previous chapter                 │
                              │shift+L-click │ show chapters                    │

       seek back

                                    │left-click    │ skip back  5 seconds │
                                    │right-click   │ skip back 30 seconds │
                                    │shift-L-click │ skip back  1 frame   │


                                       │left-click │ toggle play/pause │

       seek frwd

                                   │left-click    │ skip forward 10 seconds │
                                   │right-click   │ skip forward 60 seconds │
                                   │shift-L-click │ skip forward  1 frame   │

       skip frwd

                                     │left-click    │ go to next chapter │
                                     │shift+L-click │ show chapters      │


                                       │left-click │ toggle fullscreen │

              Indicates current playback position and position of chapters

                                        │left-click │ seek to position │

       time passed
              Shows current playback position timestamp

                                │left-click │ toggle displaying timecodes with │
                                │           │ milliseconds                     │

       cache status
              Shows current cache fill status (only visible when below 45%)

       time remaining
              Shows remaining playback time timestamp

                                │left-click │ toggle    between    total   and │
                                │           │ remaining time                   │

       The OSC offers limited configuration through a config file plugin_osc.conf placed in mpv's
       user dir.

   Config Syntax
       The config file must exactly follow the following syntax:

          # this is a comment

       #  can  only be used at the beginning of a line and there may be no spaces around the = or
       anywhere else.

   Configurable parameters
              Default: yes
              Show OSC when windowed?

              Default: yes
              Show OSC when fullscreen?

              Default: 1
              Scaling of the controller when windowed

              Default: 1
              Scaling of the controller when fullscreen

              Default: 2
              Scaling of the controller when rendered on a forced (dummy) window

              Default: yes
              Scale the controller with the video?

              Default: 0.8
              Vertical alignment, -1 (top) to 1 (bottom)

              Default: 0
              Horizontal alignment, -1 (left) to 1 (right)

              Default: 80
              Alpha of the background box, 0 (opaque) to 255 (fully transparent)

              Default: 500
              Duration in ms until the OSC hides if no mouse movement, negative value
              disables auto-hide

              Default: 200
              Duration of fade out in ms, 0 = no fade

              Default: 0
              Size of the deadzone. The deadzone is an area that makes the mouse act
              like leaving the window. Movement there won't make the OSC show up and
              it will hide immediately if the mouse enters it.

              Default: 3
              Minimum amount of pixels the mouse has to move between ticks to make
              the OSC show up


       mpv can load Lua scripts. These scripts can be used to control mpv in  a  similar  way  to
       slave  mode.  mpv  provides the builtin module mp (can be loaded with require 'mp'), which
       provides functions to send commands to the mpv core  and  to  retrieve  information  about
       playback state, user settings, file information, and so on.


                 Lua  scripting is work in progress, and it's in a very early stage. When writing
                 scripts, rely only on the features and functions  documented  here.   Everything
                 else is subject to change.


                 Nothing is finished and documented yet.


       mpv  is  based  on  mplayer2,  which in turn is based on the original MPlayer (also called
       mplayer,  mplayer-svn,  mplayer1).  Many  changes  have  been  made.  Some   changes   are
       incompatible, or completely change how the player behaves.

   General Changes for MPlayer to mplayer2
       • Removal of the internal GUI, MEncoder, OSD menu

       • Better pause handling (do not unpause on a command)

       • Better MKV support (such as ordered chapters)

       • vo_vdpau improvements

       • Precise seeking support

       • No embedded copy of ffmpeg and other libraries

       • Native OpenGL backend for OSX

       • General OSX improvements

       • Improvements in audio/video sync handling

       • Cleaned up terminal output

       • Gapless audio support (--gapless-audio)

       • Improved responsiveness on user input

       • Support for modifier keys (alt, shift, ctrl) in input.conf

       • OSS4 volume control

       • More correct color reproduction (color matrix generation)

       • Use libass for subtitle rendering by default (better quality)

       • Generally preferring ffmpeg/libav over internal demuxers and decoders

       • Improvements when playing multiple files (--fixed-vo)

       • Screenshot  improvements  (instant  screenshots  without  1-frame  delay,  allow  taking
         screenshots even with hardware decoding)

       • Improved support for PulseAudio

       • General code cleanups

       • Many more changes

   General Changes for mplayer2 to mpv
       • Switch back to GPLv2+.

       • Removal of lots of unneeded code to encourage developer  activity  (less  obscure  scary
         zombie code that kills any desire for hacking the codebase)

       • Removal  of  dust  and  dead  bodies (code-wise), such as kernel drivers for decades old

       • Removal of support for dead platforms

       • Generally  improved  MS  Windows  support  (dealing  with  unicode  filenames,  improved
         --vo=direct3d, improved window handling)

       • Better  OSD  rendering (using libass). This has full unicode support, and languages like
         Arabic should be better supported.

       • Cleaned up terminal output (nicer status line, less useless noise)

       • Support  for  playing   URLs   of   popular   streaming   sites   directly   (e.g.   mpv

       • Improved OpenGL output (--vo=opengl-hq)

       • Make --softvol default (mpv is not a mixer control panel)

       • Improved support for .cue files

       • Screenshot  improvements  (can  save  screenshots as JPG or PNG, configurable filenames,
         support for taking screenshots with or without subtitles - the screenshot  video  filter
         is not needed anymore, and should not be put into the mpv config file)

       • Removal of teletext support

       • Removal of most builtin demuxers, using libavformat instead

       • Removal  of  builtin network support, using libavformat instead (also, support https via

       • Replace image VOs (--vo=jpeg etc.) with --vo=image

       • Do not lose settings when playing a new file in the same player instance

       • New location for config files, new name for the binary.

       • Slave mode compatibility broken (see below)

       • Encoding functionality (replacement for mencoder, see DOCS/encoding.rst)

       • Remove --vo=gif89a, --vo=md5sum, --vo=yuv4mpeg, as encoding can handle these use  cases.
         For  yuv4mpeg,  for  example,  use:  mpv  input.mkv  -o output.y4m --no-audio --oautofps

       • Image subtitles (DVDs etc.) are rendered in  color  and  use  more  correct  positioning
         (color can be disabled with --sub-gray)

       • Wayland support

       • Support  for  precise  scrolling  which  scales  the parameter of commands. If the input
         doesn't support precise scrolling the scale factor stays 1.

       • OSX: Cocoa event loop is independent from mplayer's event loop,  so  user  actions  like
         accessing menus and live resizing do not block the playback.

       • OSX: Apple Remote support.

       • OSX: Media Keys support.

       • Windows: Added WASAPI audio output.

       • New  OSD  bar  with  chapter marks and not positioned in the middle of the video (though
         this can be customized with the --osd-bar-align-y option).

       • Allow customizing whether a key binding for seeking shows the video time, the  OSD  bar,
         or nothing (see section Input Command Prefixes).

       • Display list of chapters and audio/subtitle tracks on OSD (see section Properties).

       • --keep-open option to stop the player from closing the window and exiting after playback

       • Re-enable screensaver while the player is paused.

       • Matroska edition switching at runtime.

       • Support for libavfilter (for video->video and audio->audio). This allows using  most  of
         FFmpeg's  filters,  which  improve  greatly  on  the  old  MPlayer  filters in features,
         performance, and correctness.

       • Improved downmixing and output of surround audio. Instead of using hardcoded pan filters
         to do remixing, use libavresample. Channel maps are used to identify the channel layout,
         so e.g. 3.0 and 2.1 audio can be distinguished.

       • Allow resuming playback at a later point with Shift+q, also see  quit_watch_later  input

       • Support mapping multiple commands to one key.

       • Allow  changing/adjusting video filters at runtime. (This is also used to make the D key
         insert vf_yadif if deinterlacing is not supported otherwise.)

       • Native VAAPI support

       • OSX: VDA support using libavcodec hwaccel API insted of FFmpeg's decoder. Up  to  2-2.5x
         reduction in CPU usage.

       • Make hardware decoding in general work with the opengl video output.

       • General bug fixes and removal of long-standing issues

       • General code cleanups (including refactoring or rewrites of many parts)

       • Many more changes

   Detailed Listing of User-visible Changes
       This  listing  is about changed command line switches, slave commands, and similar things.
       Completely removed features are not listed.

   Command Line Switches
       • There is a new command line syntax, which is generally preferred over  the  old  syntax.
         -optname optvalue becomes --optname=optvalue.

         The  old  syntax  will  not  be  removed  in the near future. However, the new syntax is
         mentioned in all documentation and so on, so it is a  good  thing  to  know  about  this

         (The new syntax was introduced in mplayer2.)

       • In  general,  negating switches like -noopt now have to be written as -no-opt, or better

       • Per-file options are not the default anymore.  You  can  explicitly  specify  file-local
         options. See Usage section.

       • Table of renamed/replaced switches:

                         │Old                    │ New                              │
                         │-no<opt>--no-<opt> (add a dash)          │
                         │-nosound--no-audio                       │
                         │-use-filename-title--title='${filename}'            │
                         │-loop 0--loop=inf                       │
                         │-hardframedrop--framedrop=hard                 │
                         │-osdlevel--osd-level                      │
                         │-delay--audio-delay                    │
                         │-subdelay--sub-delay                      │
                         │-subpos--sub-pos                        │
                         │-forcedsubsonly--sub-forced-only                │
                         │-benchmark--untimed (no stats)             │
                         │-xineramascreen--screen (different values)      │
                         │-ss--start                          │
                         │-endpos--length                         │
                         │-cursor-autohide-delay--cursor-autohide                │
                         │-sub-fuzziness--autosub-match                  │
                         │-subfont--sub-text-font                  │
                         │-font--osd-font                       │
                         │-subfont-*--sub-text-*, --osd-*            │
                         │-subfont-text-scale--sub-scale                      │
                         │-spugauss--sub-gauss                      │
                         │-vobsub--sub (pass the .idx file)       │
                         │-ass-bottom-margin--vf=sub=bottom:top              │
                         │-vc ffh264vdpau (etc.) │ --hwdec=vdpau                    │
                         │-ac spdifac3--ad=spdif:ac3 (see --ad=help)   │
                         │-afm hwac3--ad=spdif:ac3,spdif:dts         │
                         │-x W, -y H--geometry=WxH + --no-keepaspect │
                         │-xy W--autofit=W                      │
                         │-a52drc level--ad-lavc-ac3drc=level           │
                         │-dumpstream--stream-dump=<filename>         │
                         │-capture--stream-capture=<filename>      │
                         │-stop-xscreensaver--stop-screensaver               │
                         │-subfile--sub                            │
                         │-lavdopts ...--vd-lavc-...                    │
                         │-lavfdopts--demuxer-lavf-...               │
                         │-rawaudio ...--demuxer-rawaudio-...           │
                         │-rawvideo ...--demuxer-rawvideo-...           │
                         │-mixer                 │ AO suboptions (alsa, oss)        │
                         │-mixer-channel         │ AO suboptions (alsa, oss)        │

                         │-ao alsa:device=hw=0.3--ao=alsa:device=[hw:0,3]        │
                         │-af volnorm--af=drc (renamed)               │
                         │-zoom                  │ Inverse       available       as │
                         │                       │ --video-unscaled                 │
                         │-panscanrange--video-zoom, --video-pan-x/y    │
                         │-pp ...'--vf=pp=[...]'                  │
                         │-pphelp--vf=pp:help                     │
                         │dvdnav://dvdnav://menu                    │

          -opt val becomes --opt=val.

          Quite some video filters, video outputs, audio filters, audio outputs, had  changes  in
          their option parsing. These aren't mentioned in the table above.

          Also,  some  video and audio filters have been removed, and you have to use libavfilter
          (using --vf=lavfi=[...] or --af=lavfi=[...]) to get them back.

   input.conf and Slave Commands
       • Table of renamed input commands:
            This lists only commands that are not  always  gracefully  handled  by  the  internal
            legacy  translation  layer.  If an input.conf contains any legacy commands, a warning
            will be printed when starting the player. The  warnings  also  show  the  replacement

            Properties containing _ to separate words use - instead.

                    │Old                              │ New                              │
                    │pt_step 1 [0|1]playlist_next       [weak|force] │
                    │                                 │ (translation layer  cannot  deal │
                    │                                 │ with whitespace)                 │
                    │pt_step -1 [0|1]playlist_prev       [weak|force] │
                    │                                 │ (same)                           │
                    │switch_ratio [<ratio>]set aspect <ratio>               │
                    │                                 │                                  │
                    │                                 │ set aspect 0 (to reset aspect)   │
                    │step_property_osd <prop>  <step>cycle <prop> <step> (wraps), add │
                    │<dir><prop> <step>  (clamps).   <dir> │
                    │                                 │ parameter   unsupported.  Use  a │
                    │                                 │ negative <step> instead.         │
                    │step_property   <prop>    <step> │ Prefix cycle or add with no-osd: │
                    │<dir>no-osd cycle <prop> <step>       │
                    │osd_show_property_text <text>show_text  <text>  The  property │
                    │                                 │ expansion  format  string syntax │
                    │                                 │ slightly changed.                │
                    │osd_show_text                    │ Now    does    the    same    as │
                    │                                 │ osd_show_property_text.  Use the │
                    │                                 │ raw prefix to  disable  property │
                    │                                 │ expansion.                       │
                    │show_tracksshow_text ${track-list}          │
                    │show_chaptersshow_text ${chapter-list}        │
                    │af_switch, af_add, ...           │ af set|add|...                   │

       • The  playtree  has  been removed. mpv's internal playlist is a simple and flat list now.
         This simplifies the code and makes mpv usage less confusing.

       • Slave mode is broken. This mode is entirely insane in the old  versions  of  MPlayer.  A
         proper  slave  mode  application needed tons of code and hacks to get it right. The main
         problem is that slave mode is a bad and incomplete interface, and to  get  around  that,
         applications  parsed  output  messages  intended  for  users.  It  is hard to know which
         messages exactly are  parsed  by  slave  mode  applications.  This  makes  it  virtually
         impossible  to  improve  terminal  output  intended  for users without possibly breaking

         This is absolutely insane, and mpv will not try to keep slave mode  compatible.  If  you
         are  a  developer of a slave mode application, contact us, and a new and better protocol
         can be developed.

   Policy for Removed Features
       Features are a good thing, because they make users happy. As  such,  it  is  attempted  to
       preserve  useful features as far as possible. But if a feature is likely to be not used by
       many, and causes problems otherwise, it will be removed. Developers should not be burdened
       with fixing or cleaning up code that has no actual use.

       It  is  always  possible to add back removed features. File a feature request if a feature
       you relied on has been removed, and you want it back. Though it might be rejected  in  the
       worst  case,  it  is  much more likely that it will be either added back, or that a better
       solution will be implemented.

   Why this Fork?
       • MPlayer wants to maintain old code, even if it is very bad code. It seems  mplayer2  was
         forked  because MPlayer developers refused to get rid of all the cruft. The mplayer2 and
         MPlayer codebases also deviated enough to make a reunification unlikely.

       • mplayer2 development is slow, and it is hard to get in changes. Details withheld  as  to
         not turn this into a rant.

       • MPlayer  rarely  merged  from  mplayer2,  and  mplayer2 practically stopped merging from
         MPlayer (not even code cleanups or new features are merged)

       • mpv intends to continuously merge from  mplayer-svn  and  mplayer2,  while  speeding  up
         development.  There  is willingness for significant changes, even if this means breaking


       There are a number of environment variables that can be used to control  the  behavior  of

       HOME   Used to determine mpv config directory: $HOME/.mpv

       TERM   Used to determine terminal type.

              Directory  where  mpv  looks for user settings. Overrides HOME, and mpv will try to
              load the config file as $MPV_HOME/config.

              Directory where mpv looks for gettext translation files (if enabled).

       MPV_VERBOSE (see also -v and --msglevel)
              Set the initial verbosity level across  all  message  modules  (default:  0).   The
              resulting  verbosity  corresponds  to  that  of  --msglevel=5  plus  the  value  of

              If set to 1, enable internal talloc  leak  reporting.  Note  that  this  can  cause
              trouble with multithreading, so only developers should use this.

              Specifies  the search path for LADSPA plugins. If it is unset, fully qualified path
              names must be used.

              Standard X11 display name to use.

              This  library  accesses  various  environment  variables.  However,  they  are  not
              centrally  documented, and documenting them is not our job. Therefore, this list is

              Notable environment variables:

                     URL to proxy for http:// and https:// URLs.

                     List of domain patterns for which no proxy should be used.  List entries are
                     separated by ,. Patterns can include *.


                     Specify  a  directory in which to store title key values. This will speed up
                     descrambling of DVDs which are in the cache. The DVDCSS_CACHE  directory  is
                     created  if it does not exist, and a subdirectory is created named after the
                     DVD's title or manufacturing date. If DVDCSS_CACHE is not set or  is  empty,
                     libdvdcss  will  use  the default value which is ${HOME}/.dvdcss/ under Unix
                     and the roaming application data directory (%APPDATA%)  under  Windows.  The
                     special value "off" disables caching.

                     Sets  the  authentication  and  decryption method that libdvdcss will use to
                     read scrambled discs. Can be one of title, key or disc.

                     key    is the default method. libdvdcss will use a set of calculated  player
                            keys to try and get the disc key. This can fail if the drive does not
                            recognize any of the player keys.

                     disc   is a fallback method when key has failed.  Instead  of  using  player
                            keys,  libdvdcss  will  crack  the  disc  key  using  a  brute  force
                            algorithm. This process is CPU intensive and requires 64 MB of memory
                            to store temporary data.

                     title  is  the fallback when all other methods have failed. It does not rely
                            on a key exchange with the DVD drive, but rather uses a crypto attack
                            to  guess the title key. On rare cases this may fail because there is
                            not enough encrypted data  on  the  disc  to  perform  a  statistical
                            attack,  but  on  the  other hand it is the only way to decrypt a DVD
                            stored on a hard disc, or a DVD with the  wrong  region  on  an  RPC2

                     Specify  the  raw  device  to use. Exact usage will depend on your operating
                     system, the Linux utility to set up raw  devices  is  raw(8)  for  instance.
                     Please  note  that  on  most  operating systems, using a raw device requires
                     highly aligned buffers: Linux requires a 2048 bytes alignment (which is  the
                     size of a DVD sector).

                     Sets the libdvdcss verbosity level.

                     0      Outputs no messages at all.

                     1      Outputs error messages to stderr.

                     2      Outputs error messages and debug messages to stderr.

                     Skip retrieving all keys on startup. Currently disabled.

              HOME   FIXME: Document this.


       Normally  mpv  returns  0  as  exit code after finishing playback successfully.  If errors
       happen, the following exit codes can be returned:

          1      Error initializing mpv. This is also returned if unknown options are  passed  to

          2      The  file  passed  to mpv couldn't be played. This is somewhat fuzzy: currently,
                 playback of a file is considered to be successful if initialization  was  mostly
                 successful, even if playback fails immediately after initialization.

          3      There were some files that could be played, and some files which couldn't (using
                 the definition of success from above).

       Note that quitting the player manually will always lead to exit  code  0,  overriding  the
       exit  code  that would be returned normally. Also, the quit input command can take an exit
       code: in this case, that exit code is returned.


              mpv system-wide settings (depends on --prefix passed to configure)

              mpv user settings

              input bindings (see --input-keylist for the full list)


       Blu-ray playback:mpv bd:////path/to/discmpv bd:// --bluray-device=/path/to/disc

       Play in Japanese with English subtitles:
              mpv dvd://1 --alang=ja --slang=en

       Play only chapters 5, 6, 7:
              mpv dvd://1 --chapter=5-7

       Play only titles 5, 6, 7:
              mpv dvd://5-7

       Play a multiangle DVD:
              mpv dvd://1 --dvdangle=2

       Play from a different DVD device:
              mpv dvd://1 --dvd-device=/dev/dvd2

       Play DVD video from a directory with VOB files:
              mpv dvd://1 --dvd-device=/path/to/directory/

       Stream from HTTP:

       Stream using RTSP:
              mpv rtsp://

       Play a libavfilter graph:
              mpv avdevice://lavfi:mandelbrot


       mpv is a MPlayer fork based on mplayer2, which in turn is a fork of MPlayer.

       MPlayer was initially written by Arpad Gereoffy. See the AUTHORS file for a list  of  some
       of the many other contributors.

       MPlayer is (C) 2000-2013 The MPlayer Team

       This man page was written mainly by Gabucino, Jonas Jermann and Diego Biurrun.