LrcToAss48 口袋48弹幕转换
Table of Contents
口袋48#
口袋48录播扒下来的弹幕是一个lrc文件:
[00:00:17.341]用户1 晚上好
[00:00:29.409]用户2 来了
[00:00:31.980]用户1 Hi
左边是该留言出现的时间点,接着是用户id,最后为留言内容。
为了将这些文字转换为「从右到左滚动」这种大家更熟悉的形式,我写了一个小工具。
Aegisub#
一款我使用频率最高的软件(笑)
这是一个字幕编辑工具,所有做过字幕相关工作的朋友应该都很熟悉了,就是俗称“打轴”的环节。厉害的人可以玩出很多豪华的特效,但我只是用到了其中一个基础的命令,用来模拟弹幕滚动的效果。
# 在设定的时间内,文字从(x1,y1)的位置移动到(x2,y2)
\move(<x1>,<y1>,<x2>,<y2>)
LrcToAss48#
是的,我们要做的事情很简单,就是把lrc文件中的「出现瞬间」,转换为「有始有终的持续时间」。
假设这个弹幕要持续21秒,则在ass字幕文件中,时间格式为0:00:00.00,0:00:21.00
具体来说,完整的一行是这样的
Dialogue: 0,0:00:00.00,0:00:21.00,Default,,0,0,0,,{\move(1280,65,-1345,65)}晚上好
大部分代码就是在进行时间的换算,包括时分秒的进位之类的,挺无聊的,此处就省略了。
至于具体的时间长度设定,则需要根据视频的分辨率进行调整。
right = '1280'
left = '-1345'
# 弹幕停留时间
dtime = 21
# 弹幕高度池,此为30字号的默认设置
high = [65,95,125,155,185,215,245,275,305,335]
# 计数用,用于高度分配
n = 0
压制#
将lrc文件逐行处理完成后,我们就得到了一个ass文件。
直接用小丸工具箱之类的压制就行了,毕竟也不是什么蓝光压制,不需要太专业。
2024-02-06 追记
最近换成了群友写的StarTools,显卡压制,最主要的是可以直接压emoji不会乱码了,省去了一个处理emoji的步骤。
Licensed under CC BY-NC-SA 4.0