-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
控制多个弹幕源弹幕延迟的功能 #120
Comments
基本上是重新打一遍轴了,应该大概现在没有工具实现了这一需求吧,不过我有能实现的方法?一个视频如果分p1p2,理论上是不是p2的时间轴+p1最后的时间就能得到p2正确的的时间轴了,但是刚打开一个弹幕文件发现不太可能,文件都只记录了弹幕发送的时间而不是完整时间轴,上面方法建立在每一p末尾时间都有用户发送了弹幕的情况下,但这不现实。不然就是脚本层面支持在视频任意时间下加载弹幕了(弹幕不对视频轴,从什么时候加载就从什么时候显示) |
想到了,读取视频链接的时候判断是否有分p,如果有就读取每一p视频时长用来2+1,3+1+2合弹幕轴,不过能不能实现有没有必要做就不是我能判断的了hhh |
这个思路理论上其实也不可行,b站很多分段视频为了过审,会分p末尾添加5~10分钟左右的无意义视频内容,按照分p时间来计算算出来的时间还是不对的 |
@thouser8 我做一个可以独立控制每一个弹幕源的弹幕延迟的功能如何?这样就可以自己把分p视频的弹幕时间调对了。 |
感觉这个最可行,但是实现起来会不会有点难度?毕竟实际操作起来如果太繁琐难懂,那就鸡肋了 |
我的想法就是再做一个跟 |
好好好,那就拭目以待了 |
我昨天刚刚把延迟弄进了样式调整菜单,结果现在只能放弃了 |
这倒是不影响,目前的弹幕延迟是加载并且整合完之后的弹幕的延迟,是所有弹幕的整体延迟。我这个延迟调整是在加载弹幕之前,调整弹幕文件里记录的弹幕的时间轴,达到控制来自不同弹幕源的弹幕各自的延迟。所以这两种延迟并不冲突。 |
@dyphire mp.format_json()函数对于lua表转json的嵌套支持似乎有问题
以上两行代码打印相同的对象,但结果如下(indent是为了方便阅读由我手动添加)
|
多级嵌套时,被嵌套的table会直接消失,请问大佬了解这个问题有什么好的解决方法吗? 之前因为只需要存储弹幕源的url,所以没遇到这个问题,现在需要针对每个弹幕源存储更详细的信息,比如说弹幕延迟,就遇到了嵌套不支持的问题。 我目前想到的就是放弃多级嵌套,用特殊占位的方式存储信息,比如说把
用一个这样的字符串代替进行存储,从而避免产生嵌套
|
实际上,在 #123 中已经在使用嵌套了,感觉是 table 写法上有点问题 Lines 25 to 33 in a70a0fe
|
奇怪,类似的写法我也尝试过,但是无法奏效。合成的lua table本身可以正确地存取遍历打印,也不像是结构上有什么问题,就是format_json的时候出问题 这个问题断断续续困扰了我三天了,始终无法正确地存取json 我现在基本完成了使用特殊占位的实现,测试也没什么问题,准备就按照特殊占位的写法来了。 |
特殊占位也不是不行,可以先这么实现,以后有时间再研究 |
大佬们太强了,其实这个需求是少数的,但还是花心思实现出来了👍这个项目现在功能上简直完美 |
有一说一,确实👍 |
过奖了 其实过年玩的挺嗨的😂,前天晚上从亲戚家回来,如果没沉迷追ave mujica和刷二创跟假药,可能能更早一点完成 |
新功能可以直接在总菜单里选择 更具体的说明会更新在readme当中 |
这个可以很轻松做到,那我就改成自动隐藏已经屏蔽的弹幕源好了。我以为用户会喜欢能控制更多的东西😂,设计的时候就没隐藏 |
完全可以的👍那很有私人订制了哈哈 |
主要是三四个弹幕源排列在一起就很难分辨了,我觉得还是隐藏比较好🤔 |
这个听起来感觉像是弹幕自动关联功能的bug。能具体描述一下这个问题出现的步骤和情况吗?
这个是播放本地视频的情况,还是使用类似play with mpv这样的插件在线播放的网络视频? 如果确定这是一个bug的话需要新开一个issue处理这个bug。 |
ok,那就改成自动隐藏 |
我完整复述一遍整个过程吧,你看看能不能复现出来。 |
OK,我吃完饭下午排查一下 |
从脚本代码逻辑上来说,这是不太可能出现的。弹幕关联记录对于本地文件以目录和文件名的方式进行记录,即使位于同一目录但文件命名规则不一致都不会继承关联;对于串流文件则是以媒体名(可能的番剧名)进行弹幕关联记录 本地文件和串流文件之间在代码逻辑上是不可能出现弹幕关联错乱继承的,至于串流文件之间的弹幕关联错乱继承则可能发生在媒体命名不规范的场景下,但这依然不能算作脚本的 bug |
试了一下新功能,我个人比较喜欢添加新弹幕后就可以直接调延迟,是否需要将弹幕延迟菜单整合进添加弹幕源菜单,如果需要的话我可以提个pr,如果不需要的话是否可以考虑在后面的优化中,为添加弹幕源菜单添加item按钮跳转至弹幕延迟菜单 |
我也觉得很奇怪,从理论上来说不太可能出现这种bug,不太能想象到问题处在哪里。但如果说是单纯的媒体命名不规范导致的弹幕关联错乱继承,每次都正好错乱继承到上一次关联的弹幕也很没道理,解释不通 @thouser8 我没有成功复现此问题,需要出现该问题时的mpv的运行日志来进行进一步的排查 @dyphire @MiKoto-Railgun 请问可以麻烦测试一下在你们的环境下会不会复现同样的 |
我试试看 |
正常加载,没有复现, @thouser8 你发一下你danmaku-history.json文件里的有关这两个视频匹配文件名的json数据,看看写入数据有没有出错 |
@thouser8 你移动danmaku-history.json到别的位置,再按以上操作重新试试看能不能复现 |
danmaku-history.json这里面_5. 勘違いでかりゆしウェア!_是冲绳妹ep5的标题,但是前面的匹配信息又是精灵小姐ep4。 |
这个是分文件弹幕加载重构的时候引入的一个bug,我今天才发现还没来得及处理,我一会儿会推一个pr修复一下这个bug |
顺便能请问下网络文件的mpv.log保存在哪吗?我在根目录和portable_config下都没找到🤔本地播放后倒是会把日志生成在本地视频文件旁边。 |
portable_config\files\ 文件夹下吧,你看看 |
这就是我上面说的串流文件媒体命名不规范导致的
未搜索关联时的自动匹配是哈希匹配,会出错很正常,这是弹弹play 服务器上的记录不正确导致的 |
我看了一下danmaku-history.json,大概知道是怎么回事了。这个不是插件的bug,是你使用的外挂mpv的emby播放器传给mpv的media-title的格式和插件不兼容,插件从中读不到正确的动画信息,你看danmaku-history.json里,从media-title里读出来的动画名称是
归根结底确实是dyphire大佬说的,emby播放器媒体命名不规范的问题 |
好的,麻烦三位大佬耐心解答了😂这个服的媒体名使用的都是英文,可能也和这个有关 |
大佬看一下这个可以不,可以的话我就优化一下提个pr,不行就算了 |
ok,等我洗完衣服来看一下 |
比起这种实现方式,我还是更喜欢 从软件设计的角度来说,我个人觉得如果一个图形界面不能让人在看到它的时候就理解它的操作方法,而需要额外的说明,那么这个界面就有点过于复杂了。点击切换界面功能的话,可能会让百分之三四十的人在第一次见到的时候不知道怎么在两种模式之间切换。这种设计很精巧但可能不够简单。另外,也会增加用户误操作的可能性,比如说在添加源的界面不小心输入延迟秒数,或者在延迟设置界面不小心输入url链接,也增加了代码上校验用户输入的负担。 当然从技术上来讲这个实现写的很精彩,巧妙地糅合了两个菜单,同时增加了代码复用。代码写的真的很好👍 我本来想等这个issue里的问题解决完以后,单独开一个issue和你讨论一下这个的。没想到你能力这么强,效率这么高😂,都已经实现好了。抱歉让你浪费了时间精力,我应该早点和你讨论一下的。 |
ok,没问题的,刚刚出去吃饭没来得及回复
大佬说的有理,本质上还是得简单使用为宜, 就是延迟这个一位小数是不是有点多余?弹幕延迟不至于精确到毫秒吧 |
弹幕文件里的时间轴是精确到小数点后两位的,所以理论上还能更精确一点🤣,而且实际上无论精确到小数点后多少位都是合法的 当然用户肯定是用不到这么精确的,所以我在提示语里说要 |
目前已经实现直接复制视频链接来导入弹幕,但是B站的搬运动画经常为了过审会拆分成上下两个视频甚至更多分段视频,
The text was updated successfully, but these errors were encountered: