cd1.srtとcd2.srtという2つのsrtファイルがあります。残念ながら、srtoolはもはやどこでも利用できません。これは数年前に提起された同じ質問に対する答えでした。
しかし、まだ十分ではありません。頑張ったhttps://tracker.debian.org/pkg/pysrt、srtファイルの結合を除くすべての操作を実行できます。 :(
githubも探してみましたが、このような項目だけを見つけました。
https://github.com/malfroid/merge-srt-subtitles
より良い方法をご存知の方は、共有してください。また、いくつかのオンラインソリューションも見てきましたが、残念ながらすべてが成功しませんでした。
答え1
これが私がする方法です:
まず、最初のsrtファイルの終了タイムスタンプを確認しました。私の場合、最初のタイムスタンプの直後に2番目のタイムスタンプが開始されたため、移動時間範囲を簡単に推論できました。
これにより、あなたの答えに対するコメントで@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
これで、新しくマージされたビデオファイルで字幕が正しく機能します!