2つの* .srtファイルをマージする方法


11

こちらの質問をご覧ください。

私は2つのaviファイルcd1.aviをマージcd1.aviしてmovie.avi使用します:

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

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

cd1.srt
cd2.srt

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

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

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

回答:


19

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

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

そしてそれをcd2.srt使用に追加しますsrttool

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

私が選んsrttoolだのは、Archにはtranscodeこの質問のためにインストールしたが付属しているからです。.srtファイルをシフトしてマージできる他のツールもたくさんあり、少なくとも1つのWebサイトはサブマージします


+1 michealに感謝します。私の質問であなたの努力を本当に感謝します
Stefan

1
ありがとう!これはうまくいきました。私が見つけた唯一の問題は、srttoolが出力をコマンドラインに出力することです。私は実際にあなたが望むファイルを変更しません。少しのリダイレクト(>)とWHAMMO、それは完全に動作します。これは大きな助けになり、ありがとうございました。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.