本帖最后由 CoffeeH1 于 2026-5-21 16:37 编辑
飞牛影视 弹幕增强版
为飞牛影视播放器叠加 Canvas 弹幕层,支持自动匹配、手动搜索、时间偏移等功能。
---默认行间距可能过低,可以调大以下代码的系数值
[JavaScript] 纯文本查看 复制代码 const fs = cfg.fontSize, lh = fs * 1.5;
功能一览
弹幕显示
- Canvas 自绘弹幕 — 独立 Canvas 层叠加在原播放器上方,不侵入播放器内部逻辑
- GPU 加速渲染 — 弹幕文字预渲染为离屏纹理,绘制时走
drawImage(GPU 合成),不走 fillText(CPU 光栅化)
- 绝对时间定位 — 基于
performance.now() 驱动,60/120/144Hz 自适应,无累积浮点误差,弹幕移动丝滑
- DPR 适配 — 高分屏(Retina)下文字清晰不模糊
- 文字描边 — 默认开启黑色描边,在亮色画面下也能看清弹幕
弹幕加载
- 自动匹配 — 进入播放页后,根据视频标题和集数自动从弹幕库匹配并加载弹幕
- 手动搜索 — 弹幕面板支持按动漫名称搜索,选择剧集后手动加载
- 换集自动加载 — 拦截飞牛播放器的换集请求(
/play/info),换集后自动清空旧弹幕并重新匹配新集弹幕
- 时间偏移 — 弹幕整体提前或延后 0 ~ 30 秒,适配音画不同步的情况
遮挡控制
- 行碰撞避免 — 自动检测每行右边缘空余空间,优先放入空行,避免弹幕大面积重叠
- 密度调节 — 按百分比随机过滤弹幕,调低后显示更稀疏
- 同屏上限 — 限制屏幕上同时存在的弹幕条数,超出后新弹幕自动跳过
- 显示区域 — 弹幕只在播放器顶部指定百分比高度内飞行,不遮挡字幕区域
前置准备
1. 安装弹幕后端(danmu-api)
弹幕数据由Danmu API提供,以 Docker 方式部署。
在你的 NAS 或服务器上创建 docker-compose.yml:
services:
danmu-api:
image: logvar/danmu-api:latest
ports:
- "9321:9321"
volumes:
- ./config:/app/config # config 目录下可创建 .env 配置文件,修改后热更新
- ./.cache:/app/.cache # 缓存目录,数据持久化
restart: unless-stopped
2. 安装 Tampermonkey(篡改猴) 浏览器扩展
本教程不做概述,请自行寻找安装方法。
3. 安装脚本
第一步:修改 IP 地址
打开脚本文件,找到顶部这两个常量,将 192.168.10.252 替换为你自己的 NAS IP:
javascript
javascriptconst FNIU = 'http://192.168.10.252:5666'; // ← 飞牛影视地址(含端口)
const DMAPI = 'http://192.168.10.252:9321'; // ← danmu-api 地址(默认 9321 端口)
同时修改脚本头部的 @match 行:
javascript
javascript// @match http://<你的NAS-IP>:5666/*
如果飞牛影视使用了其他端口,也需要一并修改。
第二步:导入脚本
- 1.点击浏览器右上角的 Tampermonkey 图标
- 2.选择 "添加新脚本"(或 "Create a new script")
- 3.清空编辑器中的默认内容
- 4.将修改好 IP 的完整脚本粘贴进去
- 5.按
Ctrl + S 保存
使用方法
基本流程
- 1.打开飞牛影视,随意进入一个视频播放页
- 2.脚本会自动注入,在播放器右上角出现 「弹幕」 按钮
- 3.脚本会自动尝试匹配当前视频的弹幕,状态提示显示在播放器左下角
- 4.匹配成功后弹幕自动开始播放
自动匹配失败时
- 1.点击右上角 「弹幕」 按钮,打开弹幕面板
- 2.在搜索框中输入动漫名称(默认已填入当前视频标题),点击搜索
- 3.在搜索结果中找到正确的动漫,点击展开剧集列表
- 4.点击对应集数,弹幕即刻加载
调整设置
- 1.点击 「弹幕」 按钮打开面板
- 2.切换到 「⚙ 设置」 标签页
- 3.此时播放器上会出现蓝色虚线标注弹幕活动区域
- 4.拖动滑块或点击开关,所有修改即时生效
- 5.关闭面板后设置自动保存
时间偏移
如果弹幕和画面不同步:
- 弹幕比画面快 → 调大偏移量(正数,如 +2s),弹幕整体延后
- 弹幕比画面慢 → 调小偏移量(负数,如 -2s),弹幕整体提前
- 每次调 0.5\~1 秒逐步微调,直到对齐
使用效果
常见问题
Q: 弹幕按钮不出现
- 确认 Tampermonkey 中脚本已启用(开关为绿色)
- 确认
@match 地址与飞牛影视的实际访问地址一致(含协议 http/https 和端口)
- 刷新页面后等待播放器加载完成(脚本使用 MutationObserver 监听,播放器出现后自动注入)
Q: 自动匹配失败
- 确认 danmu-api 服务正常运行(浏览器直接访问
http://<NAS-IP>:9321 看是否有响应)
- 确认脚本中
DMAPI 地址正确
- 弹幕库可能没有收录该视频,请使用手动搜索
Q: 换集后弹幕没有更新
- 脚本通过拦截
/v/api/v1/play/info 请求检测换集
- 如果飞牛影视使用了其他 API 路径加载视频信息,可能无法自动检测
- 此时手动搜索加载即可
Q: 弹幕还是有点卡
- 确认浏览器开启了硬件加速(Chrome → 设置 → 系统 → 使用硬件加速模式)
- 尝试降低「同屏上限」和「弹幕密度」
- 将「文字描边」关闭可略微减少渲染开销
Q: 面板在播放器外面,看不到
- 面板定位基于播放器容器,在窄屏或小窗模式下可能超出范围
- 尝试全屏播放或扩大浏览器窗口
Q: 感觉剧情和弹幕对不上
- 自动匹配的时候左下角会显示匹配的集数,有可能会匹配错误,需要手动搜索指定
脚本:
飞牛影视 弹幕增强版 (Canvas 自绘)-1.9.0.user.rar
(9.6 KB, 下载次数: 3)
|