Untertitel und PMT Reihenfolge

Begonnen von Djfe, August 17, 2013, 21:39:39

« vorheriges - nächstes »

Djfe

Ich wollte mal fragen, ob es eine Möglichkeit gibt die vom TSD erstellten .srt Untertitel mit der .ts Datei einzulesen, wenn man die .ts Datei weiter schneiden möchte, damit sie auch mit geschnitten werden?

Praktisch wäre es auch wenn man die Untertitel des Videotextes (statt als .srt Untertitel auszugeben) in DVB-Untertitel umwandeln könnte und als Stream der .ts Datei beifügen könnte
dann könnte man die Untertitel auch mit dem VLC Media Player nutzen...


Letztens hatte ich eine Aufnahme deren zweite englische Audiospur nicht in die PMT eingetragen war, hab sie durch den TSD eintragen lassen
doch obwohl sie eine höhere pid hatte als die deutsche Sprache stand sie im PMT vor der deutschen Sprache
In der Reihenfolge habe ich die deutsche Sprache natürlich dann als 1. festgelegt
doch nachher beim Abspielen im VLC musste ich feststellen, dass obwohl die deutsche Spur an erster Stelle steht, er die englische standardmäßig als erste auswählt und abspielt
also vermutlich, weil sie in der PMT oberhalb der deutschen Spur liegt!? (zumindestens im Fenster "Stream Patch")
kann ich das manuell beheben, indem ich die PIDs der Spuren tausche, oder verursacht das Probleme?

Was mir noch fehlt:
Man kann die Aufnahmedetails nicht mit Strg + A komplett markieren, um sie zu kopieren

ErichV

Zitat von: Djfe am August 17, 2013, 21:39:39
Ich wollte mal fragen, ob es eine Möglichkeit gibt die vom TSD erstellten .srt Untertitel mit der .ts Datei einzulesen, wenn man die .ts Datei weiter schneiden möchte, damit sie auch mit geschnitten werden?

Der *.ts Container unterstützt leider keine *.srt Untertitel.
1 x Humax ESD-160S, 1x TechniSat TechniBox S4, 2x TechniSat Skystar USB 2 HD CI, Nvidia Shield TV Media Streaming Player, TS Doctor 4.1.2, DVBViewer Pro 7.3.0.0 mit DVBViewer Media Server 3.3.0.0

Djfe

Zitat von: ErichV am August 17, 2013, 21:56:43
Der *.ts Container unterstützt leider keine *.srt Untertitel.
so meinte ich das nicht :)
das der nicht unterstützt wird weiß ich
ich meinte der TSD soll sie einlesen und mitschneiden und dann im Ordner des gefixten .ts Films speichern (-> er soll einfach nur die Zeiten anpassen)

ErichV

Zitat von: Djfe am August 18, 2013, 13:44:57
ich meinte der TSD soll sie einlesen und mitschneiden und dann im Ordner des gefixten .ts Films speichern (-> er soll einfach nur die Zeiten anpassen)

