我有两个 srt 文件,cd1.srt 和 cd2.srt。不幸的是,srtool 不再在任何地方可用,这是几年前提出的同一问题的答案。
但还是不够。我试过https://tracker.debian.org/pkg/pysrt,除了加入 srt 文件之外,它可以执行所有操作:(
我什至查找了 github 但只找到了这样的条目 -
https://github.com/malfroid/merge-srt-subtitles
如果有人知道更好的方法请分享。我也查看了一些在线解决方案,但遗憾的是所有这些都没有成功:(
答案1
我就是这样做的:
我首先检查了第一个 srt 文件的结束时间戳。就我而言,第二个时间戳的第一个时间戳紧随其后开始,因此很容易推断出移动时间跨度。
有了这个,正如@aviro 在你的答案的评论中提到的,我使用了pysrt与我上面推断的时间跨度。
pip install pysrt
srt -i shift 1h2m58s cd2.srt
然后在合并两个srt
文件之前,我们需要偏移 cd2.srt 处的子计数器以使它们正常工作。
为此,我使用此 python 脚本生成完全偏移的cd2.srt
:(将 $numX 替换为(cd1.srt 中的字幕总和)+1)
# Open the input file for reading
with open('cd2.srt', 'r') as input_file:
# Open the output file for writing
with open('cd2.output.srt', 'w') as output_file:
# Iterate over each line in the input file
for line in input_file:
# Check if the line contains a single integer
if line.strip().isdigit():
# Convert the line to an integer
number = int(line)
# Add $numX to the number
number += $numX
# Write the resulting number to the output file
output_file.write(str(number) + '\n')
else:
# Write the original line to the output file
output_file.write(line)
然后通过以下方式执行最终合并:cat cd1.srt cd2.output.srt > final.srt
现在字幕应该可以与新合并的视频文件一起正常工作!