Jump to content

Wiedergabe von Videos im TS Container mit externen SRT Untertitel


botti 56

Recommended Posts

Ich habe festgestellt, dass bei der Wiedergabe von TS-Videos mit externen SRT Untertiteln, die Untertitel asynchron werden, vor allem wenn man pausiert, evtl. spult und wieder weiter laufen lässt.

Die Aufnahmen sind meist mit dem DVBViewer, aber auch mit einem Topfield gemacht worden und danach mit dem TS-Doctor geschnitten und die Untertitel als SRT extrahiert worden.

 

Sonderbarerweise passiert das nicht beim Abspielen von Videos im MP4 Container und externen SRT Untertitel (diese stammen zum größten Teil aus den Mediatheken der ÖR - mit MediathekView gezogen).

 

MKV habe ich bisher nicht probiert - ich meine gelesen zu haben, dass das der DVBViewer nicht offiziell unterstützt.

 

Bisher habe ich die Videos mit VLC oder MediaPlayer Classic abgespielt, dort passiert das nicht.

 

Ich wollte ganz gerne der DVBViewer benutzten, da ich das WIFI Remote Plugin ganz pfiffig finde.

 

PS: Bild und Ton sind natürlich synchron.

Edited by botti 56
Typo
Link to comment
vor 1 Stunde schrieb botti 56:

Ich habe festgestellt, dass bei der Wiedergabe von TS-Videos mit externen SRT Untertiteln, die Untertitel asynchron werden, vor allem wenn man pausiert, evtl. spult und wieder weiter laufen lässt.

 

Da hast du den DVBViewer auf dem falschen Fuß erwischt, bzw. bist auf einen bekannten Schwachpunkt gestoßen. Die Berechnung der zeitlichen Wiedergabeposition ist bei TS-Dateien relativ ungenau. Es liegt daran, dass der DVBViewer anfangs  eine durchschnittliche Datenrate berechnet

 

Durchschnittliche Datenrate = Dateilänge / Spieldauer

 

und daraus die aktuelle zeitliche Position bei der Wiedergabe

 

Zeitliche Position = Aktuelle Dateiposition / Durchschnittliche Datenrate

 

Diese Vorgehensweise ist sehr einfach und effizient, aber bei einer variablen Videobitrate ist das Ergebnis natürlich mehr oder weniger ungenau und passt nicht exakt zu den Zeitangaben in der SRT-Datei.

 

Abhilfe ist wahrscheinlich möglich, indem du den DVBViewer Quellfilter unter Optionen -> Wiedergabe-Komponenten -> DVBViewer Filter für das TS-Format abwählst. Ich nehme an, dass dann der (wahrscheinlich) zum Zuge kommende LAV Source Filter die zeitliche Position aus den in der TS-Datei enthaltenen Zeitstempeln ableitet, die zu den SRT-Untertiteln passen dürften. Allerdings musst du dafür eventuell andere Nachteile in Kauf nehmen. Das bleibt auszuprobieren - jede Komponente hat spezifische Stärken und Schwächen.

 

vor 1 Stunde schrieb botti 56:

Die Aufnahmen sind meist mit dem DVBViewer, aber auch mit einem Topfield gemacht worden und danach mit dem TS-Doctor geschnitten und die Untertitel als SRT extrahiert worden.

 

Warum? Was waren es ursprünglich für Untertitel? Die Wiedergabeschiene mit dem DVBViewer Filter ist nämlich eigentlich sehr gut darin, in einem TS eingebettete Untertitel synchron wiederzugeben, egal ob Teletext- oder DVB-Untertitel. Allerdings gibt es leider seit dem 7.1.1 Release einen Bug, der das Abspielen von Teletext-Untertiteln aus einer TS-Aufnahme verhindert (bereits in internen Betas gefixt). Ist das der Grund?

 

Link to comment
vor 49 Minuten schrieb Griga:

