Python实现视频字幕时间轴格式转换的示例
作者:mYlEaVeiSmVp
本文主要介绍了Python实现视频字幕时间轴格式转换的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
自己喜欢收藏电影,有时网上能找到的中文字幕文件都不满足自己电影版本。在自己下载的压制版电影中已内封非中文srt字幕时,可以选择自己将srt的时间轴转为ass并替换ass中的时间轴。自己在频繁复制粘贴改格式的时候想起可以用Python代码完成转换这一操作,借助ChatGPT并自己稍作修改后用代码实现了。自己测试可用。
没指定srt文件的路径,使用前首先需要将srt后缀先改为txt文本格式,代码默认输入为“input.txt”,输出“output.txt”。运行时待转换的txt文件需要和py文件在同一目录内。
import re def convert_timecode(line): if "-->" in line: # Split the line into two parts using the arrow parts = line.strip().split(" --> ") # Process each part separately new_parts = [] for i, part in enumerate(parts): if i == 0: # For the first timecode, insert a comma between the first two characters part = part[0] + "," + part[1:] else: # For the second timecode, remove the first character part = part[1:] # Remove the last digit from the milliseconds part hours, minutes, seconds_milliseconds = part.split(":") seconds, milliseconds = seconds_milliseconds.split(",") milliseconds = milliseconds[:-1] # Remove the last digit # Replace the last colon before the milliseconds part with a dot new_part = f"{hours}:{minutes}:{seconds}.{milliseconds}" new_parts.append(new_part) # Join the parts back together using a comma new_line = ",".join(new_parts) return new_line + "\n" else: # If the line doesn't contain an arrow, return it unchanged return line # Replace 'input.txt' with the name of your input file, and 'output.txt' with the name of your output file. with open('input.txt', 'r', encoding='utf-8') as infile, open('output.txt', 'w', encoding='utf-8') as outfile: for line in infile: outfile.write(convert_timecode(line))
不过还是需要手动对照翻译复制粘贴进行调轴,就是比以前手动改时间轴格式方便了些。不知道有没有一键将srt直接按照格式转为ass的软件,甚至实现普通字幕改特效字幕。
转换前srt格式时间轴
转换后ass格式时间轴
到此这篇关于Python实现视频字幕时间轴格式转换的示例的文章就介绍到这了,更多相关Python视频字幕时间轴转换内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!