5个mpv脚本让你的命令行播放器秒变专业观影工具
2026/9/1 11:13:59 网站建设 项目流程

5个mpv脚本让你的命令行播放器秒变专业观影工具

【免费下载链接】mpv🎥 Command line media player项目地址: https://gitcode.com/GitHub_Trending/mp/mpv

在一个装满视频的文件夹里点开一部电影,放完就没了?下一部还得手动再挑一次。或者音量忽大忽小,对话段得凑近屏幕才能听清?mpv 是一个功能完整的命令行媒体播放器,它的真正实力在 mpv 脚本体系里:往加载目录丢一个 .lua 文件,就多一项功能。读完这篇,你能带走 5 个开箱即用的脚本和它们的调参方法。

三步上手,先跑起来

  1. 克隆仓库拿到官方脚本,都在 TOOLS/lua/ 目录下:

    git clone https://gitcode.com/GitHub_Trending/mp/mpv
  2. 创建脚本加载目录(mpv 不会自动帮你建):

    mkdir -p ~/.config/mpv/scripts
  3. 把想要的 .lua 文件复制进去,然后正常播放mpv movie.mkv——之后每次启动 mpv 都会自动加载这些脚本。

不想永久安装的话,也可以用命令行参数--script=/path/to/script.lua一次性临时加载。

5 个即用场景,5 个 mpv 脚本

mpv 自动播放列表:autoload 帮你把整个文件夹排好队

痛点:一部一集地手动点播太累。把 autoload.lua 放进 scripts 目录后,它会在每个文件开始时扫描所在目录,按自然排序(第 2 集排在第 10 集前面)把前后的文件补进播放列表,最多各补 5000 个。

~/.config/mpv/script-opts/autoload.conf里可以控制它的口味:

videos=yes audio=no directory_mode=recursive ignore_patterns=^~,^bak-,%.bak$

效果:点开一集,整季已经排好队;directory_mode=recursive还能连子目录一起扫,ignore_patterns用正则排除备份文件。

mpv 画质优化:autocrop 一键裁掉黑边

老电影、4:3 动画,上下黑边占掉三分之一屏幕。autocrop.lua 在播放开始约 4 秒后(默认auto_delay=4,故意避开片头淡入)临时插入 FFmpeg 的 cropdetect 滤镜,采集 1 秒数据算出黑边位置,写回video-crop属性,黑边瞬间消失。

不想全自动?播放中按C键手动触发一次,再按一次还原。检测时它会自动暂停硬件解码以保证滤镜拿到数据,测完再恢复,全程无感。

mpv 音频降噪:acompressor 治住忽大忽小的音量

acompressor.lua 包了一层 FFmpeg 的动态范围压缩器:压掉爆炸声的峰值、抬起来对话声的底部。默认参数是 threshold=-25dB、ratio=3.0、attack=20ms、release=250ms。

注意它默认是关的:按n键开关;F1~F6六个键分别微调 threshold、ratio、knee、makeup、attack、release,OSD 会实时显示当前参数。边看边按,调到舒服为止。

边工作边看:两个小脚本管好窗口

ontop-playback.lua 只有 19 行:如果你开着窗口置顶,一暂停就自动取消置顶,恢复播放再置顶回来——暂停看文档时不再挡住别的窗口。

pause-when-minimize.lua 同理:最小化窗口自动暂停,还原窗口自动续播,而且你本来就是暂停状态时它绝不插手。两个都是「放下不管」型脚本,复制进去就生效,零配置。

伽马跟着环境光走:gamma-auto

gamma-auto.lua 监听ambient-light属性,把 16~256 lux 的环境亮度线性映射到 gamma-factor 1.0~1.2:白天强光下把屏幕压暗,避免刺眼;熄灯后屏幕自动提亮。文件只有 29 行,逻辑一目了然,适合当学习 mpv 属性观察(mp.observe_property)的范例。

进阶:写一个 6 行的自己的 mpv 脚本

现有脚本不够用?API 很简单,比如「按 t 显示当前时间」:

function show_time() local pos = mp.get_property_number("time-pos", 0) local dur = mp.get_property_number("duration", 0) mp.osd_message(string.format("%.0f s / %.0f s", pos, dur)) end mp.add_key_binding("t", "show-time", show_time)
  • 前 4 行是函数体:读time-posduration两个属性,拼成 OSD 字幕显示
  • 最后一行把t键绑定到这个函数
  • 存成showtime.lua丢进 scripts 目录即可生效

更多接口和现成写法,可以翻 DOCS/tech-overview.txt 里的 Lua 章节,以及 player/lua/ 下官方内置脚本的源码。

常见坑清单 ⚠️

  1. 脚本没反应?先确认放对地方:必须是~/.config/mpv/scripts/下,且目录要自己建。放错了 mpv 会默默跳过,不报错。
  2. autocrop 裁过头或没裁:检测窗口只有 1 秒,手动按C时请停在一个非纯黑的画面上;片头是黑场的片子,把auto_delay调大一点。
  3. acompressor 按了没声音变化?它默认default_enable=false,先按n开启;想一开机就生效,在 script-opts 里加default_enable=yes
  4. gamma-auto 完全不动:它依赖ambient-light属性,多数系统默认没有东西提供这个值,读到的永远是 0,需要外部手段喂数据才会动。

这 5 个 mpv 脚本都在 TOOLS/lua/ 里躺着,现在就去挑一个复制到你的 scripts 目录,从自动播放列表开始试起。

【免费下载链接】mpv🎥 Command line media player项目地址: https://gitcode.com/GitHub_Trending/mp/mpv

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询