

下载源码并安装脚本
_PROJECT_PATH=/tmp/MPVDanmakuLoader git clone https://github.com/fish47/MPVDanmakuLoader.git "$_PROJECT_PATH" pushd "$_PROJECT_PATH" mkdir -p ~/.config/mpv/scripts/ lua tool/mergefiles.lua > ~/.config/mpv/scripts/mpvdanmakuloader.lua popd 建议通过~/.config/mpv/input.conf来修改快捷键,例如
Ctrl+d script-binding mpvdanmakuloader/load acfun:acXXX acfun:vidXXX bili:avXXX bili:cidXXXddp:XXX配置文件是视频目录下的.mpvdanmakuloader/cfg.lua,如果没有需要自行创建,下面是例子
local cfg = ... -- 其他字段详见 MPVDanmakuLoaderApp._initConfiguration()@src/shell/application.lua cfg.danmakuReservedBottomHeight = 30 cfg.subtitleReservedBottomHeight = 10 -- 修改或过滤弹幕,参数类型是 DanmakuData@src/core/danmaku.lua ,返回 true 过滤此弹幕 cfg.modifyDanmakuDataHook = function(danmakuData) if danmakuData.text:match("小埋色") then return true end end -- 修改弹幕样式,样式定义详见 _ASS_PAIRS_STYLE_DEFINITIONS@src/base/_ass.lua cfg.modifyDanmakuStyleHook = function(styleData) styleData["Underline"] = true end -- 比较弹幕来源是否相同,参数类型是 DanmakuSourceID@src/core/danmaku.lua cfg.compareSourceIDHook = function(sourceID1, sourceID2) -- 例如某个目录下,保存了不同时期的弹幕 xml 文件,为了去除重复弹幕,可以认为弹幕来源是相同的 local dir1, fileName1 = mp.utils.split_path(sourceID1.filePath) local dir2, fileName2 = mp.utils.split_path(sourceID2.filePath) if dir1 == dir2 and fileName1 and fileName2 then return fileName1:match(".*%.xml") and fileName2:match(".*%.xml") end end --secondary-sid 支持不好,连基本的 SRT + ASS 播放也不正确io.popen() 不支持读写方式,官方邮件列表甚至有解释过。项目中有这样的用例,但暂时没发现死锁 1 yicun 2016-05-11 13:46:03 +08:00 会开发 win 可用的吗? |
2 fish47 OP @yicun 如果要移植,我会用 python 重写那些外部命令,然而我懒。其实在 win 下有同类型的软件叫 弹弹 Play 。 |
3 yuhangch 2022-06-27 19:15:01 +08:00 2022 年也有了做个类似东西的想法。。先看看楼主的还能不能用 |