Back to blog

mpv.conf 配置与性能调优

mpv 播放器的配置文件详解——视频/音频/字幕选项、硬件解码、性能调优和场景配置模板。

配置体系

#

mpv 按以下顺序加载配置,后覆盖前:

系统路径
Linux~/.config/mpv/mpv.conf
Windows%APPDATA%\mpv\mpv.conf
macOS~/.config/mpv/mpv.conf

语法:option=value# 注释,行末不要有空格。profile 块用 [name] 定义。

目录结构:

~/.config/mpv/
|-- mpv.conf          # 主配置
|-- input.conf        # 按键绑定
|-- script-opts/      # 脚本参数
`-- scripts/          # Lua/JavaScript 脚本

视频核心

#

输出驱动

vo=gpu-next            # 推荐,支持 Vulkan/OpenGL
gpu-api=vulkan         # 性能最好,Linux/Windows 优先

硬件解码

hwdec=nvdec            # NVIDIA 纯解码(省电)
hwdec=cuda             # NVIDIA 更广兼容
hwdec=vaapi            # Intel/AMD Linux
hwdec=d3d11va          # Intel Windows
hwdec=videotoolbox-copy # macOS

画质

scale=ewa_lanczossharp      # 放大
dscale=mitchell             # 缩小
cscale=bilinear             # 色度缩放
linear-scaling=yes          # 线性光域缩放
sigmoid-upscaling=yes       # S 形上采样
correct-downscaling=yes     # 修正缩小混叠
icc-profile-auto=yes        # 加载校色文件
tone-mapping=hable          # HDR->SDR 映射

帧率同步

video-sync=display-resample
interpolation=yes                    # 运动插值
interpolation-past-frames=8
interpolation-future-frames=8

音频

#
ao=wasapi                   # Windows
audio-normalize-downmix=yes
audio-format=float
audio-channels=auto
volume-max=200

字幕

#
sub-auto=fuzzy
sub-font="Source Han Sans SC"
sub-font-size=48
sub-border-size=2
sub-ass-override=force      # 覆盖 ASS 样式
sub-shadow-offset=1.5

性能调优

#

解码与渲染

vd-lavc-dr=yes            # 硬解帧零拷贝渲染,省 CPU
opengl-pbo=yes            # 异步像素上传,减少卡顿
hwdec=auto                # 自动硬解,花屏再回退 no

网络流缓存

cache=yes
cache-default=50000          # 50MB 起步
demuxer-max-bytes=200Mi      # 网络流预取上限
demuxer-max-back-bytes=50Mi  # 向后回看缓冲

低配机器

高画质选项(插帧、高质量缩放)在核显/低端机上会掉帧。降档:

profile=fast                  # 内置低开销预设
interpolation=no              # 关运动插值
scale=spline36                # 降级缩放算法
video-sync=display-resample
framedrop=vo                  # 卡顿时优先丢帧

快捷键与脚本

#

mpv 无默认 UI 菜单,一切靠按键和脚本。常用默认键:f 全屏、/* 音量、[] 倍速、. 逐帧、s 截图、S 无字幕截图、Ctrl+s 保存播放进度。自定义键写在 input.conf

# 示例:切换字幕轨,重定义左右键为微调 5 秒
cycle sub
RIGHT seek 5
LEFT  seek -5

# 是注释符。键位以 键 命令 格式写一行,命令可用 mpv --input-cmdlist 查看全量。

常用社区脚本(放 scripts/):

  • thumbfast — 进度条缩略图预览
  • uosc — 现代化 OSC 界面,替代默认进度条
  • mpv-youtube-quality — 在线视频清晰度切换
  • modernx — 简洁风格 UI

常见问题

#
现象处理
花屏/绿屏hwdec=no 回退软解
字幕乱码确认字幕文件 UTF-8;sub-font 指定中文字体
音画不同步interpolation;或 --audio-delay=±秒 微调
倍速后音调变怪默认 scaletempo 已保音调,确认没被覆盖
界面卡顿见上文性能调优排查顺序

场景模板

#

通用高质量

vo=gpu-next
hwdec=nvdec
scale=ewa_lanczossharp
linear-scaling=yes
sigmoid-upscaling=yes
video-sync=display-resample
interpolation=yes
sub-auto=fuzzy
save-position-on-quit=yes

笔记本节能

vo=gpu
hwdec=nvdec
scale=spline36
linear-scaling=no
interpolation=no
framedrop=vo

网络流

cache=yes
cache-default=100000
cache-pause-initial=yes
force-seekable=yes
ytdl-format=bestvideo[height<=?1080]+bestaudio/best

$ echo "collect what matters, write it down"