Zeiten aus einer Untertitel Datei versetzen

19/01/2015 - 00:07 von Andreas Kohlbach | Report spam
Ich weiß, dass die meisten Medien-Player eine Funktion haben, Untertitel
vor- oder zurückversetzt anzuzeigen. Ich hàtte aber doch gerne einen Ansatz,
wie ich in Linux (bash mit sed, auch awk oder perl) alle angegebenen
Zeiten um sagen wir 10 Sekunden nach hinten schiebe.

Hier mal eine Auszug aus einer dieser *.srt Dateien.




358
00:29:12,840 --> 00:29:15,884
I'm sure you do.
I'm just not the partner type.

359
00:29:18,360 --> 00:29:20,820
What does it take to be a
good detective anyway?

360
00:29:20,920 --> 00:29:22,281
A strong bladder.




Diese bestehen aus reinem Text, haben in der ersten Zeile eines "Records"
die laufende Nummer, dann die Zeile um die es geht, in der zu erst die
Zeit steht, wann der Text eingeblendet werden soll, dann "-->" und dann,
wann er wieder ausgeblendet werden soll. Dann (auch mehrzeilig) der Text
selbst.

Dann eine leere Zeile. Diese könnte allerdings auch die erste Zeile des
Records sein, das konnte ich nicht heraus finden. Und es müsste für das
Problem auch egal sein. Die "" habe ich der Übersichtlichkeit halber
eingefügt, gehören also nicht zur Datei.


Vorgehen: alle Zeilen finden, die ein "-->" haben (und hoffen, dass das
nie im Text vor kommt). Wie dann aber in einer Zeile mit zwei Zeiten in
Feldern die Addition von 10 Sekunden in *beiden* ausführen?
Andreas

I wish my grass was emo. Then it would cut itself.
 

Lesen sie die antworten

#1 Hergen Lehmann
19/01/2015 - 00:29 | Warnen spam
Am 19.01.2015 um 00:07 schrieb Andreas Kohlbach:

Ich weiß, dass die meisten Medien-Player eine Funktion haben, Untertitel
vor- oder zurückversetzt anzuzeigen. Ich hàtte aber doch gerne einen Ansatz,
wie ich in Linux (bash mit sed, auch awk oder perl) alle angegebenen
Zeiten um sagen wir 10 Sekunden nach hinten schiebe.



Muss es mit klassischen Unix-Tools passieren oder darf es auch ein
spezielles Programm sein? Wenn ja, schau dir mal "aegisub" an.

Hergen

Ähnliche fragen