diff options
Diffstat (limited to 'DOCS/man/vo.rst')
-rw-r--r-- | DOCS/man/vo.rst | 849 |
1 files changed, 12 insertions, 837 deletions
diff --git a/DOCS/man/vo.rst b/DOCS/man/vo.rst index 2c7b995843..afbcbaec6a 100644 --- a/DOCS/man/vo.rst +++ b/DOCS/man/vo.rst @@ -20,7 +20,7 @@ normal driver parameters. See ``--vo=help`` for a list of compiled-in video output drivers. - The recommended output driver is ``--vo=opengl-hq``. All other drivers are + The recommended output driver is ``--vo=opengl``. All other drivers are for compatibility or special purposes. By default, ``--vo=opengl`` is used, but if that appears not to work, it fallback to other drivers (in the same order as listed by ``--vo=help``). @@ -276,9 +276,12 @@ Available video output drivers are: 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. + See `OpenGL renderer options`_ for options specific to this VO. + + By default, it tries to use fast and fail-safe settings. Use the + ``opengl-hq`` profile to use this driver with defaults set to high + quality rendering. (This profile is also the replacement for + ``--vo=opengl-hq``.) Requires at least OpenGL 2.1. @@ -293,838 +296,12 @@ Available video output drivers are: the hardware decoder APIs. ``opengl`` makes use of FBOs by default. Sometimes you can achieve better - quality or performance by changing the ``fbo-format`` suboption to + quality or performance by changing the ``--opengl-fbo-format`` option to ``rgb16f``, ``rgb32f`` or ``rgb``. Known problems include Mesa/Intel not accepting ``rgb16``, Mesa sometimes not being compiled with float texture support, and some OS X setups being very slow with ``rgb16`` but fast - with ``rgb32f``. If you have problems, you can also try passing the - ``dumb-mode=yes`` sub-option. - - ``dumb-mode=<yes|no>`` - This mode is extremely restricted, and will disable most extended - OpenGL features. This includes high quality scalers and custom - shaders! - - It is intended for hardware that does not support FBOs (including GLES, - which supports it insufficiently), or to get some more performance out - of bad or old hardware. - - This mode is forced automatically if needed, and this option is mostly - useful for debugging. It's also enabled automatically if nothing uses - features which require FBOs. - - This option might be silently removed in the future. - - ``scale=<filter>`` - - ``bilinear`` - Bilinear hardware texture filtering (fastest, very low quality). - This is the default for compatibility reasons. - - ``spline36`` - Mid quality and speed. This is the default when using ``opengl-hq``. - - ``lanczos`` - Lanczos scaling. Provides mid quality and speed. Generally worse - than ``spline36``, but it results in a slightly sharper image - which is good for some content types. The number of taps can be - controlled with ``scale-radius``, but is best left unchanged. - - This filter corresponds to the old ``lanczos3`` alias if the default - radius is used, while ``lanczos2`` corresponds to a radius of 2. - - (This filter is an alias for ``sinc``-windowed ``sinc``) - - ``ewa_lanczos`` - Elliptic weighted average Lanczos scaling. Also known as Jinc. - Relatively slow, but very good quality. The radius can be - controlled with ``scale-radius``. Increasing the radius makes the - filter sharper but adds more ringing. - - (This filter is an alias for ``jinc``-windowed ``jinc``) - - ``ewa_lanczossharp`` - A slightly sharpened version of ewa_lanczos, preconfigured to use - an ideal radius and parameter. If your hardware can run it, this is - probably what you should use by default. - - ``mitchell`` - Mitchell-Netravali. The ``B`` and ``C`` parameters can be set with - ``scale-param1`` and ``scale-param2``. This filter is very good at - downscaling (see ``dscale``). - - ``oversample`` - A version of nearest neighbour that (naively) oversamples pixels, - so that pixels overlapping edges get linearly interpolated instead - of rounded. This essentially removes the small imperfections and - judder artifacts caused by nearest-neighbour interpolation, in - exchange for adding some blur. This filter is good at temporal - interpolation, and also known as "smoothmotion" (see ``tscale``). - - ``linear`` - A ``tscale`` filter. - - ``custom`` - A user-defined custom shader (see ``scale-shader``). - - There are some more filters, but most are not as useful. For a complete - list, pass ``help`` as value, e.g.:: - - mpv --vo=opengl:scale=help - - ``scale-param1=<value>``, ``scale-param2=<value>`` - Set filter parameters. Ignored if the filter is not tunable. - Currently, this affects the following filter parameters: - - bcspline - Spline parameters (``B`` and ``C``). Defaults to 0.5 for both. - - gaussian - Scale parameter (``t``). Increasing this makes the result blurrier. - Defaults to 1. - - oversample - Minimum distance to an edge before interpolation is used. Setting - this to 0 will always interpolate edges, whereas setting it to 0.5 - will never interpolate, thus behaving as if the regular nearest - neighbour algorithm was used. Defaults to 0.0. - - ``scale-blur=<value>`` - Kernel scaling factor (also known as a blur factor). Decreasing this - makes the result sharper, increasing it makes it blurrier (default 0). - If set to 0, the kernel's preferred blur factor is used. Note that - setting this too low (eg. 0.5) leads to bad results. It's generally - recommended to stick to values between 0.8 and 1.2. - - ``scale-radius=<value>`` - Set radius for filters listed below, must be a float number between 0.5 - and 16.0. Defaults to the filter's preferred radius if not specified. - - ``sinc`` and derivatives, ``jinc`` and derivatives, ``gaussian``, ``box`` and ``triangle`` - - Note that depending on filter implementation details and video scaling - ratio, the radius that actually being used might be different - (most likely being increased a bit). - - ``scale-antiring=<value>`` - Set the antiringing strength. This tries to eliminate ringing, but can - introduce other artifacts in the process. Must be a float number - between 0.0 and 1.0. The default value of 0.0 disables antiringing - entirely. - - Note that this doesn't affect the special filters ``bilinear`` and - ``bicubic_fast``. - - ``scale-window=<window>`` - (Advanced users only) Choose a custom windowing function for the kernel. - Defaults to the filter's preferred window if unset. Use - ``scale-window=help`` to get a list of supported windowing functions. - - ``scale-wparam=<window>`` - (Advanced users only) Configure the parameter for the window function - given by ``scale-window``. Ignored if the window is not tunable. - Currently, this affects the following window parameters: - - kaiser - Window parameter (alpha). Defaults to 6.33. - blackman - Window parameter (alpha). Defaults to 0.16. - gaussian - Scale parameter (t). Increasing this makes the window wider. - Defaults to 1. - - ``scaler-lut-size=<4..10>`` - Set the size of the lookup texture for scaler kernels (default: 6). - The actual size of the texture is ``2^N`` for an option value of ``N``. - So the lookup texture with the default setting uses 64 samples. - - All weights are bilinearly interpolated from those samples, so - increasing the size of lookup table might improve the accuracy of - scaler. - - ``scaler-resizes-only`` - Disable the scaler if the video image is not resized. In that case, - ``bilinear`` is used instead whatever is set with ``scale``. Bilinear - will reproduce the source image perfectly if no scaling is performed. - Enabled by default. Note that this option never affects ``cscale``. - - ``pbo`` - Enable use of PBOs. On some drivers this can be faster, especially if - the source video size is huge (e.g. so called "4K" video). On other - drivers it might be slower or cause latency issues. - - In theory, this can sometimes lead to sporadic and temporary image - corruption (because reupload is not retried when it fails). - - ``dither-depth=<N|no|auto>`` - 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 cannot be - detected. Often, LCD panels will do dithering on their own, which - conflicts with ``opengl``'s dithering and leads to ugly output. - - ``dither-size-fruit=<2-8>`` - 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. - - ``dither=<fruit|ordered|no>`` - Select dithering algorithm (default: fruit). (Normally, the - ``dither-depth`` option controls whether dithering is enabled.) - - ``temporal-dither`` - Enable temporal dithering. (Only active if dithering is enabled in - general.) This changes between 8 different dithering patterns 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. - - ``temporal-dither-period=<1-128>`` - Determines how often the dithering pattern is updated when - ``temporal-dither`` is in use. 1 (the default) will update on every - video frame, 2 on every other frame, etc. - - ``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). - - ``interpolation`` - Reduce stuttering caused by mismatches in the video fps and display - refresh rate (also known as judder). - - .. warning:: This requires setting the ``--video-sync`` option to one - of the ``display-`` modes, or it will be silently disabled. - This was not required before mpv 0.14.0. - - This essentially attempts to interpolate the missing frames by - convoluting 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 ``swapinterval`` for more - information. - - ``swapinterval=<n>`` - Interval in displayed frames between two buffer swaps. - 1 is equivalent to enable VSYNC, 0 to disable VSYNC. Defaults to 1 if - not specified. - - Note that this depends on proper OpenGL vsync support. On some platforms - and drivers, this only works reliably when in fullscreen mode. It may - also require driver-specific hacks if using multiple monitors, to - ensure mpv syncs to the right one. Compositing window managers can - also lead to bad results, as can missing or incorrect display FPS - information (see ``--display-fps``). - - ``dscale=<filter>`` - Like ``scale``, but apply these filters on downscaling instead. If this - option is unset, the filter implied by ``scale`` will be applied. - - ``cscale=<filter>`` - As ``scale``, but for interpolating chroma information. If the image - is not subsampled, this option is ignored entirely. - - ``tscale=<filter>`` - The filter used for interpolating the temporal axis (frames). This is - only used if ``interpolation`` is enabled. The only valid choices - for ``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. - - ``tscale-clamp`` - Clamp the ``tscale`` filter kernel's value range to [0-1]. This reduces - excessive ringing artifacts in the temporal domain (which typically - manifest themselves as short flashes or fringes of black, mostly - around moving edges) in exchange for potentially adding more blur. - - ``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``, - where ``vfps`` is the speed-adjusted display FPS, and ``disphz`` the - display refresh rate. - - The default is intended to almost always enable interpolation if the - playback rate is even slightly different from the display refresh rate. - But note that if you use e.g. ``--video-sync=display-vdrop``, small - deviations in the rate can disable interpolation and introduce a - discontinuity every other minute. - - Set this to ``-1`` to disable this logic. - - ``dscale-radius``, ``cscale-radius``, ``tscale-radius``, etc. - Set filter parameters for ``dscale``, ``cscale`` and ``tscale``, - respectively. - - See the corresponding options for ``scale``. - - ``linear-scaling`` - Scale in linear light. It should only be used with a ``fbo-format`` - that has at least 16 bit precision. - - ``correct-downscaling`` - When using convolution based filters, extend the filter size - when downscaling. Increases quality, but reduces performance while - downscaling. - - This will perform slightly sub-optimally for anamorphic video (but still - better than without it) since it will extend the size to match only the - milder of the scale factors between the axes. - - ``user-shaders=<files>`` - 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. - - .. admonition:: Warning - - The syntax is not stable yet and may change any time. - - The general syntax of a user shader looks like this:: - - //!METADATA ARGS... - //!METADATA ARGS... - - vec4 hook() { - ... - return something; - } - - //!METADATA ARGS... - //!METADATA ARGS... - - ... - - Each block of metadata, along with the non-metadata lines after it, - defines a single pass. Each pass can set the following metadata: - - HOOK <name> (required) - The texture which to hook into. May occur multiple times within a - metadata block, up to a predetermined limit. See below for a list - of hookable textures. - - BIND <name> - Loads a texture and makes it available to the pass, and sets up - macros to enable accessing it. See below for a list of set macros. - By default, no textures are bound. The special name HOOKED can be - used to refer to the texture that triggered this pass. - - SAVE <name> - Gives the name of the texture to save the result of this pass - into. By default, this is set to the special name HOOKED which has - the effect of overwriting the hooked texture. - - WIDTH <szexpr>, HEIGHT <szexpr> - Specifies the size of the resulting texture for this pass. - ``szexpr`` refers to an expression in RPN (reverse polish - notation), using the operators + - * / > < !, floating point - literals, and references to sizes of existing texture and OUTPUT - (such as MAIN.width or CHROMA.height). By default, these are set to - HOOKED.w and HOOKED.h, respectively. - - WHEN <szexpr> - Specifies a condition that needs to be true (non-zero) for the - shader stage to be evaluated. If it fails, it will silently be - omitted. (Note that a shader stage like this which has a dependency - on an optional hook point can still cause that hook point to be - saved, which has some minor overhead) - - OFFSET ox oy - Indicates a pixel shift (offset) introduced by this pass. These - pixel offsets will be accumulated and corrected during the - next scaling pass (``cscale`` or ``scale``). The default values - are 0 0 which correspond to no shift. Note that offsets are ignored - when not overwriting the hooked texture. - - COMPONENTS n - Specifies how many components of this pass's output are relevant - and should be stored in the texture, up to 4 (rgba). By default, - this value is equal to the number of components in HOOKED. - - Each bound texture (via ``BIND``) will make available the following - definitions to that shader pass, where NAME is the name of the bound - texture: - - vec4 NAME_tex(vec2 pos) - The sampling function to use to access the texture at a certain - spot (in texture coordinate space, range [0,1]). This takes care - of any necessary normalization conversions. - vec4 NAME_texOff(vec2 offset) - Sample the texture at a certain offset in pixels. This works like - NAME_tex but additionally takes care of necessary rotations, so - that sampling at e.g. vec2(-1,0) is always one pixel to the left. - vec2 NAME_pos - The local texture coordinate of that texture, range [0,1]. - vec2 NAME_size - The (rotated) size in pixels of the texture. - mat2 NAME_rot - The rotation matrix associated with this texture. (Rotates - pixel space to texture coordinates) - vec2 NAME_pt - The (unrotated) size of a single pixel, range [0,1]. - sampler NAME_raw - The raw bound texture itself. The use of this should be - avoided unless absolutely necessary. - - In addition to these parameters, the following uniforms are also - globally available: - - float random - A random number in the range [0-1], different per frame. - int frame - A simple count of frames rendered, increases by one per frame and - never resets (regardless of seeks). - vec2 image_size - The size in pixels of the input image. - vec2 target_size - The size in pixels of the visible part of the scaled (and possibly - cropped) image. - - 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 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: - - RGB, LUMA, CHROMA, ALPHA, XYZ (resizable) - Source planes (raw). Which of these fire depends on the image - format of the source. - - CHROMA_SCALED, ALPHA_SCALED (fixed) - Source planes (upscaled). These only fire on subsampled content. - - NATIVE (resizable) - The combined image, in the source colorspace, before conversion - to RGB. - - MAINPRESUB (resizable) - The image, after conversion to RGB, but before - ``blend-subtitles=video`` is applied. - - MAIN (resizable) - The main image, after conversion to RGB but before upscaling. - - LINEAR (fixed) - Linear light image, before scaling. This only fires when - ``linear-scaling`` is in effect. - - SIGMOID (fixed) - Sigmoidized light, before scaling. This only fires when - ``sigmoid-upscaling`` is in effect. - - PREKERNEL (fixed) - The image immediately before the scaler kernel runs. - - POSTKERNEL (fixed) - The image immediately after the scaler kernel runs. - - SCALED (fixed) - The final upscaled image, before color management. - - OUTPUT (fixed) - The final output image, after color management but before - dithering and drawing to screen. - - Only the textures labelled with ``resizable`` may be transformed by the - pass. When overwriting a texture marked ``fixed``, the WIDTH, HEIGHT - and OFFSET must be left at their default values. - - ``deband`` - Enable the debanding algorithm. This greatly reduces the amount of - visible banding, blocking and other quantization artifacts, at the - expensive of very slightly blurring some of the finest details. In - practice, it's virtually always an improvement - the only reason to - disable it would be for performance. - - ``deband-iterations=<1..16>`` - The number of debanding steps to perform per sample. Each step reduces - a bit more banding, but takes time to compute. Note that the strength - of each step falls off very quickly, so high numbers (>4) are - practically useless. (Default 1) - - ``deband-threshold=<0..4096>`` - The debanding filter's cut-off threshold. Higher numbers increase the - debanding strength dramatically but progressively diminish image - details. (Default 64) - - ``deband-range=<1..64>`` - The debanding filter's initial radius. The radius increases linearly - for each iteration. A higher radius will find more gradients, but - a lower radius will smooth more aggressively. (Default 16) - - If you increase the ``deband-iterations``, you should probably - decrease this to compensate. - - ``deband-grain=<0..4096>`` - Add some extra noise to the image. This significantly helps cover up - remaining quantization artifacts. Higher numbers add more noise. - (Default 48) - - ``sigmoid-upscaling`` - When upscaling, use a sigmoidal color transform to avoid emphasizing - ringing artifacts. This also implies ``linear-scaling``. - - ``sigmoid-center`` - The center of the sigmoid curve used for ``sigmoid-upscaling``, must - be a float between 0.0 and 1.0. Defaults to 0.75 if not specified. - - ``sigmoid-slope`` - The slope of the sigmoid curve used for ``sigmoid-upscaling``, must - be a float between 1.0 and 20.0. Defaults to 6.5 if not specified. - - ``sharpen=<value>`` - If set to a value other than 0, enable an unsharp masking filter. - Positive values will sharpen the image (but add more ringing and - aliasing). Negative values will blur the image. If your GPU is powerful - enough, consider alternatives like the ``ewa_lanczossharp`` scale - filter, or the ``scale-blur`` sub-option. - - (This feature is the replacement for the old ``sharpen3`` and - ``sharpen5`` scalers.) - - ``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. - - ``waitvsync`` - Call ``glXWaitVideoSyncSGI`` after each buffer swap (default: disabled). - This may or may not help with video timing accuracy and frame drop. It's - possible that this makes video output slower, or has no effect at all. - - X11/GLX only. - - ``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). - - ``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 (disabled), windowed (only in windowed mode), yes (also in - full screen). - - The value ``auto`` will try to determine whether the compositor is - active, and calls ``DwmFlush`` only if it seems to be. - - This may help to get more consistent frame intervals, especially with - high-fps clips - which might also reduce dropped frames. Typically, a - value of ``windowed`` should be enough, since full screen may bypass the - DWM. - - Windows only. - - ``dcomposition=<yes|no>`` - Allows DirectComposition when using the ANGLE backend (default: yes). - DirectComposition implies flip-model presentation, which can improve - rendering efficiency on Windows 8+ by avoiding a copy of the video frame. - mpv uses it by default where possible, but it can cause poor behaviour - with some drivers, such as a black screen or graphical corruption when - leaving full-screen mode. Use "no" to disable it. - - Windows with ANGLE only. - - ``sw`` - Continue even if a software renderer is detected. - - ``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). - - auto - auto-select (default) - cocoa - Cocoa/OS X - win - Win32/WGL - angle - Direct3D11 through the OpenGL ES translation layer ANGLE. This - supports almost everything the ``win`` backend does (if the ANGLE - build is new enough). - dxinterop (experimental) - 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. - x11 - X11/GLX - wayland - Wayland/EGL - drm-egl - DRM/EGL - x11egl - X11/EGL - - ``es=<mode>`` - Select whether to use GLES: - - yes - Try to prefer ES over Desktop GL - no - Try to prefer desktop GL over ES - auto - Use the default for each backend (default) - - ``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. - - ``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. - - Recommended values based on the environmental brightness: - - 1.0 - Brightly illuminated (default) - 0.9 - Slightly dim - 0.8 - Pitch black room - - 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 - even darker image than intended! - - ``gamma-auto`` - Automatically corrects the gamma value depending on ambient lighting - conditions (adding a gamma boost for dark 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. - - NOTE: Only implemented on OS X. - - ``target-prim=<value>`` - Specifies the primaries of the display. Video colors will be adapted to - this colorspace when ICC color management is not being used. Valid - values are: - - auto - Disable any adaptation (default) - bt.470m - ITU-R BT.470 M - bt.601-525 - ITU-R BT.601 (525-line SD systems, eg. NTSC), SMPTE 170M/240M - bt.601-625 - ITU-R BT.601 (625-line SD systems, eg. PAL/SECAM), ITU-R BT.470 B/G - bt.709 - ITU-R BT.709 (HD), IEC 61966-2-4 (sRGB), SMPTE RP177 Annex B - bt.2020 - ITU-R BT.2020 (UHD) - apple - Apple RGB - adobe - Adobe RGB (1998) - prophoto - ProPhoto RGB (ROMM) - cie1931 - CIE 1931 RGB (not to be confused with CIE XYZ) - dci-p3 - DCI-P3 (Digital Cinema Colorspace), SMPTE RP431-2 - v-gamut - Panasonic V-Gamut (VARICAM) primaries - - ``target-trc=<value>`` - Specifies the transfer characteristics (gamma) of the display. Video - colors will be adjusted to this curve when ICC color management is - not being used. Valid values are: - - auto - Disable any adaptation (default) - bt.1886 - ITU-R BT.1886 curve (assuming infinite contrast) - srgb - IEC 61966-2-4 (sRGB) - linear - Linear light output - gamma1.8 - Pure power curve (gamma 1.8), also used for Apple RGB - gamma2.2 - Pure power curve (gamma 2.2) - gamma2.8 - Pure power curve (gamma 2.8), also used for BT.470-BG - prophoto - ProPhoto RGB (ROMM) - st2084 - SMPTE ST2084 (HDR) curve, PQ OETF - std-b67 - ARIB STD-B67 (Hybrid Log-gamma) curve, also known as BBC/NHK HDR - v-log - Panasonic V-Log (VARICAM) curve - - NOTE: When using HDR output formats, mpv will encode to the specified - curve but it will not set any HDMI flags or other signalling that - might be required for the target device to correctly display the - HDR signal. The user should independently guarantee this before - using these signal formats for display. - - ``target-brightness=<1..100000>`` - Specifies the display's approximate brightness in cd/m^2. When playing - HDR content on a SDR display (or SDR content on an HDR display), video - colors will be tone mapped to this target brightness using the - algorithm specified by ``hdr-tone-mapping``. The default of 250 cd/m^2 - corresponds to a typical consumer display. - - ``hdr-tone-mapping=<value>`` - Specifies the algorithm used for tone-mapping HDR images onto the - target display. Valid values are: - - clip - Hard-clip any out-of-range values. - reinhard - Reinhard tone mapping algorithm. Very simple continuous curve. - Preserves dynamic range and peak but uses nonlinear contrast. - hable - Similar to ``reinhard`` but preserves dark contrast better - (slightly sigmoidal). Developed by John Hable for use in video - games. (default) - gamma - Fits a logarithmic transfer between the tone curves. - linear - Linearly stretches the entire reference gamut to (a linear multiple - of) the display. - - ``tone-mapping-param=<value>`` - Set tone mapping parameters. Ignored if the tone mapping algorithm is - not tunable. This affects the following tone mapping algorithms: - - reinhard - Specifies the local contrast coefficient at the display peak. - Defaults to 0.5, which means that in-gamut values will be about - half as bright as when clipping. - gamma - Specifies the exponent of the function. Defaults to 1.8. - linear - Specifies the scale factor to use while stretching. Defaults to - 1.0. - - ``icc-profile=<file>`` - Load an ICC profile and use it to transform video RGB to screen output. - Needs LittleCMS 2 support compiled in. This option overrides the - ``target-prim``, ``target-trc`` and ``icc-profile-auto`` options. - - ``icc-profile-auto`` - Automatically select the ICC display profile currently specified by - the display settings of the operating system. - - NOTE: On Windows, the default profile must be an ICC profile. WCS - profiles are not supported. - - ``icc-cache-dir=<dirname>`` - Store and load the 3D LUTs created from the ICC profile in this directory. - This can be used to speed up loading, since LittleCMS 2 can take a while - to create a 3D LUT. Note that these files contain uncompressed LUTs. - Their size depends on the ``3dlut-size``, and can be very big. - - NOTE: This is not cleaned automatically, so old, unused cache files - may stick around indefinitely. - - ``icc-intent=<value>`` - Specifies the ICC intent used for the color transformation (when using - ``icc-profile``). - - 0 - perceptual - 1 - relative colorimetric (default) - 2 - saturation - 3 - absolute colorimetric - - ``3dlut-size=<r>x<g>x<b>`` - Size of the 3D LUT generated from the ICC profile in each dimension. - Default is 64x64x64. Sizes may range from 2 to 512. - - ``icc-contrast=<0-100000>`` - Specifies an upper limit on the target device's contrast ratio. - This is detected automatically from the profile if possible, but for - some profiles it might be missing, causing the contrast to be assumed - as infinite. As a result, video may appear darker than intended. This - only affects BT.1886 content. The default of 0 means no limit. - - ``blend-subtitles=<yes|video|no>`` - 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``, ``gamma`` and ``post-shader``. It - also increases subtitle performance when using ``interpolation``. - - The downside of enabling this is that it restricts subtitles to the - visible portion of the video, so you can't have subtitles exist in the - black margins below a video (for example). - - If ``video`` is selected, the behavior is similar to ``yes``, but subs - are drawn at the video's native resolution, and scaled along with the - video. - - .. warning:: This changes the way subtitle colors are handled. Normally, - subtitle colors are assumed to be in sRGB and color managed - as such. Enabling this makes them treated as being in the - video's color space instead. This is good if you want - things like softsubbed ASS signs to match the video colors, - but may cause SRT subtitles or similar to look slightly off. - - ``alpha=<blend-tiles|blend|yes|no>`` - Decides what to do if the input has an alpha component. - - blend-tiles - Blend the frame against a 16x16 gray/white tiles background (default). - 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 if you set the ``fbo-format`` option to a non-default value, - a format with alpha must be specified, or this won't work. - no - Ignore alpha component. - - ``rectangle-textures`` - Force use of rectangle textures (default: no). Normally this shouldn't - have any advantages over normal textures. Note that hardware decoding - overrides this flag. - - ``background=<color>`` - Color used to draw parts of the mpv window not covered by video. - See ``--osd-color`` option how colors are defined. - -``opengl-hq`` - Same as ``opengl``, but with default settings for high quality rendering. - - This is equivalent to:: - - --vo=opengl:scale=spline36:cscale=spline36:dscale=mitchell:dither-depth=auto:correct-downscaling:sigmoid-upscaling:deband:es=no - - Note that some cheaper LCDs do dithering that gravely interferes with - |