ass translation python(ass字幕文件半自动平移时间轴py脚本),, 1 # -*- c


 1 # -*- coding: UTF-8 -*-  2  3 ‘‘‘ 4 只适用于下面这种形式的ass文件 5 [Events] 6 Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text 7 Dialogue: 0,0:1:30.19,0:1:32.89,Default,,0000,0000,0000,,{\t(1308,2700,\1c&H000000&\3c&H000000&\4c&H000000&)}没有啊... 8 ‘‘‘ 9 10 # t1:t2:t3.t411 # 00:01:30.1912 def trans(s, t1, t2, t3, t4):13     s1 = s.split(‘:‘)14     time1, time2 = int(s1[0]), int(s1[1])15     time3, time4 = map(int, s1[2].split(‘.‘))16     17     time1 += t118     time2 += t219     time3 += t320     time4 += t421     22     while time4 >= 100:23         time4 -= 10024         time3 += 125     while time4 < 0:26         time4 += 10027         time3 -= 128         29     while time3 >= 60:30         time3 -= 6031         time2 += 132     while time3 < 0:33         time3 += 6034         time2 -= 135         36     while time2 >= 60:37         time2 -= 6038         time1 += 139     while time2 < 0:40         time2 += 6041         time1 -= 142         43     return str(time1) + ‘:‘ + str(time2) + ‘:‘ + str(time3) + ‘.‘ + str(time4)44 45 # 修改字幕文件名称46 f = open(‘src.ass‘, ‘r‘, encoding=‘UTF-8‘)47 fo = open(‘des.ass‘, ‘w‘, encoding=‘UTF-8‘)48 lines = f.readlines()49 for line in lines:50     if line[:8] == ‘Dialogue‘:51         lis = line.split(‘,‘)52         st = lis[1]53         ed = lis[2]54         # 修改时间差55         new_st = trans(st, 0, 0, 10, 0)56         new_ed = trans(ed, 0, 0, 10, 0)57         lis[1] = new_st58         lis[2] = new_ed59         new_line = ‘,‘.join(lis)60         fo.write(new_line)61     else:62         fo.write(line)63 f.close()64 fo.close()

ass translation python(ass字幕文件半自动平移时间轴py脚本)

评论关闭