Home

Awesome

使用mpv自动下载弹幕并加载

背景

mpv加载弹幕的过程太过于繁琐,需要手动寻找cid下载xml弹幕,随后将xml转换成ass文件之后再手动加载到视频当中,于是就诞生了这个小插件

运行效果

b站播放器: image

mpv使用插件后: image

(可选)配合脚本

搭配油猴脚本:https://greasyfork.org/en/scripts/444056-play-with-mpv

github主页: https://github.com/LuckyPuppy514/Play-With-MPV

配合该油猴脚本可以实现b站视频流一键推送到mpv,一键加载视频弹幕

加载原理

1.使用mpv的 --script-opts 参数给此插件传递视频的cid,或 yt-dlp 传递的 danmaku 中的 cid

2.插件获取视频的cid后拉起python自动完成下载xml字幕文件并转换为.ass文件存放到指定目录

3.python执行完成后重新加载指定目录下的ass文件即可完成加载

安装

1.(可选)安装Play-With-MPV油猴脚本

2.(可选)配置mpv.conf

如果没有安装补帧插件还是建议添加

将下列配置直接粘贴到mpv.conf中

# 让弹幕更平滑
# 与补帧插件冲突,启用补帧插件就不用加这个
# 注意这行尽量放配置文件的前面,最好放第一个
vf=lavfi="fps=fps=60:round=down"

3.(可选)目前默认使用pyinstaller打包的可执行文件运行,使用命令行版可大幅提升运行速度

# 本脚本默认调用二进制可执行文件,请使用非windows系统与有能力的朋友自行更改arg变量
# 能大幅提升弹幕加载速度

完成

在网页中点击mpv图标将视频流传输到mpv后将会自动加载弹幕

按下b会重新载入弹幕

弹幕以字幕方式加载,如需隐藏按下v即可

注意

如果打开MPV发现没有弹幕,请在Play-With-MPV的设置界面,将首选字幕选项设置为关闭 image

对弹幕的个性化定制

本项目使用了danmaku2ass的代码,可以对弹幕的样式进行深度定制

如有客制化需求,可以自行对Danmu2Ass.py进行修改

相关项目

巴哈姆特弹幕 https://github.com/s594569321/MPV-Play-BAHA-Comments