Как объединить два файла * .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, работает отлично. Это было огромной помощью и большое спасибо.
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.