mpv (Português)

Related articles
MPlayer
yt-dlp
mpv
é um reprodutor de mídia baseado no
MPlayer
e o agora defazado
mplayer2
. Ele suporta uma grande variedade de formatos de arquivos de vídeo, codecs de áudio e vídeo, e tipos de legenda. Uma lista detalhada (porém, admite-se, incompleta) das diferenças entre o
mpv
e os outros reprodutores mencionados anteriormente pode ser encontrada
aqui
.
Instalação
Instale
o pacote
mpv
ou
mpv-git
AUR
para a versão de desenvolvimento.
Frontends
Veja
List of applications/Multimedia#mpv-based
.
Configuração
O
mpv
já vem com bons padrões iniciais que devem funcionar bem com computadores com placas de vídeo fracas/antigas. No entanto, se você tem um computador com uma placa de vídeo um pouco mais moderna,
mpv
permite que você faça uma configuração mais minuciosa para atingir uma melhor qualidade de vídeo (limitada apenas pela capacidade da sua placa de vídeo). Para fazer isso, será necessário criar apenas alguns arquivos de configuração (já que, por padrão, eles não existem).
Nota
Arquivos de configuração são lidos
por todo o sistema
(system-wide) em
/etc/mpv/
e
por usuário
(per-user) em
~/.config/mpv/
(a menos que a
environment variable
XDG_CONFIG_HOME
esteja definida}, de modo que configurações
por usuário
sobrescrevem configurações
por todo o sistema
, e todas essas são sobrescritas pelas configurações feitas na linha de comando. A configuração de usuário específico é sugerida já que pode necessitar de tentativa e erro.
Para te ajudar a começar,
mpv
dispões de um modelo de configuração com as opções padrões. Copie-os para utilizá-los como um ponto de partida.
$ cp -r /usr/share/doc/mpv/ ~/.config/
mpv.conf
contem a maior parte das opções do
mpv
,
input.conf
contém atalhos de teclado. Leia os dois para ter uma ideia de como funcionam e quais opções estão disponíveis.
Opções gerais
Adicione as seguintes opções em
~/.config/mpv/mpv.conf
.
Opções de legendas
Ativar a procura aproximada:
sub-auto=fuzzy
Mudar a fonte:
sub-font="fontName"
Ativar o negrito nas legendas para melhorar a leitura:
sub-bold=yes
Configurações para alta qualidade
Por padrão, mpv utiliza opções que tentam equilibrar a qualidade e a performance da reprodução. Há também outras duas opções predefinidas disponíveis:
fast
para performance máxima e
high-quality
para uma renderização com qualidade superior. Você pode aplicar um perfil específico utilizando a opção
--profile--
name
e inspecionar o conteúdo deste perfil utilizando
--show--profile
name
.
profile=high-quality
Estatísticas em tempo real mostrando a performance do
mpv
podem ser ativadas com a tecla
i
. Essa função é muito útil para ter certeza que seu hardware pode acompanhar suas configurações e para comparar diferentes confgurações.
Essas últimas duas opções são um pouco mais complicadas.
video-sync=display-resample
fazem com que o áudio e o vídeo dessincronizem, então invés de perder quadros, o áudio será
ressampleado
(uma pequena mudança no tom do áudio é comumente menos notável do que perdas de quadros). A wiki do mpv tem um artigo detalhado sobre isso intitulado
Sincronização de Monitor
(disponível somente em Inglês).
interpolation
faz com  que movimentos apareçam mais suaves no seu monitor mudando o modo em que os quadros são apresentados, fazendo com que a taxa de quadros da mídia se adeque melhor à taxa de quadros do seu monitor (o que não deve ser confundido com a técnica SVP que realmente converte seu vídeo para 60fps). A wiki do mpv tem um artigo detalhado sobre esse assunto intitulado
Interpolação
(disponível somente em Inglês) porém essa função também é comumente conhecida como
smoothmotion
(em Português
movimento suave
).
profile=high-quality
video-sync=display-resample
interpolation
Nota
Se
NVIDIA Optimus
estiver sendo usado, a linha
video-sync=display-resample
pode fazer com que o vídeo seja acelerado. Isso também completamente quebra a passagem de quadros em alguns sistemas, aparentemente fazendo com que a interpolação não funcione de modo algum.
Além disso ainda há muito o que você pode fazer, mas as coisas ficam mais complicadas, necessitam de placas de vídeo mais potentes, e estão em constante desenvolvimento. Fazendo uma breve exemplificação, é possível carregar
shaders
especiais que produzem técnicas exóticas de dimensionamento e nitidez incluindo algumas que utilizam redes neurais profundas treinadas em imagens (tanto para conteúdos do mundo real ou animações). Para aprender mais sobre  isso, veja o conteúdo disponível na
Wiki do mpv
, em particular a
Sessão de
shaders
de usuário
.
Há também muitas outras opções que você pode achar interessantes. É muito recomendado dar uma olhada em
mpv(1)
. Também é aconselhável rodar o
mpv
pela linha de comando para observar a presença de mensagens de erro sobre a configuração.
Perfís customizados
Em
mpv.conf
é possível criar
perfís
que são essencialmente só "grupos de opções" com as quais você pode:
Rapidamente mudar entre diferentes configurações sem precisar modificar o arquivo de configuração.
Criar perfis específicos para conteúdos específicos.
Agrupar
perfis para que você possa fazer um
perfil
mais sofisticado feito de outros perfis simples.
É fácil criar um perfil. A área no topo de
mpv.conf
é chamada de
nível superior
. No entanto, assim que você definir um perfil ao escrever seu nome entre colchetes, toda opção escrita abaixo dele (até que você defina um novo perfil) será considerada parte daquele perfil. Aqui está um exemplo de
mpv.conf
:
profile=meuperfil2        #Área de nível superior, carregar meuperfil2
ontop=yes                 #Sempre no topo