OK, ich verstehe schon was du meinst.
Ja, die Idee finde ich ganz gut. Allerdings sollte man auch die Möglichkeit haben, bei den Untertiteln eine Vor- und Nachlaufzeit einzustellen (bei mir werden nämlich auf bestimmten Sendern bei plötzlichem Sendeausstieg die letzte/-n Untertiteleinblendung/-en nicht mehr in die *.srt Datei geschrieben [z. B. bei Spielfilmaufnahmen von ORF eins]). Hier musste ich bisher immer mit einem Untertitel-Editor nachbessern.  :(
1 x Humax ESD-160S, 1x TechniSat TechniBox S4, 2x TechniSat Skystar USB 2 HD CI, Nvidia Shield TV Media Streaming Player, TS Doctor 4.1.2, DVBViewer Pro 7.3.0.0 mit DVBViewer Media Server 3.3.0.0

Mam

Also Mädels, kommt mal wieder runter von euren Palmen.  ;D

Das geht (natürlich) überhaupt gar nicht, zumindest, so, wie Ihr es euch in euren Sommernachtsphantasien einbildet  ;D

Im orginalen TS File sind keine Zeiten (für die Untertitel) drin, entweder ist eine TTX Seite 150 (z.B.) mit Inhalt da (bzw. DVB UT sind zu einer Zeit X vorhanden), oder die Seite ist halt leer (bzw. DVB UT Bild ist gerade NICHT VORHANDEN).

Aus diesen Ein/Aus Zyklen errechnet der TSD beim finalen Durchlauf die Zeiten, die er hinterher in die SRT Datei einträgt. Und die sind natürlich damit automatisch bezogen relativ auf die anfängliche Schnittposition.

Schneidet man später erneut an diesen Dateien rum, stimmt natürlich NIX MEHR. Mit viel Rechenaufwand könnte man das zwar wieder gerade rücken, aber das wäre (mal wieder) ein Pass mehr, dauert ewig und enthält die große Wahrscheinlichkeit, dass Ton/Bild/Text wieder unsynchron werden.

Machts doch viel einfacher:
Lasst einfach den Teletext Stream in der TSD Ausgabedatei DRIN!
(jaja, da war ja so ein Knauserkopp... wir erinnern uns...)
Kommt man später wirklich nochmal auf die Idee, diese Datei erneut zu schneiden, ist damit das Problem gleich mit vom Tisch. Der TSD generiert beim nächsten Schnitt eine neue SRT Datei und die ist relativ zum neuen Schnitt und es werden auch alle nachträglichen Auslassungen mit berücksichtigt.
Die ursprüngliche Frage stellt sich also gar nicht, dieser Threat ist überflüssig  ;D

Friede, Freude, Eierkuchen  :P

Derrick

ZitatIm orginalen TS File sind keine Zeiten (für die Untertitel) drin..
..doch, es gibt time stamps.
ZitatLasst einfach den Teletext Stream in der TSD Ausgabedatei DRIN!
..ganz genau! :)

Mam

Zitat von: Derrick am August 20, 2013, 11:26:53
..doch, es gibt time stamps.
Weck keine Begehrlichkeiten  ;D
Sonst musst Du kompliziert erklären, warum die trotzdem bei dem Problem nix nützen :-) :-) :-)

statt der Schnibbelei hier sollten die UT mal lieber endlich BUNT werden  8)

Djfe

warum soll das so schwer sein?, der tsd kann doch für jeden einzelnen Frame den genauen Zeitpunkt berechnen, also lässt sich auch der Abstand der zwischen zwei Schnittpunkten steht berechnen
man nimmt sich die .srt Datei, alle Untertitel werden im Array gespeichert
alle Untertitel die vor dem ersten Teil der wegfällt erscheinen bleiben gleich, alle während des rausgeschnittenen Teils fallen schlauerweise weg und alle Untertitel danach erhalten einen Offset, damit sie früher beginnen
das ganze bis zum zweiten Schnittbereich der rausgenommen wird der erhält einen anderen offset bereich nämlich (-Dauer des ersten rauszuschneidenden Teils - Dauer des zweiten rauszuschneidenden Teils) usw.

man kann die .srt Datei also in Abschnitte aufteilen, damit nichts durcheinander gerät

mögliche Umsetzung:
im Prinzip also ein Array mit den jeweiligen Abschnitten drin, diese Abschnitte sind Objekte mit zwei variablen: 1. dem Offset des Bereichs/Abschnitts und 2. ein Array mit den Untertiteln (welche wiederum ein Objekt sind mit Eigenschaften wie Zeitpunkt, Farbe, Text, etc.)

