diff options
author | wm4 <wm4@nowhere> | 2014-06-20 23:01:12 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2014-06-20 23:01:12 +0200 |
commit | f5e175647515b5e34c265dadad524e83c695cc93 (patch) | |
tree | 3a8b79e8182dc53a5763d7bb37af0c5b283b8e82 /DOCS/man/vo.rst | |
parent | 199e3b27630ae45cd396b8af4fbb5bcccf0e2456 (diff) | |
download | mpv-f5e175647515b5e34c265dadad524e83c695cc93.tar.bz2 mpv-f5e175647515b5e34c265dadad524e83c695cc93.tar.xz |
DOCS: remove en/ sub-directory
This additional sub-directory doesn't serve any purpose anymore. Get rid
of it.
Diffstat (limited to 'DOCS/man/vo.rst')
-rw-r--r-- | DOCS/man/vo.rst | 872 |
1 files changed, 872 insertions, 0 deletions
diff --git a/DOCS/man/vo.rst b/DOCS/man/vo.rst new file mode 100644 index 0000000000..57fe41f5b7 --- /dev/null +++ b/DOCS/man/vo.rst @@ -0,0 +1,872 @@ +VIDEO OUTPUT DRIVERS +==================== + +Video output drivers are interfaces to different video output facilities. The +syntax is: + +``--vo=<driver1[:suboption1[=value]:...],driver2,...[,]>`` + 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. + +``--vo-defaults=<driver1[:parameter1:parameter2:...],driver2,...>`` + Set defaults for each driver. + +.. note:: + + See ``--vo=help`` for a list of compiled-in video output drivers. + + The recommended output drivers are ``--vo=vdpau`` and ``--vo=opengl-hq``. + All other drivers are just for compatibility or special purposes. + +.. admonition:: Example + + ``--vo=opengl,xv,`` + 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 display. + + .. note:: This driver is for compatibility with old systems. + + ``adaptor=<number>`` + Select a specific XVideo adaptor (check xvinfo results). + ``port=<number>`` + Select a specific XVideo port. + ``ck=<cur|use|set>`` + 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. + + ``ck-method=<man|bg|auto>`` + 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. + + ``colorkey=<number>`` + Changes the colorkey to an RGB value of your choice. ``0x000000`` is + black and ``0xffffff`` is white. + + ``no-colorkey`` + Disables colorkeying. + +``x11`` (X11 only) + Shared memory video output driver without hardware acceleration that works + whenever X11 is present. + + .. note:: 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``. + + .. note:: + + Earlier versions of mpv (and MPlayer, mplayer2) provided sub-options + to tune vdpau postprocessing, like ``deint``, ``sharpen``, ``denoise``, + ``chroma-deint``, ``pullup``, ``hqscaling``. These sub-options are + deprecated, and you should use the ``vdpaupp`` video filter instead. + + ``sharpen=<-1-1>`` + (Deprecated. See note about ``vdpaupp``.) + + For positive values, apply a sharpening algorithm to the video, for + negative values a blurring algorithm (default: 0). + ``denoise=<0-1>`` + (Deprecated. See note about ``vdpaupp``.) + + Apply a noise reduction algorithm to the video (default: 0; no noise + reduction). + ``deint=<-4-4>`` + (Deprecated. See note about ``vdpaupp``.) + + Select deinterlacing mode (default: 0). In older versions (as well as + MPlayer/mplayer2) you could use this option to enable deinterlacing. + This doesn't work anymore, and deinterlacing is enabled with either + the ``D`` key (by default mapped to the command ``cycle deinterlace``), + or the ``--deinterlace`` option. Also, to select the default deint mode, + you should use something like ``--vf-defaults=vdpaupp:deint-mode=temporal`` + instead of this sub-option. + + 0 + Pick the ``vdpaupp`` video filter default, which corresponds to 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. + ``chroma-deint`` + (Deprecated. See note about ``vdpaupp``.) + + 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`` + (Deprecated. See note about ``vdpaupp``.) + + Try to apply inverse telecine, needs motion adaptive temporal + deinterlacing. + ``hqscaling=<0-9>`` + (Deprecated. See note about ``vdpaupp``.) + + 0 + Use default VDPAU scaling (default). + 1-9 + Apply high quality VDPAU scaling (needs capable hardware). + ``fps=<number>`` + 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. + ``composite-detect`` + 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. + ``output_surfaces=<2-15>`` + Allocate this many output surfaces to display video frames (default: + 3). See below for additional information. + ``colorkey=<#RRGGBB|#AARRGGBB>`` + 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). + ``force-yuv`` + 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. + + .. note:: This driver is for compatibility with systems that don't provide + proper OpenGL drivers. + + ``prefer-stretchrect`` + Use ``IDirect3DDevice9::StretchRect`` over other methods if possible. + + ``disable-stretchrect`` + Never render the video using ``IDirect3DDevice9::StretchRect``. + + ``disable-textures`` + 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. + + ``disable-shaders`` + Never use shaders when rendering video. + + ``only-8bit`` + Never render YUV video with more than 8 bits per component. + Using this flag will force software conversion to 8-bit. + + ``disable-texture-align`` + 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 itself. + + + 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. + + ``force-power-of-2`` + Always force textures to power of 2, even if the device reports + non-power-of-2 texture sizes as supported. + + ``texture-memory=N`` + 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 + + ``swap-discard`` + Use ``D3DSWAPEFFECT_DISCARD``, which might be faster. + Might be slower too, as it must(?) clear every frame. + + ``exact-backbuffer`` + Always resize the backbuffer to window size. + +``direct3d`` (Windows only) + Same as ``direct3d_shaders``, but with the options ``disable-textures`` + and ``disable-shaders`` forced. + + .. note:: This driver is for compatibility with old systems. + +``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``). + + .. note:: This driver is for compatibility with old systems. + +``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 APIs. + + ``lscale=<filter>`` + + ``bilinear`` + Bilinear hardware texture filtering (fastest, mid-quality). + This is the default. + + ``lanczos2`` + Lanczos scaling with radius=2. Provides good quality and speed. + + ``lanczos3`` + Lanczos with radius=3. + + ``spline36`` + This is the default when using ``opengl-hq``. + + ``bicubic_fast`` + Bicubic filter. Has a blurring effect on the image, even if no + scaling is done. + + ``sharpen3`` + Unsharp masking (sharpening) with radius=3 and a default strength + of 0.5 (see ``lparam1``). + + ``sharpen5`` + Unsharp masking (sharpening) with radius=5 and a default strength + of 0.5 (see ``lparam1``). + + ``mitchell`` + 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 + + ``lparam1=<value>`` + Set filter parameters. Ignored if the filter is not tunable. These are + unset by default, and use the filter specific default if applicable. + + ``lparam2=<value>`` + See ``lparam1``. + + ``scaler-resizes-only`` + 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. + + ``stereo=<value>`` + Select a method for stereo display. You may have to use + ``--video-aspect`` to fix the aspect value. Experimental, do not expect + too much from it. + + no + Normal 2D display + red-cyan + Convert side by side input to full-color red-cyan stereo. + green-magenta + Convert side by side input to full-color green-magenta stereo. + quadbuffer + Convert side by side input to quadbuffered stereo. Only supported + by very few OpenGL cards. + + ``srgb`` + Convert and color correct the output to sRGB before displaying it on + the screen. This option enables linear light scaling. It also forces + the options ``indirect`` and ``gamma``. + + This option is equivalent to using ``icc-profile`` with an sRGB ICC + profile, but it is implemented without a 3DLUT and does not require + LittleCMS 2. If both ``srgb`` and ``icc-profile`` are present, the + latter takes precedence, as they are somewhat redundant. + + ``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. + + ``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 can not 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). + + ``temporal-dither`` + 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 writing). + + ``swapinterval=<n>`` + Interval in displayed frames between two buffer swaps. + 1 is equivalent to enable VSYNC, 0 to disable VSYNC. + + ``no-scale-sep`` + 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. + + ``cscale=<n>`` + 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. + + ``fancy-downscaling`` + When using convolution based filters, extend the filter size + when downscaling. Trades quality for reduced downscaling performance. + + ``no-npot`` + Force use of power-of-2 texture sizes. For debugging only. + Borders will be distorted due to filtering. + + ``glfinish`` + Call ``glFinish()`` before swapping buffers + + ``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/OSX + win + Win32/WGL + x11 + X11/GLX + wayland + Wayland/EGL + + ``indirect`` + 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 only. + + ``fbo-format=<fmt>`` + 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=<0.0..10.0>`` + Set a gamma value. If gamma is adjusted in other ways (like with + the ``--gamma`` option or keybindings and the ``gamma`` property), the + value is multiplied with the other gamma value. + + Setting this value to 1.0 can be used to always enable gamma control. + (Disables delayed enabling.) + + ``icc-profile=<file>`` + Load an ICC profile and use it to transform linear RGB to screen output. + Needs LittleCMS2 support compiled in. This option overrides the ``srgb`` + property, as using both is somewhat redundant. It also enables linear + light scaling. + + + ``icc-profile-auto`` + Automatically select the ICC display profile currently specified by + the display settings of the operating system. + + NOTE: Only implemented on OS X with Cocoa. + + ``icc-cache=<file>`` + 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. + + ``icc-intent=<value>`` + 0 + perceptual + 1 + relative colorimetric (default) + 2 + saturation + 3 + absolute colorimetric + + ``approx-gamma`` + Approximate the actual BT.709 gamma function as a pure power curve of + 1.95. A number of video editing programs and studios apparently use this + for mastering instead of the true curve. Most notably, anything in the + Apple ecosystem uses this approximation - including all programs + compatible with it. It's a sound idea to try enabling this flag first + when watching movies and shows to see if things look better that way. + + This only affects the output when using either ``icc-profile`` or``srgb``. + + ``3dlut-size=<r>x<g>x<b>`` + 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. + + ``alpha=<blend|yes|no>`` + 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. + + ``chroma-location=<auto|center|left>`` + Set the YUV chroma sample location. auto means use the bitstream + flags (default: auto). + + ``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. + +``opengl-hq`` + Same as ``opengl``, but with default settings for high quality rendering. + + This is equivalent to:: + + --vo=opengl:lscale=spline36:dither-depth=auto:fbo-format=rgb16 + + 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-old`` + 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. + + .. note:: This driver is for compatibility with old systems. + + ``(no-)ati-hack`` + 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 memory. + ``(no-)force-pbo`` + 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. + ``(no-)scaled-osd`` + Scales the OSD and subtitles instead of rendering them at display size + (default: disabled). + ``rectangle=<0,1,2>`` + 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. + + ``swapinterval=<n>`` + 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. + ``yuv=<n>`` + 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. + + ``lscale=<n>`` + 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 cards. + 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``). + + ``cscale=<n>`` + Select the scaling function to use for chrominance scaling. For + details see ``lscale``. + ``filter-strength=<value>`` + Set the effect strength for the ``lscale``/``cscale`` filters that + support it. + ``stereo=<value>`` + Select a method for stereo display. You may have to use + ``--video-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. + + ``customprog=<filename>`` + Load a custom fragment program from ``<filename>``. + ``customtex=<filename>`` + Load a custom "gamma ramp" texture from ``<filename>``. This can be used + in combination with ``yuv=4`` or with the ``customprog`` option. + ``(no-)customtlin`` + If enabled (default) use ``GL_LINEAR`` interpolation, otherwise use + ``GL_NEAREST`` for customtex texture. + ``(no-)customtrect`` + If enabled, use ``texture_rectangle`` for the ``customtex`` texture. + Default is disabled. + ``(no-)mipmapgen`` + 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. + + ``(no-)glfinish`` + Call ``glFinish()`` before swapping buffers. Slower but in some cases + more correct output (default: disabled). + ``(no-)manyfmts`` + Enables support for more (RGB and BGR) color formats (default: enabled). + Needs OpenGL version >= 1.2. + ``slice-height=<0-...>`` + Number of lines copied to texture in one piece (default: 0). 0 for + whole image. + ``sw`` + Continue even if a software renderer is detected. + + ``backend=<sys>`` + auto + auto-select (default) + cocoa + Cocoa/OSX + win + Win32/WGL + x11 + X11/GLX + wayland + Wayland/EGL + +``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``. + + .. note:: This driver is for compatibility with systems that don't provide + proper graphics drivers, or which support GLES only. + + ``sw`` + Continue even if a software renderer is detected. + + ``switch-mode`` + 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 setups. + + .. note:: This driver is for compatibility with crappy systems. You can + use vaapi hardware decoding with ``--vo=opengl`` too. + + ``scaling=<algorithm>`` + default + Driver default (mpv default as well). + fast + Fast, but low quality. + hq + Unspecified driver dependent high-quality scaling, slow. + nla + ``non-linear anamorphic scaling`` + + ``deint-mode=<mode>`` + 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). + first-field + Show only first field (going by ``--field-dominance``). + bob + bob deinterlacing (default for older libva). + + ``scaled-osd=<yes|no>`` + 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. + + .. note:: This driver is a joke. + +``image`` + Output each frame into an image file in the current directory. Each file + takes the frame number padded with leading zeros as name. + + ``format=<format>`` + 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=<0-9>`` + PNG compression factor (speed vs. file size tradeoff) (default: 7) + ``png-filter=<0-5>`` + Filter applied prior to PNG compression (0 = none; 1 = sub; 2 = up; + 3 = average; 4 = Paeth; 5 = mixed) (default: 5) + ``jpeg-quality=<0-100>`` + JPEG quality factor (default: 90) + ``(no-)jpeg-progressive`` + Specify standard or progressive JPEG (default: no). + ``(no-)jpeg-baseline`` + Specify use of JPEG baseline or not (default: yes). + ``jpeg-optimize=<0-100>`` + JPEG optimization factor (default: 100) + ``jpeg-smooth=<0-100>`` + smooth factor (default: 0) + ``jpeg-dpi=<1->`` + JPEG DPI (default: 72) + ``outdir=<dirname>`` + Specify the directory to save the image files to (default: ``./``). + +``wayland`` (Wayland only) + Wayland shared memory video output as fallback for ``opengl``. + + .. note:: This driver is for compatibility with systems that don't provide + working OpenGL drivers. + + ``alpha`` + Use a buffer format that supports videos and images with alpha + information + ``rgb565`` + Use RGB565 as buffer format. This format is implemented on most |