[meuperfil1]              #Um perfil simples, a área de nível superior termina aqui

profile-desc="um perfil"  #Descrição opcional do seu perfil

fs=yes                    #Começar em tela cheia

[meuperfil2]              #Outro perfil simples

profile=high-quality      #Um perfil padrão que já vem com o mpv

log-file=~~/log           #Define a localização pra a escrita do arquivo de log, ~~/ é o mesmo que ~/.config/mpv
Há apenas duas linhas dentro da área do nível superior e existem dois perfis distintos definidos abaixo dela. Quando o
mpv
inicia, ele observa a primeira linha, carrega as opções em
meuperfil2
(o que significa que ele carrega as opções em
high-quality
e em
log-file=~~/log
) e finalmente ele carrega
ontop=yes
e termina a inicialização. Perceba que
meuperfil1
nunca é carregado já que nunca foi chamado na área de nível superior.
Alternativamente, você pode chamar o
mpv
através da linha de comando com:
$ mpv --profile=meuperfil1 video.mkv
e ele ignoraria todas as opções exceto as do
meuperfil1
Perfis automáticos
Alguns tipos de perfil serão carregados automaticamente baseado na extensão do arquivo ou no protocolo utilizado.
These profiles will be loaded for all files with a matching file extension (for all
.mkv
and
.gif
files respectively):
Esses perfis serão carregados para todos os arquivos com uma extensão compatível (para todos os arquivos
.mpv
e
.gif
respectivamente):
[extension.mkv]
keep-open
volume-max=150

