summaryrefslogtreecommitdiff
path: root/DOCS/man/options.rst
diff options
context:
space:
mode:
Diffstat (limited to 'DOCS/man/options.rst')
-rw-r--r--DOCS/man/options.rst624
1 files changed, 376 insertions, 248 deletions
diff --git a/DOCS/man/options.rst b/DOCS/man/options.rst
index ce14d3e..17495d6 100644
--- a/DOCS/man/options.rst
+++ b/DOCS/man/options.rst
@@ -30,6 +30,9 @@ Track Selection
- ``mpv --slang=jpn example.mkv`` plays a Matroska file with Japanese
subtitles.
+``--vlang=<...>``
+ Equivalent to ``--alang`` and ``--slang``, for video tracks.
+
``--aid=<ID|auto|no>``
Select audio track. ``auto`` selects the default, ``no`` disables audio.
See also ``--alang``. mpv normally prints available audio tracks on the
@@ -70,6 +73,8 @@ Track Selection
options), there will be streams with duplicate IDs. In this case, the
first stream in order is selected.
+ Deprecated.
+
``--edition=<ID|auto>``
(Matroska files only)
Specify the edition (set of chapters) to use, where 0 is the first. If set
@@ -104,6 +109,8 @@ Playback Control
``#c`` seeks to chapter number c. (Chapters start from 1.)
+ ``none`` resets any previously set option (useful for libmpv).
+
.. admonition:: Examples
``--start=+56``, ``--start=+00:56``
@@ -130,6 +137,9 @@ Playback Control
Stop after a given time relative to the start time.
See ``--start`` for valid option values and examples.
+ If both ``--end`` and ``--length`` are provided, playback will stop when it
+ reaches either of the two endpoints.
+
``--rebase-start-time=<yes|no>``
Whether to move the file start time to ``00:00:00`` (default: yes). This
is less awkward for files which start at a random timestamp, such as
@@ -316,8 +326,9 @@ Playback Control
the ``a`` timestamp. Seeking past the ``b`` point doesn't loop (this is
intentional).
- If both options are set to ``no``, looping is disabled. Otherwise, the
- start/end of the file is used if one of the options is set to ``no``.
+ If both options are set to ``no`` or unset, looping is disabled.
+ Otherwise, the start/end of playback is used if one of the options
+ is set to ``no`` or unset.
The loop-points can be adjusted at runtime with the corresponding
properties. See also ``ab-loop`` command.
@@ -356,11 +367,10 @@ Playback Control
Without ``--hr-seek``, skipping will snap to keyframes.
``--stop-playback-on-init-failure=<yes|no>``
- Stop playback if either audio or video fails to initialize. Currently,
- the default behavior is ``no`` for the command line player, but ``yes``
- for libmpv. With ``no``, playback will continue in video-only or audio-only
- mode if one of them fails. This doesn't affect playback of audio-only or
- video-only files.
+ Stop playback if either audio or video fails to initialize (default: no).
+ With ``no``, playback will continue in video-only or audio-only mode if one
+ of them fails. This doesn't affect playback of audio-only or video-only
+ files.
Program Behavior
----------------
@@ -403,8 +413,9 @@ Program Behavior
``--log-file=<path>``
Opens the given path for writing, and print log messages to it. Existing
- files will be truncated. The log level always corresponds to ``-v``,
- regardless of terminal verbosity levels.
+ files will be truncated. The log level is at least ``-v -v``, but
+ can be raised via ``--msg-level`` (the option cannot lower it below the
+ forced minimum log level).
``--config-dir=<path>``
Force a different configuration directory. If this is set, the given
@@ -444,7 +455,7 @@ Program Behavior
``--idle=<no|yes|once>``
Makes mpv wait idly instead of quitting when there is no file to play.
Mostly useful in input mode, where mpv can be controlled through input
- commands.
+ commands. (Default: ``no``)
``once`` will only idle at start and let the player close once the
first playlist has finished playing back.
@@ -519,6 +530,7 @@ Program Behavior
``--ignore-path-in-watch-later-config``
Ignore path (i.e. use filename only) when using watch later feature.
+ (Default: disabled)
``--show-profile=<profile>``
Show the description and content of a profile.
@@ -579,6 +591,11 @@ Program Behavior
- ``--ytdl-raw-options=username=user,password=pass``
- ``--ytdl-raw-options=force-ipv6=``
+``--load-stats-overlay=<yes|no>``
+ Enable the builtin script that shows useful playback information on a key
+ binding (default: yes). By default, the ``i`` key is used (``I`` to make
+ the overlay permanent).
+
``--player-operation-mode=<cplayer|pseudo-gui>``
For enabling "pseudo GUI mode", which means that the defaults for some
options are changed. This option should not normally be used directly, but
@@ -667,54 +684,60 @@ Video
:auto: enable best hw decoder (see below)
:yes: exactly the same as ``auto``
:auto-copy: enable best hw decoder with copy-back (see below)
- :vdpau: requires ``--vo=vdpau`` or ``--vo=opengl`` (Linux only)
+ :vdpau: requires ``--vo=gpu`` or ``--vo=vdpau`` (Linux only)
:vdpau-copy: copies video back into system RAM (Linux with some GPUs only)
- :vaapi: requires ``--vo=opengl`` or ``--vo=vaapi`` (Linux only)
- :vaapi-copy: copies video back into system RAM (Linux with Intel GPUs only)
- :videotoolbox: requires ``--vo=opengl`` (OS X 10.8 and up),
+ :vaapi: requires ``--vo=gpu`` or ``--vo=vaapi`` (Linux only)
+ :vaapi-copy: copies video back into system RAM (Linux with some GPUs only)
+ :videotoolbox: requires ``--vo=gpu`` (OS X 10.8 and up),
or ``--vo=opengl-cb`` (iOS 9.0 and up)
:videotoolbox-copy: copies video back into system RAM (OS X 10.8 or iOS 9.0 and up)
- :dxva2: requires ``--vo=opengl`` with ``--opengl-backend=angle`` or
- ``--opengl-backend=dxinterop`` (Windows only)
+ :dxva2: requires ``--vo=gpu`` with ``--gpu-context=angle`` or
+ ``--gpu-context=dxinterop`` (Windows only)
:dxva2-copy: copies video back to system RAM (Windows only)
- :d3d11va: requires ``--vo=opengl`` with ``--opengl-backend=angle``
- (Windows 8+ only)
+ :d3d11va: requires ``--vo=gpu`` with ``--gpu-context=d3d11`` or
+ ``--gpu-context=angle`` (Windows 8+ only)
:d3d11va-copy: copies video back to system RAM (Windows 8+ only)
- :mediacodec: copies video back to system RAM (Android only)
- :rpi: requires ``--vo=opengl`` (Raspberry Pi only - default if available)
- :rpi-copy: copies video back to system RAM (Raspberry Pi only)
- :cuda: requires ``--vo=opengl`` (Any platform CUDA is available)
+ :mediacodec: requires ``--vo=mediacodec_embed`` (Android only)
+ :mediacodec-copy: copies video back to system RAM (Android only)
+ :mmal: requires ``--vo=gpu`` (Raspberry Pi only - default if available)
+ :mmal-copy: copies video back to system RAM (Raspberry Pi only)
+ :cuda: requires ``--vo=gpu`` (Any platform CUDA is available)
:cuda-copy: copies video back to system RAM (Any platform CUDA is available)
+ :nvdec: requires ``--vo=gpu`` (Any platform CUDA is available)
+ :nvdec-copy: copies video back to system RAM (Any platform CUDA is available)
:crystalhd: copies video back to system RAM (Any platform supported by hardware)
+ :rkmpp: requires ``--vo=gpu`` (some RockChip devices 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`` or ``--vo=opengl``, vdpau decoding will
+ if you are not using ``--vo=gpu`` or ``--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 (might matter on some Linux systems).
``auto-copy`` selects only modes that copy the video data back to system
- memory after decoding. Currently, this selects only one of the following
- modes: ``vaapi-copy``, ``dxva2-copy``, ``d3d11va-copy``, ``mediacodec``.
+ memory after decoding. This selects modes like ``vaapi-copy`` (and so on).
If none of these work, hardware decoding is disabled. This mode is always
guaranteed to incur no additional loss compared to software decoding, and
will allow CPU processing with video filters.
- The ``vaapi`` mode, if used with ``--vo=opengl``, requires Mesa 11 and most
- likely works with Intel GPUs only. It also requires the opengl EGL backend
- (automatically used if available). You can also try the old GLX backend by
- forcing it with ``--opengl-backend=x11``, but the vaapi/GLX interop is
- said to be slower than ``vaapi-copy``.
+ The ``vaapi`` mode, if used with ``--vo=gpu``, requires Mesa 11 and most
+ likely works with Intel GPUs only. It also requires the opengl EGL backend.
The ``cuda`` and ``cuda-copy`` modes provides deinterlacing in the decoder
which is useful as there is no other deinterlacing mechanism in the opengl
output path. To use this deinterlacing you must pass the option:
``vd-lavc-o=deint=[weave|bob|adaptive]``.
Pass ``weave`` (or leave the option unset) to not attempt any
- deinterlacing. ``cuda`` should always be preferred unless the ``opengl``
+ deinterlacing. ``cuda`` should always be preferred unless the ``gpu``
vo is not being used or filters are required.
+ ``nvdec`` is a newer implementation of CUVID/CUDA decoding, which uses the
+ FFmpeg decoders for file parsing. Experimental, is known not to correctly
+ check whether decoding is supported by the hardware at all. Deinterlacing
+ is not supported. Since this uses FFmpeg's codec parsers, it is expected
+ that this generally causes fewer issues than ``cuda``.
+
Most video filters will not work with hardware decoding as they are
primarily implemented on the CPU. Some exceptions are ``vdpaupp``,
``vdpaurb`` and ``vavpp``. See `VIDEO FILTERS`_ for more details.
@@ -739,8 +762,8 @@ Video
be some loss, or even blatantly incorrect results.
In some cases, RGB conversion is forced, which means the RGB conversion
- is performed by the hardware decoding API, instead of the OpenGL code
- used by ``--vo=opengl``. This means certain colorspaces may not display
+ is performed by the hardware decoding API, instead of the shaders
+ used by ``--vo=gpu``. This means certain colorspaces may not display
correctly, and certain filtering (such as debanding) cannot be applied
in an ideal way. This will also usually force the use of low quality
chroma scalers instead of the one specified by ``--cscale``. In other
@@ -759,10 +782,11 @@ Video
BT.601 or BT.709, a forced, low-quality but correct RGB conversion is
performed. Otherwise, the result will be totally incorrect.
- ``d3d11va`` is usually safe (if used with ANGLE builds that support
- ``EGL_KHR_stream path`` - otherwise, it converts to RGB), except that
- 10 bit input (HEVC main 10 profiles) will be rounded down to 8 bits,
- which results in reduced quality.
+ ``d3d11va`` is safe when used with the ``d3d11`` backend. If used with
+ ``angle`` is it usually safe, except that 10 bit input (HEVC main 10
+ profiles) will be rounded down to 8 bits, which will result in reduced
+ quality. Also note that with very old ANGLE builds (without
+ ``EGL_KHR_stream path``,) all input will be converted to RGB.
``dxva2`` is not safe. It appears to always use BT.601 for forced RGB
conversion, but actual behavior depends on the GPU drivers. Some drivers
@@ -772,7 +796,7 @@ Video
completely ordinary video sources.
``rpi`` always uses the hardware overlay renderer, even with
- ``--vo=opengl``.
+ ``--vo=gpu``.
``cuda`` should be safe, but it has been reported to corrupt the
timestamps causing glitched, flashing frames on some files. It can also
@@ -799,34 +823,44 @@ Video
frame glitches or discoloration, and you have ``--hwdec`` turned on,
the first thing you should try is disabling it.
-``--opengl-hwdec-interop=<name>``
- This is useful for the ``opengl`` and ``opengl-cb`` VOs for creating the
- hardware decoding OpenGL interop context, but without actually enabling
- hardware decoding itself (like ``--hwdec`` does).
+``--gpu-hwdec-interop=<auto|all|no|name>``
+ This option is for troubleshooting hwdec interop issues. Since it's a
+ debugging option, its semantics may change at any time.
+
+ This is useful for the ``gpu`` and ``opengl-cb`` VOs for selecting which
+ hwdec interop context to use exactly. Effectively it also can be used
+ to block loading of certain backends.
- If set to an empty string (default), the ``--hwdec`` option is used.
+ If set to ``auto`` (default), the behavior depends on the VO: for ``gpu``,
+ it does nothing, and the interop context is loaded on demand (when the
+ decoder probes for ``--hwdec`` support). For ``opengl-cb``, which has
+ has no on-demand loading, this is equivalent to ``all``.
- For ``opengl``, if set, do not create the interop context on demand, but
- when the VO is created.
+ The empty string is equivalent to ``auto``.
- For ``opengl-cb``, if set, load the interop context as soon as the OpenGL
- context is created. Since ``opengl-cb`` has no on-demand loading, this
- allows enabling hardware decoding at runtime at all, without having
- to temporarily set the ``hwdec`` option just during OpenGL context
- initialization with ``mpv_opengl_cb_init_gl()``.
+ If set to ``all``, it attempts to load all interop contexts at GL context
+ creation time.
- See ``--opengl-hwdec-interop=help`` for accepted values. This lists the
- interop backend, with the ``--hwdec`` alias after it in ``[...]``. Consider
- all values except the proper interop backend name, ``auto``, and ``no`` as
- silently deprecated and subject to change. Also, if you use this in
- application code (e.g. via libmpv), any value other than ``auto`` and ``no``
- should be avoided, as backends can change.
+ Other than that, a specific backend can be set, and the list of them can
+ be queried with ``help`` (mpv CLI only).
- Currently the option sets a single value. It is possible that the option
- type changes to a list in the future.
+ Runtime changes to this are ignored (the current option value is used
+ whenever the renderer is created).
- The old alias ``--hwdec-preload`` has different behavior if the option value
- is ``no``.
+ The old aliases ``--opengl-hwdec-interop`` and ``--hwdec-preload`` are
+ barely related to this anymore, but will be somewhat compatible in some
+ cases.
+
+``--hwdec-image-format=<name>``
+ Set the internal pixel format used by hardware decoding via ``--hwdec``
+ (default ``no``). The special value ``no`` selects an implementation
+ specific standard format. Most decoder implementations support only one
+ format, and will fail to initialize if the format is not supported.
+
+ Some implementations might support multiple formats. In particular,
+ videotoolbox is known to require ``uyvy422`` for good performance on some
+ older hardware. d3d11va can always use ``yuv420p``, which uses an opaque
+ format, with likely no advantages.
``--videotoolbox-format=<name>``
Set the internal pixel format used by ``--hwdec=videotoolbox`` on OSX. The
@@ -838,6 +872,9 @@ Video
Since mpv 0.25.0, ``no`` is an accepted value, which lets the decoder pick
the format on newer FFmpeg versions (will use ``nv12`` on older versions).
+ Deprecated. Use ``--hwdec-image-format`` if you really need this. If both
+ are specified, ``--hwdec-image-format`` wins.
+
``--panscan=<0.0-1.0>``
Enables pan-and-scan functionality (cropping the sides of e.g. a 16:9
video to make it fit a 4:3 display without black bands). The range
@@ -916,8 +953,8 @@ Video
rotation metadata.)
``--video-stereo-mode=<no|mode>``
- Set the stereo 3D output mode (default: ``mono``). This is done by inserting
- the ``stereo3d`` conversion filter.
+ Set the stereo 3D output mode (default: ``mono``). This is mostly broken and
+ thus deprecated.
The pseudo-mode ``no`` disables automatic conversion completely.
@@ -1049,7 +1086,7 @@ Video
This can speed up video upload, and may help with large resolutions or
slow hardware. This works only with the following VOs:
- - ``opengl``: requires at least OpenGL 4.4.
+ - ``gpu``: requires at least OpenGL 4.4.
(In particular, this can't be made work with ``opengl-cb``.)
@@ -1193,11 +1230,11 @@ Audio
List of codecs for which compressed audio passthrough should be used. This
works for both classic S/PDIF and HDMI.
- Possible codecs are ``ac3``, ``dts``, ``dts-hd``. Multiple codecs can be
- specified by separating them with ``,``. ``dts`` refers to low bitrate DTS
- core, while ``dts-hd`` refers to DTS MA (receiver and OS support varies).
- If both ``dts`` and ``dts-hd`` are specified, it behaves equivalent to
- specifying ``dts-hd`` only.
+ Possible codecs are ``ac3``, ``dts``, ``dts-hd``, ``eac3``, ``truehd``.
+ Multiple codecs can be specified by separating them with ``,``. ``dts``
+ refers to low bitrate DTS core, while ``dts-hd`` refers to DTS MA (receiver
+ and OS support varies). If both ``dts`` and ``dts-hd`` are specified, it
+ behaves equivalent to specifying ``dts-hd`` only.
In earlier mpv versions you could use ``--ad`` to force the spdif wrapper.
This does not work anymore.
@@ -1258,14 +1295,6 @@ Audio
is always applied if the replaygain logic is somehow inactive. If this
is applied, no other replaygain options are applied.
-``--balance=<value>``
- How much left/right channels contribute to the audio. (The implementation
- of this feature is rather odd. It doesn't change the volumes of each
- channel, but instead sets up a pan matrix to mix the left and right
- channels.)
-
- Deprecated.
-
``--audio-delay=<sec>``
Audio delay in seconds (positive or negative float value). Positive values
delay the audio, and negative values delay the video.
@@ -1378,6 +1407,10 @@ Audio
If the channel layout of the media file (i.e. the decoder) and the AO's
channel layout don't match, mpv will attempt to insert a conversion filter.
+ You may need to change the channel layout of the system mixer to achieve
+ your desired output as mpv does not have control over it. Another
+ work-around for this on some AOs is to use ``--audio-exclusive=yes`` to
+ circumvent the system mixer entirely.
.. admonition:: Warning
@@ -1554,7 +1587,7 @@ Subtitles
``--sub-delay=<sec>``
Delays subtitles by ``<sec>`` seconds. Can be negative.
-``--sub-files=<file-list>``
+``--sub-files=<file-list>``, ``--sub-file=<filename>``
Add a subtitle file to the list of external subtitles.
If you use ``--sub-file`` only once, this subtitle file is displayed by
@@ -1566,7 +1599,11 @@ Subtitles
and ``--secondary-sid`` to select the second index. (The index is printed
on the terminal output after the ``--sid=`` in the list of streams.)
- This is a list option. See `List Options`_ for details.
+ ``--sub-files`` is a list option (see `List Options`_ for details), and
+ can take multiple file names separated by ``:`` (Unix) or ``;`` (Windows),
+ while ``--sub-file`` takes a single filename, but can be used multiple
+ times to add multiple files. Technically, ``--sub-file`` is a CLI/config
+ file only alias for ``--sub-files-append``.
``--secondary-sid=<ID|auto|no>``
Select a secondary subtitle stream. This is similar to ``--sid``. If a
@@ -2104,6 +2141,18 @@ Subtitles
Default: ``no``.
+``--sub-create-cc-track=<yes|no>``
+ For every video stream, create a closed captions track (default: no). The
+ only purpose is to make the track available for selection at the start of
+ playback, instead of creating it lazily. This applies only to
+ ``ATSC A53 Part 4 Closed Captions`` (displayed by mpv as subtitle tracks
+ using the codec ``eia_608``). The CC track is marked "default" and selected
+ according to the normal subtitle track selection rules. You can then use
+ ``--sid`` to explicitly select the correct track too.
+
+ If the video stream contains no closed captions, or if no video is being
+ decoded, the CC track will remain empty and will not show any text.
+
Window
------
@@ -2210,6 +2259,13 @@ Window
This option does not affect the framerate used for ``mf://`` or
``--merge-files``. For that, use ``--mf-fps`` instead.
+ Setting ``--image-display-duration`` hides the OSC and does not track
+ playback time on the command-line output, and also does not duplicate
+ the image frame when encoding. To force the player into "dumb mode"
+ and actually count out seconds, or to duplicate the image when
+ encoding, you need to use ``--demuxer=lavf --demuxer-lavf-o=loop=1``,
+ and use ``--length`` or ``--frames`` to stop after a particular time.
+
``--force-window=<yes|no|immediate>``
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
@@ -2402,8 +2458,8 @@ Window
``--force-rgba-osd-rendering``
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,
+ implications. For VOs which support native ASS rendering (like ``gpu``,
+ ``vdpau``, ``direct3d``), this can be slightly faster or slower,
depending on GPU drivers and hardware. For other VOs, this just makes
rendering slower.
@@ -2412,50 +2468,6 @@ Window
there is a change in video parameters, video stream or file. This used to
be the default behavior. Currently only affects X11 VOs.
-``--heartbeat-cmd=<command>``
-
- .. warning::
-
- This option is redundant with Lua scripting. Further, it shouldn't be
- needed for disabling screensaver anyway, since mpv will call
- ``xdg-screensaver`` when using X11 backend. As a consequence this
- option has been deprecated with no direct replacement.
-
- 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.
-
- .. note::
-
- 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.
-
- .. admonition:: Example for xscreensaver
-
- ``mpv --heartbeat-cmd="xscreensaver-command -deactivate" file``
-
- .. admonition:: Example for GNOME screensaver
-
- ``mpv --heartbeat-cmd="gnome-screensaver-command --deactivate" file``
-
-
-``--heartbeat-interval=<sec>``
- Time between ``--heartbeat-cmd`` invocations in seconds (default: 30).
-
- .. note::
-
- This does not affect the normal screensaver operation in any way.
-
``--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.
@@ -2526,6 +2538,11 @@ Window
support window embedding of foreign processes, this works only with libmpv,
and will crash when used from the command line.
+ On Android, the ID is interpreted as ``android.view.Surface``. Pass it as a
+ value cast to ``intptr_t``. Use with ``--vo=mediacodec_embed`` and
+ ``--hwdec=mediacodec`` for direct rendering using MediaCodec, or with
+ ``--vo=gpu --gpu-context=android`` (with or without ``--hwdec=mediacodec-copy``).
+
``--no-window-dragging``
Don't move the window when clicking on it and moving the mouse pointer.
@@ -2857,11 +2874,38 @@ Demuxer
See ``--list-options`` for defaults and value range.
-``--demuxer-max-packets=<packets>``
- Quite similar ``--demuxer-max-bytes=<bytes>``. Deprecated, because the
- other option does basically the same job. Since mpv 0.25.0, the code
- tries to account for per-packet overhead, which is why this option becomes
- rather pointless.
+``--demuxer-max-back-bytes=<value>``
+ This controls how much past data the demuxer is allowed to preserve. This
+ is useful only if the ``--demuxer-seekable-cache`` option is enabled.
+ Unlike the forward cache, there is no control how many seconds are actually
+ cached - it will simply use as much memory this option allows. Setting this
+ option to 0 will strictly disable any back buffer, but this will lead to
+ the situation that the forward seek range starts after the current playback
+ position (as it removes past packets that are seek points).
+
+ Keep in mind that other buffers in the player (like decoders) will cause the
+ demuxer to cache "future" frames in the back buffer, which can skew the
+ impression about how much data the backbuffer contains.
+
+ See ``--list-options`` for defaults and value range.
+
+``--demuxer-seekable-cache=<yes|no|auto>``
+ This controls whether seeking can use the demuxer cache (default: auto). If
+ enabled, short seek offsets will not trigger a low level demuxer seek
+ (which means for example that slow network round trips or FFmpeg seek bugs
+ can be avoided). If a seek cannot happen within the cached range, a low
+ level seek will be triggered. Seeking outside of the cache will start a new
+ cached range, but can discard the old cache range if the demuxer exhibits
+ certain unsupported behavior.
+
+ Keep in mind that some events can flush the cache or force a low level
+ seek anyway, such as switching tracks, or attempting to seek before the
+ start or after the end of the file. This option is experimental - thus
+ disabled, and bugs are to be expected.
+
+ The special value ``auto`` means ``yes`` in the same situation as
+ ``--cache-secs`` is used (i.e. when the stream appears to be a network
+ stream or the stream cache is enabled).
``--demuxer-thread=<yes|no>``
Run the demuxer in a separate thread, and let it prefetch a certain amount
@@ -3421,12 +3465,16 @@ Terminal
``--msg-level=<module1=level1,module2=level2,...>``
Control verbosity directly for each module. The ``all`` module changes the
- verbosity of all the modules not explicitly specified on the command line.
+ verbosity of all the modules. The verbosity changes from this option are
+ applied in order from left to right, and each item can override a previous
+ one.
Run mpv with ``--msg-level=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.
+ This also affects ``--log-file``, and in certain cases libmpv API logging.
+
.. note::
Some messages are printed before the command line is parsed and are
@@ -3708,7 +3756,7 @@ Cache
between readahead and backbuffer sizes.
``--cache-default=<kBytes|no>``
- Set the size of the cache in kilobytes (default: 75000 KB). Using ``no``
+ Set the size of the cache in kilobytes (default: 10000 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.
@@ -3729,7 +3777,7 @@ Cache
This option allows control over this.
``--cache-backbuffer=<kBytes>``
- Size of the cache back buffer (default: 75000 KB). This will add to the total
+ Size of the cache back buffer (default: 10000 KB). This will add to the total
cache size, and reserved the amount for seeking back. The reserved amount
will not be used for readahead, and instead preserves already read data to
enable fast seeking back.
@@ -3787,7 +3835,9 @@ Cache
``--cache-secs=<seconds>``
How many seconds of audio/video to prefetch if the cache is active. This
overrides the ``--demuxer-readahead-secs`` option if and only if the cache
- is enabled and the value is larger. (Default: 10.)
+ is enabled and the value is larger. The default value is set to something
+ very high, so the actually achieved readahead will usually be limited by
+ the value of the ``--demuxer-max-bytes`` option.
``--cache-pause``, ``--no-cache-pause``
Whether the player should automatically pause when the cache runs low,
@@ -3947,10 +3997,10 @@ ALSA audio output options
ALSA device).
-OpenGL renderer options
+GPU renderer options
-----------------------
-The following video options are currently all specific to ``--vo=opengl`` and
+The following video options are currently all specific to ``--vo=gpu`` and
``--vo=opengl-cb`` only, which are the only VOs that implement them.
``--scale=<filter>``
@@ -3961,7 +4011,7 @@ The following video options are currently all specific to ``--vo=opengl`` and
is the default for compatibility reasons.
``spline36``
- Mid quality and speed. This is the default when using ``opengl-hq``.
+ Mid quality and speed. This is the default when using ``gpu-hq``.
``lanczos``
Lanczos scaling. Provides mid quality and speed. Generally worse than
@@ -4019,9 +4069,11 @@ The following video options are currently all specific to ``--vo=opengl`` and
``--tscale`` are separable convolution filters (use ``--tscale=help`` to
get a list). The default is ``mitchell``.
- Note that the maximum supported filter radius is currently 3, due to
- limitations in the number of video textures that can be loaded
- simultaneously.
+ Common ``--tscale`` choices include ``oversample``, ``linear``,
+ ``catmull_rom``, ``mitchell``, ``gaussian``, or ``bicubic``. These are
+ listed in increasing order of smoothness/blurriness, with ``bicubic``
+ being the smoothest/blurriest and ``oversample`` being the sharpest/least
+ smooth.
``--scale-param1=<value>``, ``--scale-param2=<value>``, ``--cscale-param1=<value>``, ``--cscale-param2=<value>``, ``--dscale-param1=<value>``, ``--dscale-param2=<value>``, ``--tscale-param1=<value>``, ``--tscale-param2=<value>``
Set filter parameters. Ignored if the filter is not tunable. Currently,
@@ -4124,7 +4176,7 @@ The following video options are currently all specific to ``--vo=opengl`` and
``--linear-scaling``
Scale in linear light. It should only be used with a
- ``--opengl-fbo-format`` that has at least 16 bit precision. This option
+ ``--fbo-format`` that has at least 16 bit precision. This option
has no effect on HDR content.
``--correct-downscaling``
@@ -4147,10 +4199,6 @@ The following video options are currently all specific to ``--vo=opengl`` and
the video along the temporal axis. The filter used can be controlled using
the ``--tscale`` setting.
- Note that this relies on vsync to work, see ``--opengl-swapinterval`` for
- more information. It should also only be used with an ``--opengl-fbo-format``
- that has at least 16 bit precision.
-
``--interpolation-threshold=<0..1,-1>``
Threshold below which frame ratio interpolation gets disabled (default:
``0.0001``). This is calculated as ``abs(disphz/vfps - 1) < threshold``,
@@ -4212,10 +4260,10 @@ The following video options are currently all specific to ``--vo=opengl`` and
``--temporal-dither`` is in use. 1 (the default) will update on every video
frame, 2 on every other frame, etc.
-``--opengl-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 writing).
+``--gpu-debug``
+ Enables GPU debugging. What this means depends on the API type. For OpenGL,
+ it calls ``glGetError()``, and requests a debug context. For Vulkan, it
+ enables validation layers.
``--opengl-swapinterval=<n>``
Interval in displayed frames between two buffer swaps. 1 is equivalent to
@@ -4228,7 +4276,83 @@ The following video options are currently all specific to ``--vo=opengl`` and
results, as can missing or incorrect display FPS information (see
``--display-fps``).
-``--opengl-shaders=<file-list>``
+``--vulkan-swap-mode=<mode>``
+ Controls the presentation mode of the vulkan swapchain. This is similar
+ to the ``--opengl-swapinterval`` option.
+
+ auto
+ Use the preferred swapchain mode for the vulkan context. (Default)
+ fifo
+ Non-tearing, vsync blocked. Similar to "VSync on".
+ fifo-relaxed
+ Tearing, vsync blocked. Late frames will tear instead of stuttering.
+ mailbox
+ Non-tearing, not vsync blocked. Similar to "triple buffering".
+ immediate
+ Tearing, not vsync blocked. Similar to "VSync off".
+
+``--vulkan-queue-count=<1..8>``
+ Controls the number of VkQueues used for rendering (limited by how many
+ your device supports). In theory, using more queues could enable some
+ parallelism between frames (when using a ``--swapchain-depth`` higher than
+ 1). (Default: 1)
+
+ NOTE: Setting this to a value higher than 1 may cause graphical corruption,
+ as mpv's vulkan implementation currently does not try and protect textures
+ against concurrent access.
+
+``--d3d11-warp=<yes|no|auto>``
+ Use WARP (Windows Advanced Rasterization Platform) with the D3D11 GPU
+ backend (default: auto). This is a high performance software renderer. By
+ default, it is only used when the system has no hardware adapters that
+ support D3D11. While the extended GPU features will work with WARP, they
+ can be very slow.
+
+``--d3d11-feature-level=<12_1|12_0|11_1|11_0|10_1|10_0|9_3|9_2|9_1>``
+ Select a specific feature level when using the D3D11 GPU backend. By
+ default, the highest available feature level is used. This option can be
+ used to select a lower feature level, which is mainly useful for debugging.
+ Most extended GPU features will not work at 9_x feature levels.
+
+``--d3d11-flip=<yes|no>``
+ Enable flip-model presentation, which avoids unnecessarily copying the
+ backbuffer by sharing surfaces with the DWM (default: yes). This may cause
+ performance issues with older drivers. If flip-model presentation is not
+ supported (for example, on Windows 7 without the platform update), mpv will
+ automatically fall back to the older bitblt presentation model.
+
+``--d3d11-sync-interval=<0..4>``
+ Schedule each frame to be presented for this number of VBlank intervals.
+ (default: 1) Setting to 1 will enable VSync, setting to 0 will disable it.
+
+``--d3d11va-zero-copy=<yes|no>``
+ By default, when using hardware decoding with ``--gpu-api=d3d11``, the
+ video image will be copied (GPU-to-GPU) from the decoder surface to a
+ shader resource. Set this option to avoid that copy by sampling directly
+ from the decoder image. This may increase performance and reduce power
+ usage, but can cause the image to be sampled incorrectly on the bottom and
+ right edges due to padding, and may invoke driver bugs, since Direct3D 11
+ technically does not allow sampling from a decoder surface (though most
+ drivers support it.)
+
+ Currently only relevant for ``--gpu-api=d3d11``.
+
+``--spirv-compiler=<compiler>``
+ Controls which compiler is used to translate GLSL to SPIR-V. This is
+ (currently) only relevant for ``--gpu-api=vulkan``. The possible choices
+ are:
+
+ auto
+ Use the first available compiler. (Default)
+ shaderc
+ Use libshaderc, which is an API wrapper around glslang. This is
+ generally the most preferred, if available.
+ nvidia
+ Use nvidia's built-in compiler. Only works for nvidia GPUs. Can be
+ buggy, but also supports some features glslang does not. Only works
+ with vulkan.
+
+``--glsl-shaders=<file-list>``
Custom GLSL hooks. These are a flexible way to add custom fragment shaders,
which can be injected at almost arbitrary points in the rendering pipeline,
and access all previous intermediate textures. Each use of the option will
@@ -4270,7 +4394,7 @@ The following video options are currently all specific to ``--vo=opengl`` and
FORMAT <name> (required)
The texture format for the samples. Supported texture formats are listed
- in debug logging when the ``opengl`` VO is initialized (look for
+ in debug logging when the ``gpu`` VO is initialized (look for
``Texture formats:``). Usually, this follows OpenGL naming conventions.
For example, ``rgb16`` provides 3 channels with normalized 16 bit
components. One oddity are float formats: for example, ``rgba16f`` has
@@ -4413,8 +4537,8 @@ The following video options are currently all specific to ``--vo=opengl`` and
vec2 tex_offset
Texture offset introduced by user shaders or options like panscan, video-align-x/y, video-pan-x/y.
- Internally, vo_opengl may generate any number of the following textures.
- Whenever a texture is rendered and saved by vo_opengl, all of the passes
+ Internally, vo_gpu may generate any number of the following textures.
+ Whenever a texture is rendered and saved by vo_gpu, all of the passes
that have hooked into it will run, in the order they were added by the
user. This is a list of the legal hook points:
@@ -4460,8 +4584,8 @@ The following video options are currently all specific to ``--vo=opengl`` and
pass. When overwriting a texture marked ``fixed``, the WIDTH, HEIGHT and
OFFSET must be left at their default values.
-``--opengl-shader=<file>``
- CLI/config file only alias for ``--opengl-shaders-append``.
+``--glsl-shader=<file>``
+ CLI/config file only alias for ``--glsl-shaders-append``.
``--deband``
Enable the debanding algorithm. This greatly reduces the amount of visible
@@ -4514,9 +4638,9 @@ The following video options are currently all specific to ``--vo=opengl`` and
``--scale-blur`` option.
``--opengl-glfinish``
- Call ``glFinish()`` before and after swapping buffers (default: disabled).
- Slower, but might improve results when doing framedropping. Can completely
- ruin performance. The details depend entirely on the OpenGL driver.
+ Call ``glFinish()`` before swapping buffers (default: disabled). Slower,
+ but might improve results when doing framedropping. Can completely ruin
+ performance. The details depend entirely on the OpenGL driver.
``--opengl-waitvsync``
Call ``glXWaitVideoSyncSGI`` after each buffer swap (default: disabled).
@@ -4525,15 +4649,6 @@ The following video options are currently all specific to ``--vo=opengl`` and
X11/GLX only.
-``--opengl-vsync-fences=<N>``
- Synchronize the CPU to the Nth past frame using the ``GL_ARB_sync``
- extension. A value of 0 disables this behavior (default). A value of 1
- means it will synchronize to the current frame after rendering it. Like
- ``--glfinish`` and ``--waitvsync``, this can lower or ruin performance. Its
- advantage is that it can span multiple frames, and effectively limit the
- number of frames the GPU queues ahead (which also has an influence on
- vsync).
-
``--opengl-dwmflush=<no|windowed|yes|auto>``
Calls ``DwmFlush`` after swapping buffers on Windows (default: auto). It
also sets ``SwapInterval(0)`` to ignore the OpenGL timing. Values are: no
@@ -4554,7 +4669,7 @@ The following video options are currently all specific to ``--vo=opengl`` and
used to select a lower feature level, which is mainly useful for debugging.
Note that OpenGL ES 3.0 is only supported at feature level 10_1 or higher.
Most extended OpenGL features will not work at lower feature levels
- (similar to ``--opengl-dumb-mode``).
+ (similar to ``--gpu-dumb-mode``).
Windows with ANGLE only.
@@ -4594,14 +4709,6 @@ The following video options are currently all specific to ``--vo=opengl`` and
Windows with ANGLE only.
-``--angle-max-frame-latency=<1-16>``
- Sets the maximum number of frames that the system is allowed to queue for
- rendering with the ANGLE backend (default: 3). Lower values should make
- VSync timing more accurate, but a value of ``1`` requires powerful
- hardware, since the CPU will not be able to "render ahead" of the GPU.
-
- Windows with ANGLE only.
-
``--angle-renderer=<d3d9|d3d11|auto>``
Forces a specific renderer when using the ANGLE backend (default: auto). In
auto mode this will pick D3D11 for systems that support Direct3D 11 feature
@@ -4610,18 +4717,7 @@ The following video options are currently all specific to ``--vo=opengl`` and
renderer, though ``--angle-renderer=d3d9`` may give slightly better
performance on old hardware. Note that the D3D9 renderer only supports
OpenGL ES 2.0, so most extended OpenGL features will not work if this
- renderer is selected (similar to ``--opengl-dumb-mode``).
-
- Windows with ANGLE only.
-
-``--angle-swapchain-length=<2-16>``
- Sets the number of buffers in the D3D11 presentation queue when using the
- ANGLE backend (default: 6). At least 2 are required, since one is the back
- buffer that mpv renders to and the other is the front buffer that is
- presented by the DWM. Additional buffers can improve performance, because
- for example, mpv will not have to wait on the DWM to release the front
- buffer before rendering a new frame to it. For this reason, Microsoft
- recommends at least 4.
+ renderer is selected (similar to ``--gpu-dumb-mode``).
Windows with ANGLE only.
@@ -4631,13 +4727,21 @@ The following video options are currently all specific to ``--vo=opengl`` and
OS X only.
-``--opengl-sw``
+``--swapchain-depth=<N>``
+ Allow up to N in-flight frames. This essentially controls the frame
+ latency. Increasing the swapchain depth can improve pipelining and prevent
+ missed vsyncs, but increases visible latency. This option only mandates an
+ upper limit, the implementation can use a lower latency than requested
+ internally. A setting of 1 means that the VO will wait for every frame to
+ become visible before starting to render the next frame. (Default: 3)
+
+``--gpu-sw``
Continue even if a software renderer is detected.
-``--opengl-backend=<sys>``
- 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).
+``--gpu-context=<sys>``
+ The value ``auto`` (the default) selects the GPU context. You can also pass
+ ``help`` to get a complete list of compiled in backends (sorted by
+ autoprobe order).
auto
auto-select (default)
@@ -4645,6 +4749,8 @@ The following video options are currently all specific to ``--vo=opengl`` and
Cocoa/OS X
win
Win32/WGL
+ winvk
+ VK_KHR_win32_surface
angle
Direct3D11 through the OpenGL ES translation layer ANGLE. This supports
almost everything the ``win`` backend does (if the ANGLE build is new
@@ -4653,17 +4759,25 @@ The following video options are currently all specific to ``--vo=opengl`` and
Win32, using WGL for rendering and Direct3D 9Ex for presentation. Works
on Nvidia and AMD. Newer Intel chips with the latest drivers may also
work.
+ d3d11
+ Win32, with native Direct3D 11 rendering.
x11
X11/GLX
+ x11vk
+ VK_KHR_xlib_surface
x11probe
For internal autoprobing, equivalent to ``x11`` otherwise. Don't use
directly, it could be removed without warning as autoprobing is changed.
wayland
Wayland/EGL
+ waylandvk
+ VK_KHR_wayland_surface
drm
- DRM/EGL (``drm-egl`` is a deprecated alias)
+ DRM/EGL
x11egl
X11/EGL
+ android
+ Android/EGL. Requires ``--wid`` be set to an ``android.view.Surface``.
mali-fbdev
Direct fbdev/EGL support on some ARM/MALI devices.
vdpauglx
@@ -4672,50 +4786,67 @@ The following video options are currently all specific to ``--vo=opengl`` and
performance problems), and is for doing experiments only. Will not
be used automatically.
+``--gpu-api=<type>``
+ Controls which type of graphics APIs will be accepted:
+
+ auto
+ Use any available API (default)
+ opengl
+ Allow only OpenGL (requires OpenGL 2.1+ or GLES 2.0+)
+ vulkan
+ Allow only Vulkan (requires a valid/working ``--spirv-compiler``)
+ d3d11
+ Allow only ``--gpu-context=d3d11``
+
``--opengl-es=<mode>``
- Select whether to use GLES:
+ Controls which type of OpenGL context will be accepted:
+ auto
+ Allow all types of OpenGL (default)
yes
- Try to prefer ES over Desktop GL
- force2
- Try to request a ES 2.0 context (the driver might ignore this)
+ Only allow GLES
no
- Try to prefer desktop GL over ES
- auto
- Use the default for each backend (default)
+ Only allow desktop/core GL
-``--opengl-fbo-format=<fmt>``
+``--opengl-restrict=<version>``
+ Restricts all OpenGL versions above a certain version. Versions are encoded
+ in hundreds, i.e. OpenGL 4.5 -> 450. As an example, --opengl-restrict=300
+ would restrict OpenGL 3.0 and higher, effectively only allowing 2.x
+ contexts. Note that this only imposes a limit on context creation APIs, the
+ actual OpenGL context may still have a higher OpenGL version. (Default: 0)
+
+``--fbo-format=<fmt>``
Selects the internal format of textures used for FBOs. The format can
influence performance and quality of the video output. ``fmt`` can be one
of: rgb8, rgb10, rgb10_a2, rgb16, rgb16f, rgb32f, rgba12, rgba16, rgba16f,
- rgba32f. Default: ``auto``, which maps to rgba16 on desktop GL, and rgba16f
- or rgb10_a2 on GLES (e.g. ANGLE), unless GL_EXT_texture_norm16 is
- available.
+ rgba16hf, rgba32f. Default: ``auto``, which maps to rgba16 on desktop GL,
+ and rgba16f or rgb10_a2 on GLES (e.g. ANGLE), unless GL_EXT_texture_norm16
+ is available.
-``--opengl-gamma=<0.1..2.0>``
- Set a gamma value (default: 1.0). If gamma is adjusted in other ways (like
- with the ``--gamma`` option or key bindings and the ``gamma`` property),
- the value is multiplied with the other gamma value.
+``--gamma-factor=<0.1..2.0>``
+ Set an additional raw gamma factor (default: 1.0). If gamma is adjusted in
+ other ways (like with the ``--gamma`` option or key bindings and the
+ ``gamma`` property), the value is multiplied with the other gamma value.
Recommended values based on the environmental brightness:
1.0
- Brightly illuminated (default)
- 0.9
- Slightly dim
- 0.8
- Pitch black room
+ Pitch black or dimly lit room (default)
+ 1.1
+ Moderately lit room, home
+ 1.2
+ Brightly illuminated room, office
- NOTE: Typical movie content (Blu-ray etc.) already contains a gamma drop of
- about 0.8, so specifying it here as well will result in even darker
- image than intended!
+ NOTE: This is based around the assumptions of typical movie content, which
+ contains an implicit end-to-end of about 0.8 from scene to display. For
+ bright environments it can be useful to cancel that out.
``--gamma-auto``
Automatically corrects the gamma value depending on ambient lighting
- conditions (adding a gamma boost for dark rooms).
+ conditions (adding a gamma boost for bright rooms).
- With ambient illuminance of 64lux, mpv will pick the 1.0 gamma value (no
- boost), and slightly increase the boost up until 0.8 for 16lux.
+ With ambient illuminance of 16 lux, mpv will pick the 1.0 gamma value (no
+ boost), and slightly increase the boost up until 1.2 for 256 lux.
NOTE: Only implemented on OS X.
@@ -4856,14 +4987,15 @@ The following video options are currently all specific to ``--vo=opengl`` and
some drivers, so enable at your own risk.
``--tone-mapping-desaturate=<value>``
- Apply desaturation for highlights that exceed this level of brightness. The
- higher the parameter, the more color information will be preserved. This
- setting helps prevent unnaturally blown-out colors for super-highlights, by
- (smoothly) turning into white instead. This makes images feel more natural,
- at the cost of reducing information about out-of-range colors.
+ Apply desaturation for highlights. The parameter essentially controls the
+ steepness of the desaturation curve. The higher the parameter, the more
+ aggressively colors will be desaturated. This setting helps prevent
+ unnaturally blown-out colors for super-highlights, by (smoothly) turning
+ into white instead. This makes images feel more natural, at the cost of
+ reducing information about out-of-range colors.
- The default of 2.0 is somewhat conservative and will mostly just apply to
- skies or directly sunlit surfaces. A setting of 0.0 disables this option.
+ The default of 1.0 provides a good balance that roughly matches the look
+ and feel of the ACES ODT curves. A setting of 0.0 disables this option.
``--gamut-warning``
If enabled, mpv will mark all clipped/out-of-gamut pixels that exceed a
@@ -4871,8 +5003,8 @@ The following video options are currently all specific to ``--vo=opengl`` and
inverted to make them stand out. Note: This option applies after the
effects of all of mpv's color space transformation / tone mapping options,
so it's a good idea to combine this with ``--tone-mapping=clip`` and use
- ``--target-gamut`` to set the gamut to simulate. For example,
- ``--target-gamut=bt.709`` would make mpv highlight all pixels that exceed the
+ ``--target-prim`` to set the gamut to simulate. For example,
+ ``--target-prim=bt.709`` would make mpv highlight all pixels that exceed the
gamut of a standard gamut (sRGB) display. This option also does not work
well with ICC profiles, since the 3DLUTs are always generated against the
source color space and have chromatically-accurate clipping built in.
@@ -4932,7 +5064,7 @@ The following video options are currently all specific to ``--vo=opengl`` and
Blend subtitles directly onto upscaled video frames, before interpolation
and/or color management (default: no). Enabling this causes subtitles to be
affected by ``--icc-profile``, ``--target-prim``, ``--target-trc``,
- ``--interpolation``, ``--opengl-gamma`` and ``--post-shader``. It also
+ ``--interpolation``, ``--gamma-factor`` and ``--glsl-shaders``. It also
increases subtitle performance when using ``--interpolation``.
The downside of enabling this is that it restricts subtitles to the visible
@@ -4962,7 +5094,7 @@ The following video options are currently all specific to ``--vo=opengl`` and
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
- if you set the ``--opengl-fbo-format`` option to a non-default value, a
+ if you set the ``--fbo-format`` option to a non-default value, a
format with alpha must be specified, or this won't work.
This does not work on X11 with EGL and Mesa (freedesktop bug 67676).
no
@@ -4977,7 +5109,7 @@ The following video options are currently all specific to ``--vo=opengl`` and
Color used to draw parts of the mpv window not covered by video. See
``--osd-color`` option how colors are defined.
-``--opengl-tex-pad-x``, ``--opengl-tex-pad-y``
+``--gpu-tex-pad-x``, ``--gpu-tex-pad-y``
Enlarge the video source textures by this many pixels. For debugging only
(normally textures are sized exactly, but due to hardware decoding interop
we may have to deal with additional padding, which can be tested with these
@@ -4991,8 +5123,8 @@ The following video options are currently all specific to ``--vo=opengl`` and
flipping GL front and backbuffers immediately (i.e. it doesn't call it
in display-sync mode).
-``--opengl-dumb-mode=<yes|no|auto>``
- This mode is extremely restricted, and will disable most extended OpenGL
+``--gpu-dumb-mode=<yes|no|auto>``
+ This mode is extremely restricted, and will disable most extended
features. That includes high quality scalers and custom shaders!
It is intended for hardware that does not support FBOs (including GLES,
@@ -5005,18 +5137,16 @@ The following video options are currently all specific to ``--vo=opengl`` and
This option might be silently removed in the future.
-``--opengl-shader-cache-dir=<dirname>``
- Store and load compiled GL shaders in this directory. Normally, shader
- compilation is very fast, so this is usually not needed. But some GL
- implementations (notably ANGLE, the default on Windows) have relatively
- slow shader compilation, and can cause startup delays.
+``--gpu-shader-cache-dir=<dirname>``
+ Store and load compiled GLSL shaders in this directory. Normally, shader
+ compilation is very fast, so this is usually not needed. It mostly matters
+ for GPU APIs that require internally recompiling shaders to other languages,
+ for example anything based on ANGLE or Vulkan. Enabling this can improve
+ startup performance on these platforms.
NOTE: This is not cleaned automatically, so old, unused cache files may
stick around indefinitely.
- This option might be silently removed in the future, if ANGLE fixes shader
- compilation speed.
-
``--cuda-decode-device=<auto|0..>``
Choose the GPU device used for decoding when using the ``cuda`` hwdec.
@@ -5073,7 +5203,10 @@ Miscellaneous
Media files must use constant framerate. Section-wise VFR might work as well
with some container formats (but not e.g. mkv). If the sync code detects
severe A/V desync, or the framerate cannot be detected, the player
- automatically reverts to ``audio`` mode for some time or permanently.
+ automatically reverts to ``audio`` mode for some time or permanently. These
+ modes also require a vsync blocked presentation mode. For OpenGL, this
+ translates to ``--opengl-swapinterval=1``. For Vulkan, it translates to
+ ``--vulkan-swap-mode=fifo`` (or ``fifo-relaxed``).
The modes with ``desync`` in their names do not attempt to keep audio/video
in sync. They will slowly (or quickly) desync, until e.g. the next seek
@@ -5259,9 +5392,6 @@ Miscellaneous
.. admonition:: Examples
- - ``--lavfi-complex='[aid1] asplit [ao] [t] ; [t] aphasemeter [vo]'``
- Play audio track 1, and visualize it as video using the ``aphasemeter``
- filter.
- ``--lavfi-complex='[aid1] [aid2] amix [ao]'``
Play audio track 1 and 2 at the same time.
- ``--lavfi-complex='[vid1] [vid2] vstack [vo]'``
@@ -5269,13 +5399,11 @@ Miscellaneous
both tracks need to have the same width, or filter initialization
will fail (you can add ``scale`` filters before the ``vstack`` filter
to fix the size).
- - ``--lavfi-complex='[aid1] asplit [ao] [t] ; [t] aphasemeter [t2] ; [vid1] [t2] overlay [vo]'``
- Play audio track 1, and overlay its visualization over video track 1.
- ``--lavfi-complex='[aid1] asplit [t1] [ao] ; [t1] showvolume [t2] ; [vid1] [t2] overlay [vo]'``
Play audio track 1, and overlay the measured volume for each speaker
over video track 1.
- ``null:// --lavfi-complex='life [vo]'``
- Conways' Life Game.
+ A libavfilter source-only filter (Conways' Life Game).
See the FFmpeg libavfilter documentation for details on the available
filters.