ass-danmaku icon indicating copy to clipboard operation
ass-danmaku copied to clipboard

ass字幕内弹幕的时间错误

Open MC-dusk opened this issue 3 years ago • 15 comments

ass字幕内弹幕的时间错误。比如从https://www.bilibili.com/video/av928803013 下载的ass弹幕随便选一行:

Dialogue: 0,98:14:43.00,98:14:51.00,Rtl,,20,20,2,,{\move(685,25,-125,25)}这才是正确的使用方式

弹幕时间98h14m43s,而视频时长不到半小时。


简单看了一下425a5a8,是用的json弹幕源吗?

Parser for bilibili use ~~pdf~~ pbf project.

json内"progress":1410948,意思是距离视频开头1410.948s,是不是换算的问题?

另外json弹幕和xml弹幕的内容竟然完全不同……

MC-dusk avatar Feb 02 '21 07:02 MC-dusk

啊,那个是拼错了,应该用的那个项目是 pbf,之后修一下这个拼写问题。

是不是他是毫秒?我除以1000的话是不是就大概没问题了?

用的是 Protocol Buffers 格式的接口。

tiansh avatar Feb 02 '21 07:02 tiansh

~~我在同一个视频的ass弹幕和json弹幕中找不到相同的一条弹幕内容,所以不能确定对应关系~~ 终于找到一条

{"id":43941243138867210,"progress":349299,"mode":1,"fontsize":25,"color":16777215,"midHash":"d2567fc8","content":"头发都张长了","ctime":1610887785,"weight":3,"idStr":"43941243138867207"}
Dialogue: 0,97:01:39.00,97:01:47.00,Rtl,,20,20,2,,{\move(635,25,-75,25)}头发都张长了

似乎不是除以1000的关系……

MC-dusk avatar Feb 02 '21 08:02 MC-dusk

没太懂,你给的例子不就是说,出现时间应该是 349.299s,然后我现在生成的是 349299s,所以应该除以 1000?

tiansh avatar Feb 02 '21 08:02 tiansh

你说得对,我算错了,就是除以1000。 我之前一直没想明白为什么弹幕不一致,原来是时间超出99:99:99.999的弹幕被直接忽略了,json文件内有4200条左右,ass文件只有2000条。

MC-dusk avatar Feb 02 '21 09:02 MC-dusk

更新了一下,但愿好了。

tiansh avatar Feb 02 '21 12:02 tiansh

弹幕时间恢复正常了,但如果视频较长,后面的弹幕就没有了。 例如: https://www.bilibili.com/video/av288554260 07:00~24:00弹幕就没有了 danmu.zip

MC-dusk avatar Feb 02 '21 13:02 MC-dusk

这样吗,真麻烦。

你看看如果你把视频调到第八分钟开始看,下载的弹幕是不是只有中间一段的?

tiansh avatar Feb 03 '21 01:02 tiansh

仍以https://www.bilibili.com/video/av288554260 为例,视频时长24min,逐渐加载到最后,扩展会显示四个可下载的弹幕,但下载下来的内容完全一致。

MC-dusk avatar Feb 03 '21 04:02 MC-dusk

大概明白这情况了,不过没什么好的处理办法,最多可以让四个不同甚至拼好,但是前提得用户让它加载到最后。就不知道怎么办。

tiansh avatar Feb 03 '21 05:02 tiansh

仍以https://www.bilibili.com/video/av288554260 为例: 抓包json弹幕(获得seg.so文件) https://api.bilibili.com/x/v2/dm/web/seg.so?type=1&oid=284038161&pid=288554260&segment_index=1 其中segment_index=1换为2、3……即可获得后续弹幕

MC-dusk avatar Feb 03 '21 05:02 MC-dusk

但是这个扩展不发任何请求,只是处理网页本身加载的内容。

tiansh avatar Feb 03 '21 06:02 tiansh

那没有好的办法了,B站现在不主动加载xml弹幕,主动加载的json弹幕又是分片的,只有跳转到视频结尾,然后合并获取的所有弹幕分片。

MC-dusk avatar Feb 03 '21 06:02 MC-dusk

跳转也只能拿到头尾两个分片吧?能拿到全部的吗?

tiansh avatar Feb 03 '21 06:02 tiansh

确实不能拿到全部,看来大概是6分钟一个分片😅


不过点击弹幕列表会同时加载所有分片 图片

MC-dusk avatar Feb 03 '21 07:02 MC-dusk

总之 1.13 又更新了一下。但是现在需要等所有分片加载完成才会显示下载的按钮。可以通过你说的展开弹幕列表的方式来加载分片。暂时没什么更好的主意。

tiansh avatar Feb 21 '21 12:02 tiansh