die Anzahl der Abschnitte errechnet man wie folgt:
2 x die Anzahl der gesetzten Schnittbereiche + 1
bei zwei Schnittbereichen also 5 Abschnitte (01010, wobei einige davon komplett leer sein können (Anfang oder Ende, weil dort nichts weggeschnitten wurde)

nun markiert man die rauszuschneidenden Teile als zu löschen,
fügt allen nachfolgenden Abschnitten im Array einen negativen Offset der Dauer des gelöschten Abschnittes hinzu
und macht das für alle folgenden zu löschenden Abschnitte
(durchgehen kann man das Array natürlich ganz einfach mit einer For-Schleife)

am Ende vor dem Abspeichern nimmt man sich die übrigen Abschnitte vor und trägt sie in die neue .srt Datei ein, wobei bei dem Schreiben des Erscheinungszeitpunktes nun der Offset des Gesamtabschnittes vom Zeitpunkt der Untertitel abgezogen wird (da er schon negativ ist: hier addieren und nicht doppelt subtrahieren)

(hoffentlich war meine Verwendung des Begriffes Offset hier überhaupt richtig)

Mam

#8
Zitat von: Djfe am August 21, 2013, 12:48:04
warum soll das so schwer sein?, der tsd kann doch für jeden einzelnen Frame den genauen Zeitpunkt berechnen...

Ja, kann man  ;D
Braucht man aber gar nicht, wenn Du einfach den Teletext drin lässt  8)

Also, was ist einfacher?
a) komplizierte Berechnungen durchführen und daran zu verzweifeln (rechne Dir mal den Unterschied im Zeitraster zwischen einem Frame und der Zeiteinheit der UT aus... der Rundungsfehler wird Dein ständiger Begleiter sein...).
b) nichts tun ausser dem Anwender ein wenig Plattenplatz opfern zu lassen.

Sicherlich eine echt schwere Entscheidung...
seeehr schwer...

(PS: so als kleine Entscheidungshilfe: ein Programmierer ist erstmal von Natur aus FAUL, sonst wäre er nicht auf die Idee gekommen, die komplizierten Berechnungen einer Maschine überlassen zu wollen)
(PPS: kennst Du K.I.S.S. ? ? ? (keep it simple and stupid))

Derrick

..ja, erst einen srt erzeugen dann den ts schneiden und zum schluss die entsprechenden untertitel aus dem srt zeitrichtig wieder einfügen, ist durchs auge in die brust und total unsinnig.

Schneide erst den ts und extrahiere aus der geschnittenen datei einen srt. Dann passt es, oder habe ich was falsch verstanden?

Djfe

OK dann wäre die erste Frage geklärt, nun die weiteren Fragen die ich noch hatte :)
Zitat von: Djfe am August 17, 2013, 21:39:39
Praktisch wäre es auch wenn man die Untertitel des Videotextes (statt als .srt Untertitel auszugeben) in DVB-Untertitel umwandeln könnte und als Stream der .ts Datei beifügen könnte
dann könnte man die Untertitel auch mit dem VLC Media Player nutzen...

Letztens hatte ich eine Aufnahme deren zweite englische Audiospur nicht in die PMT eingetragen war, hab sie durch den TSD eintragen lassen
doch obwohl sie eine höhere pid hatte als die deutsche Sprache stand sie im PMT vor der deutschen Sprache
In der Reihenfolge habe ich die deutsche Sprache natürlich dann als 1. festgelegt
doch nachher beim Abspielen im VLC musste ich feststellen, dass obwohl die deutsche Spur an erster Stelle steht, er die englische standardmäßig als erste auswählt und abspielt
also vermutlich, weil sie in der PMT oberhalb der deutschen Spur liegt!? (zumindestens im Fenster "Stream Patch")
kann ich das manuell beheben, indem ich die PIDs der Spuren tausche, oder verursacht das Probleme?

Was mir noch fehlt:
Man kann die Aufnahmedetails nicht mit Strg + A komplett markieren, um sie zu kopieren

Mam

#11
Zitat von: Djfe am August 24, 2013, 02:05:07
Praktisch wäre es auch wenn man die Untertitel des Videotextes (statt als .srt Untertitel auszugeben) in DVB-Untertitel umwandeln könnte und als Stream der .ts Datei beifügen könnte
dann könnte man die Untertitel auch mit dem VLC Media Player nutzen...
Da es eigentlich GAR KEINE Programme gibt, die mit DVB-Untertiteln umgehen können (außer sie abzuspielen), ist das auch nicht wirklich eine gute Idee.
VLC spielt SRT Dateien einwandfrei ab, allerdings nicht zusammen mit TS Dateien.
Auch hier ist die Lösung wieder ganz einfach: Du brauchst KEINE separate UT Datei irgendwelcher Art, LASS EINFACH DEN VIDEOTEXT DRIN !!!
VLC kann die UT aus dem VT selber dekodieren und anzeigen (sogar IN FARBE!).

