Como mesclar dois arquivos * .srt

11

Por favor, veja esta pergunta.

Eu tenho apenas fundiu dois arquivos AVI cd1.avie cd1.avipara movie.aviusando:

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

O problema é que eu tive que legendar arquivos vinculados aos primeiros aviarquivos:

cd1.srt
cd2.srt

No começo, tentei simplesmente concatenar os arquivos:

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

Mas isso causou estragos nas legendas ... alguma sugestão?

Stefan
fonte

Respostas:

19

Isso é feito de maneira trivial, já que os .srtarquivos são apenas arquivos de texto que contêm carimbos de data / hora - tudo o que você precisa fazer é adicionar o comprimento cd1.aviaos horários de todas as legendas cd2.srt. Você pode encontrar o comprimento de cd1.avicom ffmpeg:

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

E depois adicione isso ao cd2.srtusosrttool

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

ou:

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

Então você deve conseguir concatenar os arquivos juntos e renumerar:

srttool -r -i cd.srt

Eu escolhi srttoolporque no Arch ele vem com transcode, que você instalou para esta pergunta ; existem muitas outras ferramentas que também podem alterar e mesclar .srtarquivos, e pelo menos um site, submergir

Michael Mrozek
fonte
+1 graças Micheal, realmente aprecio seus esforços com as minhas perguntas
Stefan
1
Obrigado! Isso funcionou muito bem. O único problema que encontrei é que o srttool coloca a saída na linha de comando. Na verdade, eu não modifico o arquivo que você deseja. Um pequeno redirecionamento (>) e WHAMMO, ele funciona perfeitamente. Esta foi uma grande ajuda e muito obrigado.