近看《生活大爆炸》碰到字幕时间和声音不同步的问题,字幕或提前或延后的,实在恼人。
打开字幕原文件一看,4、5百条,手工调整什么的就算了,用Python自己写个小程序吧,没准以后追别的剧还能用到呢。
代码如下:
-
def adjust_srt(x, y = r'd:/output/new.src', z = 0):
-
-
调整视频字幕时间,+z字幕延后z秒显示,输出新文件
-
-
-
-
注:函数仅适用于整体调整,字幕随时间阶段偏移的情况比较复杂,
-
相对也比较少见,在此就不追加分段调整功能了,感兴趣的可以自己完善~
-
-
-
-
pat = r"\d\d:\d\d:\d\d" # 正则表达式
-
-
l0 = re.findall(pat, f1) # 正则过滤所有字幕显示时间,输出是一个列表
-
-
-
-
-
-
-
delta = datetime.timedelta(seconds = z) # 调整时间
-
t = datetime.datetime(2018, 07, 20, h, m, s) + delta # 加入年月日格式化调整后的字幕时间
-
t1 = datetime.datetime.strftime(t, '%H:%M:%S') # 去掉年月日
-
temp.append(t1) # 得到调整后的时间列表
-
-
-
for i in range(len(temp)):
-
f1 = f1.replace(l0[i], temp[i]) # 替换字幕时间
-
-
if os.path.exists(y[0:10]): # 判断输出路径是否存在
-
-
print "it's already exists"
-
-
-
os.mkdir(y[0:10]) # 不存在则新建目录
-
-
-
-
-
-
path = r'C:\Users\Administrator\Desktop\for_python\wt2.txt'
-
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是一个个人学习交流的平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽,造成漏登,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。