[extension.gif]
osc=no
loop-file
Esse perfil será carregado automaticamente sempre que qualquer corrente de conteúdo http ou https forem reproduzidas (e.g.
mpv https://example.com/video.mp4
[protocol.https]
speed=2
keep-open

[protocol.http]
profile=protocol.https
Execute o comando
mpv --list-protocols
para ver os diferentes protocolos suportados pelo mpv.
Atalhos de teclado
Os atalhos de teclado são fáceis de entender dado os exemplos em
/usr/share/doc/mpv/input.conf
e
mpv(1) § COMMAND INTERFACE
.
Adicione o seguinte exemplo em
~/.config/mpv/input.conf
:
shift+s         screenshot each-frame
Shift+UP        seek  600
Shift+DOWN      seek -600
=               cycle video-unscaled
-               cycle-values window-scale 2 3 1 .5
WHEEL_UP        add volume 5
WHEEL_DOWN      add volume -5
WHEEL_LEFT      ignore
WHEEL_RIGHT     ignore
Alt+RIGHT       add video-rotate 90
Alt+LEFT        add video-rotate -90
Alt+-           add video-zoom -0.25
Alt+=           add video-zoom 0.25
Alt+j           add video-pan-x -0.05
Alt+l           add video-pan-x 0.05
Alt+i           add video-pan-y 0.05
Alt+k           add video-pan-y -0.05
Alt+BS          set video-zoom 0; set video-pan-x 0; set video-pan-y 0
Para tentar reproduzir os atalhos MPC-HC no mpv, veja
[1]
.
Arquivos de configuração adicionais
Além disso existem mais alguns arquivos de configuração e diretórios que podem ser criados, dentre eles:
~/.config/mpv/script-opts/osc.conf
administra o Controle na Tela. Veja
mpv(1) § ON SCREEN CONTROLLER
para mais informações.
~/.config/mpv/scripts/
script-name
.lua
para scripts Lua. Veja um exemplo em
[2]
.
Veja
mpv(1) § FILES
para informações sobre outros arquivos e diretórios.
Scripts
O
mpv
tem uma
grande variedade de scripts
que podem estender a funcionalidade do reprodutor. Para isso, ele tem chamadas internas tanto para Lua quanto para JavaScript.
Scripts são tipicamente instalados ao colocá-los no diretório
~/.config/mpv/scripts/
(você talvez tenha que criá-lo primeiro). Depois disso os scripts serão carregados automaticamente quando o mpv inicia (esse comportamento pode ser alterado com outra opção do
mpv
). Alguns scripts vêm com seus próprios instaladores e instruções de configuração, então faça questão de conferir. Além disso, alguns scripts podem ser antigos, quebrados e não mantidos.
JavaScript
JavaScript (ES5 via
MuJS
) has been supported as an mpv scripting language since 2014. Currently only
a few scripts
are available, but documentation exists at
mpv(1) § JAVASCRIPT
for anyone interested in making their own.
To get started, drop a script with a
.js
extension in the mpv
scripts
directory, e.g.:
~/.config/mpv/scripts/fullscreen-off-on-pause.js
function onPauseChange (prop, enabled) {
    if (enabled) {
        mp.set_property('fullscreen', 'no')
    }
}

mp.observe_property('pause', 'bool', onPauseChange)
For more details, e.g. on using
require
to load CommonJS modules, see
mpv(1) § CommonJS modules and require(id)
.
JavaScript support is available in the
mpv
package, as well as some AUR packages, e.g.
mpv-full
AUR
and
mpv-full-git
AUR
.
Lua
The development of
mpv'
s Lua scripts is documented in
mpv(1) § LUA SCRIPTING
with examples in
TOOLS/lua
, which are installed to
/usr/share/mpv/scripts
.
For example, you can enable the builtin script to automatically crop videos with black bars:
$ ln -s /usr/share/mpv/scripts/autocrop.lua ~/.config/mpv/scripts
mpv-ytdlAutoFormat
mpv-ytdlautoformat
is a Lua script to auto change ytdl-format for Youtube and Twitch or the domains you desire, to 480p or the quality you desire.
mpv-webm
mpv-webm
(or simply
webm
) is a very easy to use Lua script that allows one to create WebM files while watching videos. It includes several features and does not have any extra dependencies (relies entirely on mpv).
ytdl-preload
ytdl-preload
is a Lua script to preload the next ytdl-link in your playlist.
Note
The script is still in active developing process.
C
mpv-mpris
The C plugin
mpv-mpris
allows other applications to integrate with
mpv
via the
MPRIS
protocol. For example, with
mpv-mpris
installed,
kdeconnect
can automatically pause video playback in
mpv
when a phone call arrives. Another example is buttons (play\pause etc) on bluetooth audio-devices.
To use the plugin, install
mpv-mpris
.
Vapoursynth
Vapoursynth is an alternative to AviSynth that can be used on Linux and allows for Video manipulation via python scripts. Vapoursynths python scripts can be used as video filters for
mpv
.
The
mpv
package now enables Vapoursynth support by default.
SVP 4 Linux (SmoothVideoProject)
SmoothVideoProject SVP
is a program that is primarily known for converting video to 60fps. It is free [as in beer] and full featured for 64bit Linux (costs money for Windows and OS X and is incompatible with 32bit Linux).
It has three main features and each one can be disabled/enabled as one chooses (you are not forced to use motion interpolation).
Motion interpolation
(
youtube video
) - An algorithm that converts video to 60fps. This creates the somewhat controversial "soap opera effect" that some people love and others hate. Unfortunately, the algorithm is not perfect and it also introduces more than its share of weird artifacts. The algorithm can be tuned (via a slider) for either performance or quality. It also has some artifact reduction settings that interpolate actual frames with the generated frames reducing the noticeability of the artifacts. The framerate detection can be set to automatic or manual (manual seems to resolve performance issues for some users).
Black bar lighting
(
youtube video
) - If the image has an aspect ratio that produces black bars on your display, SVP will illuminate the black bars with "lights" generated by the content on the screen. It has some amount of customization, but the defaults are pretty close to optimal.
LED ambient lighting control
(
youtube video
) - Has the ability to control LED ambient lighting attached to your television.
Once you have
mpv
compiled with Vapoursynth support, it is fairly easy to get SVP working with
mpv
. Simply install
svp-bin
AUR
, open the SVP program to let it assess your system performance (you may want to close other programs first so that it gets an accurate reading), and finally add the following
mpv
profile to your mpv.conf
[3]
:
mpv.conf
[svp]
input-ipc-server=/tmp/mpvsocket     # Receives input from SVP
hr-seek-framedrop=no                # Fixes audio desync
watch-later-options-remove=vf       # Do not remember SVP's video filters

# Can fix stuttering in some cases, in other cases probably causes it. Try it if you experience stuttering.
#opengl-early-flush=yes
Then, in order to use SVP, you must have the SVP program running in the background before opening the file using
mpv
with that profile. Either do:
$ mpv --profile=svp video.mkv
or set
profile=svp
in the top-level portion of the
mpv
configuration
[
link quebrado
: seção inválida]
.
If you want to use hardware decoding, you must use a copy-back decoder since normal decoders are not compatible with Vapoursynth (choose a
hwdec
option that ends in
-copy
). For instance:
hwdec=auto-copy
hwdec-codecs=all
Either way, hardware decoding is discouraged by
mpv
developers and is not likely to make a significant difference in performance.
Tips and Tricks
Picture
Hardware video acceleration
See
Hardware video acceleration
.
Hardware accelerated video decoding is available via the
--hwdec=
API
option. For a list of all supported APIs and other required options, see
mpv(1) § hwdec
.
To make it permanent (for example when playing videos from a desktop environment), add it to the configuration file:
~/.config/mpv/mpv.conf
hwdec=auto
To allow CPU processing with video filters, choose a
*-copy
API.
Use the keyboard shortcut
Ctrl+h
while a video is running to toggle hardware decoding.
To troubleshoot hardware acceleration, adjusting the logging levels (see
mpv(1) § msg-level
) may be necessary. For instance,
--msg-level=vd=v,vo=v,vo/gpu/vaapi-egl=trace
enables the following:
Verbose
messages from the video decoder (
vd
) and video output (
vo
) modules.
Even more detailed
trace
messages for the module responsible for video decoding. Here, after running mpv once without any log levels adjusted, the module of interest was empirically determined to be
vo/gpu/vaapi-egl
.
Quickly cycle between aspect ratios
You can cycle between aspect ratios using
Shift+a
.
Ignoring aspect ratio
You can ignore the aspect ratio using
--keepaspect=
no
. To make the option permanent, add the line
keepaspect=
no
to the configuration file.
Draw to the root window
Run
mpv
with
--wid=0
.
mpv
will draw to the window with a window ID of 0.
Always show the application window
To show the application window even for audio files when launching mpv from the command line, use the
--force-window
option. To make the option permanent, add the line
force-window=yes
to the configuration file.
Disable video output
To disable video output when launching from command line, use the
--vid=no
option, or its alias,
--no-video
.
Terminal video
--vo=tct
"Color Unicode art video output driver that works on a text console."
--vo=caca
"Color ASCII art video output driver that works on a text console."
libcaca
support has been disabled on Arch due to vulnerabilities (see
FS#70962
) and has not been added back in as its upstream is inactive: install
mpv-full
AUR
.
Audio
Volume is too low
Set
volume-max=
value
in your configuration file to a reasonable amount, such as
volume-max=150
, which then allows you to increase your volume up to 150%, which is more than twice as loud. Increasing your volume too high will result in clipping artefacts. Additionally (or alternatively), you can utilize
dynamic range compression
with
af=acompressor
.
Specify an audio output
Run the following command to get a list of available audio output devices
$ mpv --audio-device=help
Then add one to
~/.config/mpv/mpv.conf
. For example:
audio-device=alsa/hdmi:CARD=NVidia,DEV=1
HD Audio passthrough
To enable HD audio codecs like TrueHD and DTS-MA to passthrough to an AV receiver, add the following to
~/.config/mpv/mpv.conf
audio-spdif=ac3,eac3,dts-hd,truehd
Volume normalization
This article or section needs expansion.
Reason:
Add little more details about the available filters, see
[4]
for a comparison of
loudnorm
and
dynaudnorm
. (Discuss in
Talk:Mpv (Português)
)
Different sources may have different or inconsistent loudness, so
mpv
users may need to configure automatic volume normalization. For example:
~/.config/mpv/input.conf
n cycle_values af loudnorm=I=-30 loudnorm=I=-15 anull
This binds the key
n
to cycle the audio filter settings (
af
) through the specified values:
loudnorm=I=-30
: loudnorm setting with
I=-30
, soft volume, might be suitable for background music
loudnorm=I=-15
: louder volume, might be good for the video currently in view
anull
: reset audio filter to null, i.e., disable the audio filter
Note
Binding a key does not change the default audio filter. To change the default, add e.g.
af=loudnorm=I=-30
to the main configuration file.
Audio filtering in
mpv
is provided by the
FFmpeg
backend. See
Wikipedia:EBU R 128
and
ffmpeg loudnorm filter
for details.
See also upstream issues
[5]
and
[6]
which mention different options.
Improving mpv as a music player with Lua scripts
This blog post
introduces the
music.lua
script, which shows how Lua scripts can be used to improve
mpv
as a music player.
Save position on quit
By default, you can save the position and quit by pressing
Shift+q
. The shortcut can be changed by setting
quit_watch_later
in the key bindings configuration file.
To automatically save the current playback position on quit, start
mpv
with
--save-position-on-quit
, or add
save-position-on-quit
to the configuration file.
Save position of a playlist and pause on next file
A playlist could simply be a list of files, see
mpv(1) § playlist
. To play a playlist and remember its position:
$ mpv --save-position-on-quit --pause --reset-on-next-file=pause --playlist=
/path/to/playlist
With the option
--pause
mpv
will start in paused state and
--reset-on-next-file=pause
will reset the pause mode when switching to the next file.
Play a DVD
mpv does not support DVD menus. To start the main stream with the longest title of a video DVD, use the command:
$ mpv dvd://
An optional title specifier is a number (starting at 0) which selects between separate video streams on the DVD:
$ mpv dvd://[title]
DVDs which have been copied on to a local file system (by e.g. the
dvdbackup
tool) are accommodated by specifying the path to the local copy:
--dvd-device=
PATH
.
See the following
desktop file
example for playing DVDs from a local file system:
[Desktop Entry]
Type=Application
Name=mpv Media Player DVD 
GenericName=Multimedia player
Comment=Play movies and songs
Icon=mpv
Exec=mpv dvd:// --player-operation-mode=pseudo-gui --force-window --idle --dvd-device=%f
Terminal=false
Categories=AudioVideo;Audio;Video;Player;TV;
# (MimeType and X-KDE-Protocols omitted, see original mpv.desktop file)
By replacing the Exec line with
Exec=mpv dvd://0 dvd://1 dvd://2 dvd://3 dvd://4 dvd://5 dvd://6 dvd://7 dvd://8 dvd://9  --player-operation-mode=pseudo-gui --force-window --idle --dvd-device=%f
the mpv player will queue DVD title 0 to 9 in the playlist, which allows the user to play the titles consecutively or jump forward and backward in the DVD titles with the mpv GUI.
Install
libdvdcss
, to fix the error:
[dvdnav] Error getting next block from DVD 1 (Error reading from DVD.)
Restoring old OSC
Since version 0.21.0,
mpv
has replaced the on-screen controls by a bottombar. In case you want on-screen controls back, you can edit the
mpv
configuration
as described here
.
Reproducible screenshots
The screenshot template option can include the precise timecode (HH:MM:SS.mmm) of the screenshoted frame. The meaningful filename makes it easy to know the origin of the screenshot. It can be set like this:
~/.config/mpv/mpv.conf
screenshot-template="%F - [%P] (%#01n)"
This expands to
filename
- [HH:MM:SS.mmm] (
number
).jpg
. Example result:
Gunsmith Cats/
├── Gunsmith Cats Ep. 01 - [00:00:50.217] (1).jpg
├── Gunsmith Cats Ep. 01 - [00:22:55.874] (1).jpg
├── Gunsmith Cats Ep. 01 - [00:22:55.874] (2).jpg
└── Gunsmith Cats Ep. 02 - [00:15:05.778] (1).jpg
A bonus is it sorts nicely because alphabetically, the timecode is sorted within the episode number.
See
mpv(1) § screenshot-template
for more information.
Creating a single screenshot
An example of creating a single screenshot, by using a start time (
HH:MM:SS
):
$ mpv --no-audio --start=00:01:30 --frames=1 /path/to/video/file --o=/path/to/screenshot.png
Screenshots will be saved in /path/to/screenshot.png.
Streaming
Twitch.tv streaming over mpv
If
yt-dlp
or
youtube-dl
AUR
is installed,
mpv
can directly open a Twitch livestream.
Alternatively, see
Streamlink#Twitch
.
Another alternative based on Livestreamer is this Lua script:
https://gist.github.com/ChrisK2/8701184fe3ea7701c9cc
youtube-dl and choosing formats
The default
--ytdl-format
is
bestvideo+bestaudio/best
. For youtube videos that have 4K resolutions available, this may mean that your device will struggle to decode 4K VP9 encoded video in software even if the attached monitor is much lower resolution.
Setting the right youtube-dl format selectors can fix this easily though. In the following configuration example, only videos with a vertical resolution of 1080 pixels or less will be considered.
ytdl-format="bestvideo[height<=?1080]+bestaudio/best"
If you wish to avoid a certain codec altogether because you cannot hardware-decode it, you can add this to the format selector. For example, we can additionally choose to ignore VP9 as follows:
ytdl-format="bestvideo[height<=?1080][vcodec!~='vp0?9']+bestaudio/best"
If you prefer best quality open codecs (VP9 and Opus), use:
ytdl-format="((bestvideo[vcodec^=vp9]/bestvideo)+(bestaudio[acodec=opus]/bestaudio[acodec=vorbis]/bestaudio[acodec=aac]/bestaudio))/best"
youtube-dl audio with search
To find and stream audio from your terminal emulator with
yta
search terms
, put the following function in your
.bashrc
:
function yta() {
    mpv --ytdl-format=bestaudio ytdl://ytsearch:"$*"
}
System integration
Opening video links from the KDE clipboard
If
youtube-dl
AUR
or
yt-dlp
is installed and
KDE Plasma
is being used, it is possible to create a custom action in the KDE clipboard to conveniently play links from video sharing sites.
Open the clipboard configuration menu (typically by right-clicking its icon in the system tray) and go to the
Actions
tab.
Click
Add Action
then enter a regular expression to detect the sites you would like to play video from (e.g.
^http.+(youtu|twitch)
to detect YouTube and Twitch URLs).
Click
Add Command
, under
Command
enter
mpv %s
and under
Description
enter
mpv
.
Now, you can play video links from your clipboard in
mpv
by pressing
Ctrl+Alt+r
and selecting
mpv
from the context menu. You may need to go to
Advanced Settings
and remove Firefox from the section
Disable Actions for Windows of Type WM_CLASS
.
Troubleshooting
General debugging
If you are having trouble with
mpv'
s playback (or if it is flat out failing to run) then the first three things you should do are:
Run
mpv
from the command line (the -v flag increases verbosity). If you are lucky there will be an error message there telling you what is wrong.
$ mpv -v video.mkv
Have
mpv
output a log file. The log file might be difficult to sift through but if something is broken you might see it there.
$ mpv -v --log-file=./log video.mkv
Run
mpv
without a configuration. If this runs well then the problem is somewhere in your configuration (perhaps your hardware cannot keep up with your settings).
$ mpv --no-config video.mkv
If
mpv
runs but it just does not run well then a fourth thing that might be worth taking a look at is the live statistics (with
i
) to see exactly how it is performing.
Fix jerky playback and tearing
mpv
defaults to using the OpenGL video output device setting on hardware that supports it. In cases such as trying to play video back on a 4K display using an Intel HD4XXX series card or similar, you will find video playback unreliable, jerky to the point of stopping entirely at times and with major tearing when using any OpenGL output setting. If you experience any of these issues, using the XV (
Xorg
only) video output device may help:
~/.config/mpv/mpv.conf
vo=xv
Note
This is the most compatible VO on X, but may be low-quality, and has issues with OSD and subtitle display.
It is possible to increase playback performance even more (especially on lower hardware), but this decreases the video quality dramatically in most cases.
The following
options
[
link quebrado
: seção inválida]
may be considered to increase the video playback performance:
~/.config/mpv/mpv.conf
vd-lavc-fast
vd-lavc-skiploopfilter=
skipvalue
vd-lavc-skipframe=
skipvalue
vd-lavc-framedrop=
skipvalue
vd-lavc-threads=
threads
Problems with window compositors
As described in
mpv(1) § Window
, mpv by default disables any active window
compositor
while in fullscreen mode. This is done to prevent potential performance issues during playback.
For window compositors such as KWin or Mutter, it can be advantageous to disable window compositing even while in windowed mode. This can be achieved by using setting the
x11-bypass-compositor=yes
option.
There are two disadvantages to disabling compositing:
Re-enabling compositing may introduce stutter for a period of time, particularly if using KWin compositing.
Any effects provided by compositing will be temporarily unavailable (until mpv re-enables it), which in
Plasma
prevents the default app switcher from working.
To sidestep these issues, you can try keeping your compositor enabled with
x11-bypass-compositor=no
No volume bar, cannot change volume
Spin the mouse wheel over the volume icon.
GNOME Blank screen (Wayland)
mpv
may not suspend GNOME's Power Saving Settings if using Wayland resulting in screen saver turning off the monitor during video playback. A workaround is to add
gnome-session-inhibit
to the beginning of the
Exec=
line in
mpv.desktop
.
In order to inhibit the screensaver only during playback, use
mpv_inhibit_gnome
AUR
. Alternatively, a
mpv lua script
based on
gnome-session-inhibit
may be used.
Tip
The
io.mpv.Mpv
flatpak app already includes the
mpv_inhibit_gnome
plugin.
Cursor theme not respected under GNOME Wayland
See
GNOME/Troubleshooting#Cursor size or theme issues on Wayland
.
Error message about missing CUDA libraries on AMD GPUs
While using VAAPI hardware acceleration on AMD GPUs on versions
v0.34.1
and older, you may see a persistent error message saying
Cannot load libcuda.so.1
. This can be suppressed by setting
gpu-hwdec-interop=vaapi
.
Related bug reports:
Github issue #9691
,
Github issue #8765
This issue has been fixed upstream in
pull request #9842
.
Unable to play audio if PipeWire is masked
If
mpv
crashes or fails to play audio on systems where
PipeWire
is
masked
, reporting no outputs or broken pipe, set the
--ao
option to match your environment. Set it in
mpv.conf
for persistent configuration.
mpv will not start playing a DVD from file
If
mpv
will not play a DVD from file in plain VIDEO_TS/VOB structure, there could be a problem with the restore playback position function. Try either cleaning
.config/mpv/watch_later
folder, or start
mpv
with the
no-resume-playback
option and/or set the
save-position-on-quit=no
option.
Fix stuttering after resuming playback from pause
If video is stuttering with
PulseAudio
, try the
pulse-latency-hacks
option discussed at
mpv(1) § --pulse-latency-hacks
:
~/.config/mpv/mpv.conf
pulse-latency-hacks=yes