Как объединить два файла * .srt

11

Пожалуйста, посмотрите этот вопрос.

Я только что слил два файла 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 спасибо micheal, очень ценю ваши усилия с моими вопросами
Стефан
1
Спасибо! Это сработало отлично. Единственная проблема, которую я обнаружил, заключается в том, что srttool помещает вывод в командную строку. Я на самом деле не изменяю файл, который вы хотите. Немного перенаправления (>) и WHAMMO, работает отлично. Это было огромной помощью и большое спасибо.