Comment fusionner deux fichiers * .srt

11

Veuillez voir cette question.

Je vient de fusionner deux fichiers AVI cd1.aviet cd1.avien movie.aviutilisant:

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

Le problème est que j'ai dû sous-titrer des fichiers liés aux premiers avifichiers:

cd1.srt
cd2.srt

Au début, j'ai simplement essayé de concaténer les fichiers ensemble:

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

Mais cela a causé des ravages avec les sous-titres ... des suggestions?

Stefan
la source

Réponses:

19

Cela est assez banal, car les .srtfichiers ne sont que des fichiers texte contenant des horodatages - tout ce que vous devez faire est d'ajouter la longueur de cd1.avil'heure de tous les sous-titres cd2.srt. Vous pouvez trouver la longueur de cd1.aviavec ffmpeg:

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

Et puis ajoutez cela à l' cd2.srtaidesrttool

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

Ensuite, vous devriez juste pouvoir concaténer les fichiers ensemble et renuméroter:

srttool -r -i cd.srt

J'ai choisi srttoolparce que dans Arch il est livré avec transcode, que vous avez installé pour cette question ; il existe de nombreux autres outils qui peuvent également déplacer et fusionner des .srtfichiers, et au moins un site Web, submerger

Michael Mrozek
la source
+1 merci micheal, j'apprécie vraiment vos efforts avec mes questions
Stefan
1
Merci! Cela a très bien fonctionné. Le seul problème que j'ai trouvé est que srttool met la sortie sur la ligne de commande. En fait, je ne modifie pas le fichier que vous souhaitez. Un peu de redirection (>) et WHAMMO, ça marche parfaitement. Cela a été d'une grande aide et merci beaucoup.