hihkm / DanmakuFactory

支持特殊弹幕的xml转ass格式转换工具
MIT License
577 stars 32 forks source link

关于用SubtitleEdit转化srt为ASS的问题 #50

Open lrln opened 1 year ago

lrln commented 1 year ago

如题,最近这几天尝试折腾了一下剪映srt到ASS的问题,发现SubtitleEdit能直接转化srt为ass,但是ASS固定为"底部弹幕"显示,想要滚动格式还得折腾,找newbing问notepad++的正则问题,基本完美解决,但是通用性不高,而且不方便批量替换,具体为: {\move(1322,3,-42,3)\q2\fs28}{\c&HF65F45} 中的 (1322,3,-42,3) 始终是固定的,没办法让它根据密度排布,也许是持续时间问题?总之srt转化为滚动ASS后,字幕滚动飞快.标签搞不懂, 想过让newbing生成脚本,直接转化srt到滚动ASS,跟nb斗智斗勇,最后我选择了放弃

最后我选择了对srt做优化, 用SubtitleEdit延长字幕持续时间,自动合并前后句缝隙,避免了pot播放时快进刚好是字幕空隙导致字幕浏览器不跳转的问题,算是差强人意. 我还是想要srt转化为滚动的ASS,滚动时间40秒,这样就能同屏显示3-4条字幕 值得一提的是:SubtitleEdit在批量转化为ASS的时候,可以自定义样式,但是都是固定位置,没有move标签,或者说我不知道怎么处理. 最后 催更啊 5.1快乐 (之前说字幕组的源弹幕无法识别礼物,用的是blrec)

lrln commented 1 year ago

屏幕截图 2023-04-30 232721

hihkm commented 1 year ago

五一快乐(心虚 这个并不是持续时间的问题,move标签的四个参数对应了起始和结束的xy坐标,比如你的例子\move(1322,3,-42,3)会使弹幕从(1322,3)移动到(-42,3),如果每条弹幕都这样移动就有问题了~所以这个起始和结束位置是要根据弹幕的排布算出来的。 你可以酱,把你正则替换的 ass 让 danmakufactroy 再转成 ass,这个位置可以帮你重新生成,前提是要让 danmakufactroy 识别到这是个滚动弹幕,满足下面其中一个条件即可: 1、起始y和结束y相等,起始x大于屏幕宽(PlayResX),结束x小于0;(如果屏幕宽是1280,你这个例子是满足的\move(1322,3,-42,3)) 2、将 Dialogue 的 Style 设置成 R2L,这一行会直接变成右往左的滚动弹幕。例如:Dialogue: 0,0:00:02.56,0:00:16.66,R2L,,0,0,0,,{\pos(0,-999)\C&HFFFFFF&}nya

显然还是能直接转比较好

lrln commented 1 year ago

屏幕截图 2023-05-02 122811 w 屏幕截图 2023-05-02 122820 屏幕截图 2023-05-02 122836 还是不太行,这个文件头danma不会自动替换,过SubtitleEdit转化为ASS,我再一通替换,在丢给danma,没有效果,文件头不改,根本识别不到,如果我把SubtitleEdit转为ASS直接丢给danma,可以转化,但是会在左上角挤在一起.emo:最后我还是选择了放弃

hihkm commented 1 year ago

可以的话加个联系方式吧,你这个...