Abhilfe ist wahrscheinlich möglich, indem du den DVBViewer Quellfilter unter Optionen -> Wiedergabe-Komponenten -> DVBViewer Filter für das TS-Format abwählst. Ich nehme an, dass dann der (wahrscheinlich) zum Zuge kommende LAV Source Filter die zeitliche Position aus den in der TS-Datei enthaltenen Zeitstempeln ableitet, die zu den SRT-Untertiteln passen dürften. Allerdings musst du dafür eventuell andere Nachteile in Kauf nehmen. Das bleibt auszuprobieren - jede Komponente hat spezifische Stärken und Schwächen.

 

Danke für die aufschlussreichen Infos - schafft etwas Klarheit.

Zum Vorschlag oben: Ein erster schneller Test sieht gut aus. Nach Abwahl von TS-Format im DVBViewer Filter waren die Asynchronitäten (blödes Wort) nicht mehr feststellbar - ich bleibe dran und achte mal auf Seiteneffekte.

 

vor 53 Minuten schrieb Griga:

Warum? Was waren es ursprünglich für Untertitel?

 

Die ursprünglichen (eingebetteten) Untertitel waren meist DVB-Untertitel (und auch oft SRT zusätzlich). Das ich nur die SRT-Untertitel genommen habe, war historisch bedingt. Neben den PC-basierenden Software-Playern VLC und MPC-HC habe ich auch noch einen WD-TV von Western Digital, der allerdings mittlerweile altersbedingt Schwächen zeigt. Dieser konnte mit SRT-Untertiteln am Besten umgehen - außer dass er keine Attribute anzeigen konnte. Die musste ich mit SubTitleEdit erst entfernen.

DVB-Subtitles kann/konnte der gar nicht.

 

Link to comment
vor 12 Minuten schrieb botti 56:

Die ursprünglichen (eingebetteten) Untertitel waren meist DVB-Untertitel (und auch oft SRT zusätzlich).

 

Klingt wenig plausibel. DVB-Untertitel sind grafische Untertitel, d..h Bilder. Es bräuchte OCR, um sie in SRT-Text umzuwandeln. Die Einbettung von SRT selbst in einen TS ist weder spezifiziert noch mir jemals begegnet. In der nächsten Version wird der DVBViewer das verwandte Format WebVTT unterstützen und in TS einbetten, das manche Sender für ihre Internet-Streams verwenden, aber auch dafür gibt es keine Spezifikationen, so dass der DVBViewer zu einer proprietären Löung greifen muss, die nur er selbst versteht.

 

Ein SRT-Export kann im Grunde nur aus (ursprünglichen) Teletext-Untertiteln resultieren, es sei denn, der TS-Doctor hat eine OCR-Engine an Bord.

 

P.S. Gerade im Web ermittelt: Der TS Doctor kann tatsächlich OCR  :blink: Das hätte ich nicht gedacht...

 

Link to comment
vor 15 Minuten schrieb Griga:

Gerade im Web ermittelt: Der TS Doctor kann tatsächlich OCR  :blink: Das hätte ich nicht gedacht...

 

Ja, der TS-Doctor kann das.

Wollte gerade noch ergänzen: Der DVBViewer kennt bei den SRT-Untertitel auch keine Attribute, aber macht nichts. Bei den meisten Filmen habe ich sie eh entfernt, btw. zwei Versionen erzeugt.

Leider kann das WIFI Remote Plugin beim Abspielen eines Videos die Untertitel nicht auswählen (Taste SUB ist funktionslos). Immerhin funktioniert 'Pause' und 'Play' (und einiges andere).

 

Link to comment
vor 37 Minuten schrieb botti 56:

Der DVBViewer kennt bei den SRT-Untertitel auch keine Attribute, aber macht nichts.

 

<font color=...> Tags zeigt er gnadenlos als Untertitel an, anstatt sie auszuwerten, aber das wird im kommenden Release behoben sein. Welche Attribute sind dir sonst noch begegnet, die er nicht kennt?

 

vor 49 Minuten schrieb botti 56:

Leider kann das WIFI Remote Plugin beim Abspielen eines Videos die Untertitel nicht auswählen (Taste SUB ist funktionslos).

 

Doch, kann es. Die Taste SUB öffnet das OSD Untertitelmenü (siehe Optionen -> Eingaben). Das funktioniert hier auch in allen getesteten Fällen, außer merkwürdigerweise bei einer TS-Datei mit SRT-Untertiteln. Die Ursache muss ich noch klären. Es gelingt aber über das OSD Kontextmenü (OSD Blau). Probiere das mal.

 

