4 个场景讲清 mpv Lua 脚本:裁黑边、自动续播、压音量、管置顶
【免费下载链接】mpv🎥 Command line media player项目地址: https://gitcode.com/GitHub_Trending/mp/mpv
这篇写给没碰过 mpv 脚本的人:讲清 mpv Lua 脚本怎么装、配置怎么写,覆盖 4 个最常见的 mpv 脚本扩展场景,照着复制就能跑起来。
⏱️ 用 3 步跑起第一个脚本
先不用懂原理,最短路径就是 3 步。
- 把仓库里
TOOLS/lua/目录中的autocrop.lua复制到~/.config/mpv/scripts/; - 在
~/.config/mpv/input.conf里加一行:c script-binding autocrop; - 打开一段带黑边的视频,按
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),仅供参考