☰
4 个场景讲清 mpv Lua 脚本:裁黑边、自动续播、压音量、管置顶
2026/9/25 5:09:18 网站建设 项目流程

4 个场景讲清 mpv Lua 脚本:裁黑边、自动续播、压音量、管置顶

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

这篇写给没碰过 mpv 脚本的人:讲清 mpv Lua 脚本怎么装、配置怎么写,覆盖 4 个最常见的 mpv 脚本扩展场景,照着复制就能跑起来。

⏱️ 用 3 步跑起第一个脚本

先不用懂原理,最短路径就是 3 步。

  1. 把仓库里TOOLS/lua/目录中的autocrop.lua复制到~/.config/mpv/scripts/;
  2. 在~/.config/mpv/input.conf里加一行:c script-binding autocrop;
  3. 打开一段带黑边的视频,按c,黑边消失;再按一次恢复。

✂️ 给老片裁掉上下黑边

老电影上下总有一条黑带,按了全屏也还在?

autocrop.lua负责 mpv 自动裁剪黑边:它检测视频画面里的黑边区域,把这块裁掉,画面直接铺满。

默认在播放开始约 4 秒后自动裁一次,你也可以随时手动按快捷键。

如果开场是暗场导致裁多了,用script-opts-append=autocrop-auto_delay=8把检测往后延;只想手动裁,就写script-opts-append=autocrop-auto=no。

画面处理完了,麻烦多半在片单上。

▶️ 让同目录视频自动续播

看完一集还得手动点开下一集,对吧?

autoload.lua负责 mpv 自动播放列表:播放开始时扫描当前文件所在目录,把前后的文件按字母序加进播放列表。

关键配置一行:script-opts=autoload-images=no,autoload-directory_mode=recursive。

启用后点开任意一集,整个目录连续播放;images=no排除图片文件,directory_mode=recursive会进子目录扫描。

只想要和当前文件同类型的,再加same_type=yes。

下一类痛点不在画面上,在声音上。

🔊 把忽大忽小的音量压平

预告片炸耳、后面台词又听不见,这种情况你肯定遇到过?

acompressor.lua负责 mpv 音量压缩:给音频加一个动态范围压缩器,把大的拉下来、把小的顶上去。

默认滤波关闭,播放时按n开关,F1~F6及其 Shift 组合键分别微调各参数。

默认值:threshold(压缩阈值)-12dB,可调范围 -30~0dB;ratio(压缩比率)2.5:1;attack(攻击时间)5ms;release(释放时间)50ms。

觉得压得不够狠就调大ratio,觉得过渡突兀就把release调高一点。

黑边裁了、续播通了、音量稳了,最后一个场景跟窗口有关。

🪟 让播放窗口工作置顶,暂停自动让位

边干活边看视频,切个窗口视频就缩到角落,暂停想一下又挡住编辑器?

ontop-playback.lua负责 mpv 窗口置顶:播放时播放器窗口保持在最上层,一暂停就自动让出前台。

把脚本放进~/.config/mpv/scripts/,先启用--ontop;需要更细控制,就在~/.config/mpv/script-opts/ontop-playback.conf里写ontop_while_playing=yes和ignore_fullscreen=yes。

播放时窗口置顶,暂停后它退回你的窗口下面,按继续又回来。

ignore_fullscreen=yes时全屏会自动放弃置顶,窗口不会卡在别人全屏的后面。

⚙️ 把多个脚本配到一起

脚本之间互不干扰,配置统一写在主配置文件~/.config/mpv/mpv.conf:

# ~/.config/mpv/mpv.conf script-opts=autoload-images=no,autoload-directory_mode=recursive script-opts-append=autocrop-auto_delay=8,acompressor-default_enable=yes cache=2M

脚本本身不吃资源,网络源播放时把cache调大一些,加载更稳。

OSD 频繁跳动碍事的话,加一行script-opts-append=autocrop-suppress_osd=yes,autocrop 就不刷屏了。

⌨️ 自己加一行:按键显示播放进度

把这段存到~/.config/mpv/scripts/下,文件名随意,比如progress.lua:

function show_progress() local pos = mp.get_property("time-pos") local dur = mp.get_property("duration") mp.osd_message(string.format("进度: %.1fs / %.1fs", pos or 0, dur or 0)) end mp.add_key_binding("T", "show-progress", show_progress)

mp.get_property负责读播放器状态,这里取当前位置和总时长;mp.osd_message把文字画到画面上;mp.add_key_binding把按键T绑到这个函数上。

重启 mpv 后,播放时按一下T,进度条就出来了。

完整接口看仓库里的 Lua 脚本手册,更多现成例子都在 TOOLS/lua/ 目录。

记不住也没关系,记住"场景对应脚本"就行:黑边、续播、音量、窗口,各有各的。

新手建议先只装autoload.lua:零配置、立刻见效,用几天顺手了,再一个一个上其余三个。

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

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

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

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

立即咨询