Link to comment
vor 40 Minuten schrieb Griga:

Die Ursache muss ich noch klären.

 

Schon gefunden und behoben. Das OSD Untertitelmenü ließ sich nicht aufrufen, wenn es nur SRT-Untertitel gab.

 

Willst du eine aktuelle DVBViewer Beta zum testen? Feedback wäre willkommen, da sich hinsichtlich (SRT-)Untertitel einiges geändert hat.

 

Link to comment

An Betas bin ich immer interessiert ☺️

 

Ich habe zwischendurch mal selbst recherchiert, wobei ich auf die Schnelle keine detaillierte Beschreibung des SubRip (.srt) Formats gefunden habe.
Der Link hier beschreibts das Format nur rudimentär (https://docs.fileformat.com/video/srt/) und die Wikipedia-Seite (https://en.wikipedia.org/wiki/SubRip) verweist auf den Entwickler in Tschechien, dessen Website nicht mehr existiert (zuggy.wz.cz/) - zumindest reichen meine Sprachkenntnisse nicht, um weiter zu kommen (ich glaube die wollten mir Webspace verkaufen).

 

Ich bin allerdings im VideoLan-Forum auf einen alten Eintrag gestoßen (https://forum.videolan.org/viewtopic.php?f=7&t=49774), in  dem sich ein Forent (ale5000) ziemlich Gedanken zum SubRip-Format gemacht hat und Testfiles mit allen möglich Tags zum Testen erstellt hat (https://ale5000.altervista.org/subtitles.htm).


Ich habe mal eines der .srt-Files dem MPC-HC zum Fraß vorgeworfen - der konnte auch nicht alles anzeigen - der DVBViewer leider noch weniger (eigentlich nur normalen Text - die Tags für Bold, Italic und Underscore irgnoriert er wenigstens und zeigt normalen Text und nicht die Tags als Untertitel).

 

Ansonsten kann ich auf den Entwickler von SubTitleEdit verweisen (https://www.nikse.dk/). Das Programm ist für mich das Schweizer Messer für die Bearbeitung (und Umwandlung) von Untertiteln. Vielleicht rückt der was raus.

 

Link to comment

Danke für die Hinweise.

 

vor 1 Minute schrieb botti 56:

die Tags für Bold, Italic und Underscore irgnoriert er wenigstens und zeigt normalen Text und nicht die Tags als Untertitel

 

Spielen diese Tags in der Praxis eine wichtige Rolle? Kommen sie öfters vor?

 

Farben kann der DVBViewer inzwischen umsetzen, aber nur zeilenweise, keine Farbwechsel innerhalb einer Zeile. Das macht beim Rendern allerhand zusätzliche Probleme. Bei anderen Tags verhält es sich ebenso.

 

Link to comment

Ich habe mir die Beta jetzt mal angesehen. Da sind ja einiges Neuerungen drin, die ich gar nicht testen kann (oder mich überfordern), deshalb habe ich mich nur auf die Untertitel beschränkt.

Ich hab dem DVBViewer mal das o.g. Testfile reingewürgt. Das ist natürlich die ultimative Herausforderung und mit all den möglichen Tags in der Praxis oft irrelevant.

Die wenigsten Player können/erkennen alle Tags.

 

Die meisten Tags, die der DVBViewer nicht interpretiert, werden gefiltert und damit nicht angezeigt (nur der Text) - das ist schon mal gut.

Ausnahme sind Positions-Tags - z.B. {\an8}This text should be at the top and horizontally centered

zeigt er mit an, ignoriert aber die Funktion - die Tags sollte man filtern und den Text unten mittig anzeigen.

 

Auch zeigt er die Farben, sofern per Hex-Codierung, falsch an:

<font color="#0000FF">This text should be blue</font> zeigt er rot, während

<font color=#ff0000 size=9>This text should be small and red</font> blau anzeigt (Size-Angaben ignoriert er komplett, was auch ok ist).

Grün (#00ff00) ist korrekt.

Man kann die Codes hier sehr schön testen: https://www.color-hex.com/

Text-codierte Farb-Tags werden gefiltert und als Plain-Text angezeigt; z.B.: <font color=brown>This text should be brown</font>

 

Manchmal benötigt man allerdings Farben, da sie Personen zugeordnet sind.

 

vor 20 Stunden schrieb Griga:

Spielen diese Tags in der Praxis eine wichtige Rolle? Kommen sie öfters vor?

Italic ja, Bold und Underscore eher weniger. Italic sollte er schon interpretieren.

 

Ich schau mal weiter, was ich so finde bzw. was mir auffällt und melde mich wieder.

Link to comment
On 12/21/2021 at 6:16 PM, botti 56 said:

Auch zeigt er die Farben, sofern per Hex-Codierung, falsch an:

 

Oha! Da muss RRGGBB in für die Delphi Runtime in BBGGRR umgerechnet werden. Das hatte ich nicht im Blick. Erledigt.

 

On 12/21/2021 at 6:16 PM, botti 56 said:

Text-codierte Farb-Tags werden gefiltert und als Plain-Text angezeigt; z.B.: <font color=brown>This text should be brown</font>

 

Spezifiziert sind für HTML insgesamt 140 Farbbezeichner >_<

 

https://www.w3schools.com/colors/colors_names.asp

 

Muss das wirklich sein? Es gibt schon eine ColorName -> ColorValue-Tabelle im DVBViewer, die sich jedoch auf die für WebVTT und TTML Untertitel spezifizierten Grundfarben beschränkt.

 

https://www.w3.org/TR/webvtt1/#default-text-color

https://www.w3.org/TR/2018/REC-ttml1-20181108/#style-value-namedColor

 

Ein paar zusätzliche gängige wie brown kann ich ja noch aufnehmen....

 

On 12/21/2021 at 6:16 PM, botti 56 said:

Ausnahme sind Positions-Tags - z.B. {\an8}This text should be at the top and horizontally centered

 

Wer ist denn auf die bekloppte Idee gekommen, bei SRT neben spitzen auch geschweifte Klammern zu verwenden? Das sprengt mein ganzes Parser-System, das auch WebVTT und TTML mit abdeckt. Kommen die in der Praxis wirklich vor?

 

On 12/21/2021 at 6:16 PM, botti 56 said:

Italic ja, Bold und Underscore eher weniger. Italic sollte er schon interpretieren.

 

Ich schau mal... für eine ganze Zeile geht das womöglich, aber bei einem Wechsel innerhalb einer Zeile macht es enorme Schwierigkeiten, ebenso wie bei Farben.

 

Danke jedenfalls für das Feedback! Wenn es eine neue Testversion mit Korrekturen gibt, sage ich hier Bescheid.

 

Link to comment
vor 17 Stunden schrieb Griga:

Muss das wirklich sein? Es gibt schon eine ColorName -> ColorValue-Tabelle im DVBViewer, die sich jedoch auf die für WebVTT und TTML Untertitel spezifizierten Grundfarben beschränkt.

Die Grundfarben sollten reichen - das mit <font color=brown>...</font> war nur ein Beispiel aus dem Testfile. In der Praxis kommen Mischfarben, soweit von mir beobachtet, selten vor.

 

vor 17 Stunden schrieb Griga:

Wer ist denn auf die bekloppte Idee gekommen...

Ja, das mit geschweiften Klammern ist mir auch aufgefallen. In der Praxis sehe ich sie selten bis gar nicht (außer kürzlich in einer Doku auf ZDFInfo).

Positions-Tags sollten dann komplett ignoriert werden.

 

vor 17 Stunden schrieb Griga:

Ich schau mal... für eine ganze Zeile geht das womöglich, aber bei einem Wechsel innerhalb einer Zeile macht es enorme Schwierigkeiten, ebenso wie bei Farben.

Das würde reichen. Es kommt zwar manchmal vor, das mit Italic begonnen wird und dann auf normalen Text geswitcht wird, aber wenn das ignoriert wird, passt das auch, ebenso bei Farben.

 

vor 17 Stunden schrieb Griga:

Wenn es eine neue Testversion mit Korrekturen gibt, sage ich hier Bescheid.

Danke!

Link to comment
vor 16 Stunden schrieb botti 56:

Ja, das mit geschweiften Klammern ist mir auch aufgefallen.

 

Die werden jetzt gleich beim Einlesen der Datei durch einen Präprozessor in spitze Klammern umgewandelt. Das ermöglicht im weiteren Verlauf eine einheitliche Behandlung und garantiert zumindest, dass die Tags nicht auf dem Bildschirm erscheinen.

 

Interessant ist, wie aus der SRT-Vorlage das erweiterte WebVTT entwickelt wurde, das inzwischen alle Browser mehr oder weniger unterstützen, um Web-Videos und Live-Streams mit Untertiteln wiedergeben zu können (was die DVBViewer-Testversion ebenfalls schon kann). Im Unterschied zu SRT ist das Format sauber standardisiert. Ein Artikel bei Mozilla gibt einen guten Überblick. In Zukunft wird der DVBViewer auch WebVTT-Untertiteldateien (.vtt) verarbeiten.

 

Link to comment

Inzwischen hat sich einiges bei SRT-Untertiteln getan. Farben werden nicht mehr vertauscht, Tags in geschweiften Klammern erkannt und zumindest entfernt, ein paar zusätzliche Farbbezeichner erfasst, Textattribute wie unterstrichen, fett, kursiv unterstützt (auch bei WebVTT), ebenso verschiedene Textposition mittels {\anX} Tags.

 

Perfekt ist das aber noch nicht. Insbesondere ist mir aufgegangen, dass die im DVBViewer verwendeten Programmstrukturen nicht im geringsten mit sich zeitlich überlappenden Untertiteln umgehen können. Aus der Testdatei (https://ale5000.altervista.org/subtitles.htm)

bleibt deshalb manches unsichtbar, was gleichzeitig mit anderen Untertiteln erscheinen soll. Ob sich das noch zeitnahe regeln lässt, ist fraglich.

 

Wichtig ist mir vor allem Feedback zu SRT-Features, die in der Paxis tatsächlich (öfters) vorkommen und bei denen es störend ist, wenn sie ein Player nicht richtig behandelt. Per PM gibt es eine neue Testversion!

 

Link to comment

Super, sieht sehr gut aus. Von meiner Seite passt das soweit (sogar die Positions-Tags funktionieren :thumbsup:)

 

Leider immer noch ein Problem ist, dass die .srt Untertitel (.webvtt oder andere Formate habe ich nicht getestet) asynchron werden, wenn man das .ts Video spult (vor- oder zurück), pausiert und weiterspielen lässt.

 

Wenn man linear abspielt, scheint es auf den ersten Blick zu passen.

Link to comment
vor 2 Stunden schrieb botti 56:

Leider immer noch ein Problem ist, dass die .srt Untertitel (.webvtt oder andere Formate habe ich nicht getestet) asynchron werden, wenn man das .ts Video spult (vor- oder zurück), pausiert und weiterspielen lässt.

 

Das werde ich vor dem nächsten Release mit Sicherheit nicht mehr angehen. Und nach dem Release womöglich auch nicht.

 

Erstens wäre es ein anstrengender Umbau, der zweitens auch Nachteile mit sich bringt und drittens nicht zwingend notwendig ist, weil erstens TS mit externen SRT-Untertiteln eine eher seltene Erscheinung ist (du bist der erste, der damit ankommt) und man dem zweitens leicht ausweichen kann. Wer schlau ist :innocent: lässt im Interesse maximaler Flexibilität beim Schnitt die originalen DVB-Untertitel im TS drin und benutzt sie beim Abspielen im DVBViewer. Mit im TS eingebetteten Untertiteln kommt der DVBViewer wie gesagt bestens zurecht, egal welches Format. Und zur Not kann man sich mit dem LAV Source Filter helfen.

 

Das Problem sich überschneidender Untertitel beschäftigt mich mehr. Dem kann man nämlich im DVBViewer nicht ausweichen. Außerdem betrifft es auch WebVTT und TTML und drängt sich damit als nächste Baustelle auf.

 

Vielen Dank jedenfalls für dein Feedback. Das hat jetzt für SRT- und teilweise auch WebVTT-Untertitel einiges gebracht.

 

Link to comment
vor 42 Minuten schrieb Griga:

Das werde ich vor dem nächsten Release mit Sicherheit nicht mehr angehen. Und nach dem Release womöglich auch nicht.

Schade.

 

vor 42 Minuten schrieb Griga:

Wer schlau ist :innocent: lässt im Interesse maximaler Flexibilität beim Schnitt die originalen DVB-Untertitel im TS drin und benutzt sie beim Abspielen im DVBViewer.

Ja, das werde ich in Zukunft vermutlich so handhaben (müssen). Ich hatte halt mit meinem - mittlerweile aus dem Verkehr gezogenen - WD-TV Player die wenigsten Probleme mit externen SRT-Untertiteln und deshalb noch massig Aufnahmen (die internen UT habe ich leider mit dem TS-Doctor aus den Videos raus geschmissen um die Files schlanker zu machen).

Da ich mittlerweile Videos meist mit dem Laptop am TV angeschlossen abspiele und dabei immer häufiger den DVBViewer benutze, ist mir das mit den asynchronen UTs erst aufgefallen. Die von mir auch benutzten MPC-HC (und auch VLC) haben das Problem nicht.

 

Danke auch für das schnelle Feedback!

 

PS: Ich teste mal mit MP4-Containern (oder MKV) - da lassen sich SRT-Untertitel einbetten und schau mal, wie sich er DVBViewer verhält.

Edited by botti 56
Korrrektur
Link to comment
vor 30 Minuten schrieb botti 56:

Ich teste mal mit MP4-Containern (oder MKV) - da lassen sich SRT-Untertitel einbetten und schau mal, wie sich er DVBViewer verhält.

 

Viel Spaß beim Experimentieren! :) Mit in MP4 oder MKV eingebetteten SRT hat der DVBViewer-Code nichts zu tun. Das ist allein Sache der DirectShow-Wiedergabekomponenten. Ohne zusätzlichen Untertitel-Filter wie DirectVobSub wirst du deshalb kaum auskommen. Ein Problem hierbei: Das Einarbeiten der Untertitel in das Video-Bild verhindert ohne weitere Maßnahmen hardwarebeschleunigtes Dekodieren. Oder andersherum: Wenn bereits die komprimierten Video-Frames in der Grafikkarte verschwinden, entfällt die Möglichkeit der Modifikation nach der Dekodierung. Aber eventuell lässt sich mit dem Copy Back-Modus des LAV Decoders etwas machen.

 

Wenn der DVBViewer externe SRT oder in einen TS eingebettete Untertitel  rendert, macht er das außerhalb der DirectShow-Verarbeitungskette und legt die Untertitel via OSD mit Direct3D über das Bild. Da stellen sich keine Probleme mit DXVA.

 

Link to comment
vor 21 Stunden schrieb Griga:

Viel Spaß beim Experimentieren!

Ist eins meiner Hobbies ;).

Der Workaround, oder wie auch immer man das nennen will, den Du oben angegeben hast (Abwahl des TS-Formats beim DVBViewer Filter) funktioniert ja auch (ich hatte ihn nur beim Test-System vergessen einzustellen). Damit bleiben auch die externen SRT Untertitel beim Pausieren und Spulen synchron.

 

Negative Effekte haben ich bisher noch nicht festgestellt. Der DVBViewer (Beta 7.1.2.5) läuft aktuell zu meiner Zufriedenheit.

Link to comment
vor einer Stunde schrieb botti 56:

Negative Effekte haben ich bisher noch nicht festgestellt.

 

Ein grundsätzlicher Nachteil bei Verwendung des LAV Source Filters für die Wiedergabe von TS-Dateien ist, dass der DVBViewer den Inhalt gar nicht zu sehen bekommt. Er steuert nur die Wiedergabe von außen. Deshalb bleiben z.B. Teletext-Untertitel verborgen (unterstützt LAV nicht), und DVB-Untertitel erscheinen nur mit Hilfe zusätzlicher Third Party DirectShow-Filter - siehe meinen letzten Post.

 

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...