Zitat
Letztens hatte ich eine Aufnahme deren zweite englische Audiospur nicht in die PMT eingetragen war, hab sie durch den TSD eintragen lassen
doch obwohl sie eine höhere pid hatte als die deutsche Sprache stand sie im PMT vor der deutschen Sprache
In der Reihenfolge habe ich die deutsche Sprache natürlich dann als 1. festgelegt
doch nachher beim Abspielen im VLC musste ich feststellen, dass obwohl die deutsche Spur an erster Stelle steht, er die englische standardmäßig als erste auswählt und abspielt
also vermutlich, weil sie in der PMT oberhalb der deutschen Spur liegt!? (zumindestens im Fenster "Stream Patch")
kann ich das manuell beheben, indem ich die PIDs der Spuren tausche, oder verursacht das Probleme?
Die Nummer der Spur hat keinerlei Funktion. Sie ist nur pro Spur anders, und vielleicht sortieren einige Programme die Stream mit aufsteigenden Nummern, beim Abspielen ist das aber völlig egal.
Dort zählt nur das "Standard Flag" einer Spur. Pro Datei sollte jeweils nur EINE Video, Audio und UT Spur als "Standard" markiert sein, genau DIE wird dann abgespielt. Hat man irrtümlich mehr als eine (oder auch keine) Spur als Standard markiert, würfeln die Player aus. Manche nehmen dann die Tonspur der "Heimatsprache", manche mögen nach der aufsteigenden Nummer entscheiden, das macht jeder anders. Offensichtlich hast Du die englische Spur als Standard markiert und somit ihr Abspielen angefordert.

(oops, bevor jemand meckert: Bei UT Spuren sollte besser KEINE mit dem Standard Flag markiert werden, sonst werden IMMER UT beim Start des Players eingeschaltet und man muß sie immer nervigerweise manuell deaktivieren.)
(und bei Videospuren ist das Flag meist egal, da es ja eigentlich immer nur eine Videospur gibt)


Djfe

wie stelle ich die Audiospur denn als Standard ein  8)
die Reihenfolge habe ich ja schon so geändert, dass die deutsche Sprache die 1 hat, dennoch höre ich den englischen Ton...

ErichV

Zitat von: Mam am August 24, 2013, 03:11:25
oops, bevor jemand meckert: Bei UT Spuren sollte besser KEINE mit dem Standard Flag markiert werden, sonst werden IMMER UT beim Start des Players eingeschaltet und man muß sie immer nervigerweise manuell deaktivieren.

Naja, bei Forced Subtitles (z. B. bei Herr der Ringe, wenn die Personen auf Elbisch reden), würde ich die UT auf Standard setzen, bei optionale UT hingegen nicht.

Zitat von: Djfe am August 24, 2013, 12:29:30
wie stelle ich die Audiospur denn als Standard ein  8)

Soweit ich weiß, unterstützt der *.ts Container keine Standard-Flags.

Zitat von: Djfe am August 24, 2013, 12:29:30
die Reihenfolge habe ich ja schon so geändert, dass die deutsche Sprache die 1 hat, dennoch höre ich den englischen Ton...

Welche Tonspur ausgewählt wird, entscheidet der Player nach individuellen Kriterien selbst. Meistens dürften sich die Player für jene Tonspur entscheiden, die in der PMT ganz oben steht.
1 x Humax ESD-160S, 1x TechniSat TechniBox S4, 2x TechniSat Skystar USB 2 HD CI, Nvidia Shield TV Media Streaming Player, TS Doctor 4.1.2, DVBViewer Pro 7.3.0.0 mit DVBViewer Media Server 3.3.0.0

Djfe

kann ich denn die pmt nummern der beiden spuren problemlos tauschen?  :)


www.cypheros.de