web-dev-qa-db-ja.com

2つの* .srtファイルをマージするにはどうすればよいですか

this の質問を参照してください。

2つのaviファイルをマージしましたcd1.aviおよびcd1.aviからmovie.avi使用:

avimerge -o movie.avi -i cd{1,2}.avi

問題は、最初のaviファイルにリンクされたファイルをsubtitleしなければならなかったことです。

cd1.srt
cd2.srt

最初、私は単にファイルを一緒に連結しようとしました:

cat cd{1,2}.srt > movie.srt

しかし、それは字幕に大混乱を引き起こしました...何か提案はありますか?

11
Stefan

.srtファイルはタイムスタンプを含む単なるテキストファイルであるため、これは非常に簡単に実行できます。必要なのは、cd1.aviのすべての字幕の時間にcd2.srtの長さを追加することだけです。 cd1.aviの長さはffmpegで確認できます。

ffmpeg -i cd1.avi  # Look for the Duration: line

次に、srttoolを使用してcd2.srtに追加します

srttool -d 12345 -i cd2.srt  # 12345 is the amount to add in seconds

または:

srttool -a hh:mm:ss -i cd2.srt  # The first subtitle will now start at hh:mm:ss

次に、ファイルを連結して番号を付け直すことができます:

srttool -r -i cd.srt

Archにはsrttoolが付属しているので、transcodeを選びました この質問 ; .srtファイルをシフトしてマージできる他のツールもたくさんあり、少なくとも1つのWebサイト submerge

19
Michael Mrozek

私はずっと前にこれをオンラインツールとして作成しましたが、いくつかの問題のために失われました。私は今このツールを復活させ始めました、そしてあなたはそれを下で見つけることができます http://srtsubmerge.webpgr.com/ それはまだ完全には終わっていませんが、あなたは改善を期待するか私に思い出させることができます;-)

0
select