Command-Line

如何合併兩個 *.srt 文件

  • February 21, 2022

請看這個問題。

我剛剛合併了兩個 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

但這對字幕造成了嚴重破壞……有什麼建議嗎?

這非常簡單,因為.srt文件只是包含時間戳的文本文件——您需要做的就是cd1.avicd2.srt. cd1.avi您可以找到with的長度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

引用自:https://unix.stackexchange.com/questions/2283