ForcedSubs4mkv - Erzwungene Untertitel reparieren

  • Motivation

    Oftmals werden bei mkvs die erzwungen Untertitel nicht angezeigt, obwohl alle deutschen Untertitel-Streams enthalten sind. Die Ursache liegt meist darin, dass das Forced-Subtitle-Flag im mkv-Header nicht gesetzt ist und der Player somit nicht zur Anzeige „gezwungen“ wird.


    Hintergrund

    Ich habe daher das Tool ForceSubs4mkv programmiert - ein Windows Command Line Tool, welches das Force-Flag für die Untertitel-Streams in mkv-Dateien automatisch oder manuell prüft/setzt/korrigiert/löscht.

    Das Tool sucht dafür nach allen mkvs in einem Verzeichnisbau, arbeitet nach den Vorgaben die Dateien ab und erstellt eine Ergebnisliste sowei eine Statistik als Bericht.

    Das wesentliche Kriterium für die automatische Bestimmung des ForcedSubs ist, die Anzahl der Frames der unterschiedlichen Untertitel-Streams. Das funktioniert im allgemeinen sehr gut. Hat das Tool Zweifel wird die Datei in der Ergebnisliste markiert - zur manuellen Nachbetrachtung. Das Tool nutzt zum Lesen und Schreiben der mkv-Tags die bekannten Programme ffprobe und mkvtoolnix.


    Mankra war so nett und hat mir beim Testen des Programms geholfen. Es läuft jetzt soweit problemlos bei uns durch, es gibt aber noch eine Liste an Feature-Requests und ein breiterer Test wäre gut um mehr Eventualitäten abzufangen.


    Zielgruppe

    Das Programm stelle ist nur registrierten Nutzer des HKV zur Verfügung.

    Wenn Interesse besteht, bitte bei mir melden.


    Anleitung

    Hier die Anleitung aus der Hilfe. Daraus sollte die Funktionsweise besser erkennbar sein.


    Beispiel einer Statistikausgabe einer ForcedSubs4Mkv „probe“-Action

    Code
    FINAL RESULTS
    Total Number of Files: 149
    Total Number of Files with Forced Subtitles: 76
    Total Number of Files to modify: 25
    Total Number of Files to Check Manually: 15
    Total Number of Errors: 1
    Total Number of Warnings: 0
    
    ERRORS/WARNINGS - Check Output for Errors and Warnings!
  • Würde ich auch gerne testen. Habe das Problem auch immer wieder, mit den Untertiteln.

    Leinwand: Selbstbau Center Stage XD, curved 5%, 3Meter Breite

    7.4.4 Atmos System

    Lautsprecher-System: 3x JBL 3730 Frontsystem, JBL 8340A Deckenlautsprecher

    Subwoofer: 4x KW-120 Bass Array | 4x JBL 2226 Kicker

    Sonstiges: Parasound Halo A31, Rotel RMB 1075, Yamaha CX A5100

  • In welcher Sprache ist Dein Tool geschrieben?

    Könnte ich den Sourcecode bekommen?

    Hintergrund:

    ich hab ein kleines Powershell Script was mir Spurnamen und Flags setzt u.a. das forced flag.

    das ist aber recht simpel mit einer config Datei für die Flags.

    Da w könnte ich deine Mimik für das forced flag gut gebrauchen.

    Falls ich es hinbekomme, würde ich es natürlich hier auch zur Verfügung stellen.

  • Ich glaub, es geht nicht eindeutig hervor, wofür das Skript gedacht ist:


    Leider wurde der Thread über die Untertitel und die Erklärung, wie die UT auf der Disc gespeichert sein können gelöscht. Es gab dort einen Link, wo Pascal dies sehr gut erklärt hat.

    Grob zusammen gefasst: Die "Forced Subtitles" liegen nicht immer als Unterspur des Haupt-Untertitels vor, sondern als eigene Haupt-UT Spur.

    "Mache MKV" kann hierbei nicht erkennen, welcher der Spuren die volle UT Spur und welche die "Forced" Spur ist, ist wird kein Forced Flag gesetzt.

    Seit ich drauf achte, ist dies bei 70 bis 80% der Filme der Fall.


    Jetzt haben wir Jahre lang die Filme gesichert, ohne drauf zu achten, über 1000 Filme wo 1/2 bis 3/4 der Filme das "Forced" Flag nicht gesetzt ist.......


    Das Script von Namor kann die ganze Sammlung scannen, anhand diverser Parameter bei einem Großteil feststellen, welche UT Spur die "Forced" Spur sein sollte und das Flag setzen.

  • Hat mal nichts mit Kodi zu tun.

    Das Tool prüft und ändert bei Bedarf das Flag "Forced Subtitle" in MKV Dateien. Wie möchtest du das in Kodi einbinden?

    Das weiß ich ja nicht-habe nur festgestellt das die erzwungenen Untertitel bei mir nicht funktionieren. Aber das ist anscheinend ein anderes Thema.

    Schade hätte mich gefreut wenn man es irgendwie „reparieren“ könnte

  • Meine Erklärung ist hier: RE: Untertitel bei MKVs


    Ich achte schon immer darauf, das korrekt auszuwählen. Man muss aber auch sagen: ja, es sind einige Filme die "betroffen" sind - die Anzahl derer, bei denen es relevant ist/im Film auffällt ist aber deutlich geringer. Größtenteils geht es um Übersetzung irgendwelcher Schilder etc.


    Es gibt aber auch Fälle, in denen außerirdische Sprache o.ä. übersetzt wird, und wenn man dann den Forced UT nicht hat wird es blöd. Deswegen achte ich schon immer darauf :-).


    Das Skript ist sicher interessant. Ich selber werde es nicht ausprobieren können weil ich sowieso nur die (richtigen) ForcedUT in meinen Daten hab. Trotzdem Danke fürs Teilen!

  • Danke, der Link war es. Seid ich vor paar Wochen Deinen Beitrag gelesen hab, achte dich drauf.

    Bei den div. Aktionen in letzter hab ich Einiges eingekauft und wie geschrieben, zumindest gefühlt, sind 3/4 der Fall 2.


    Meist ist es die zweite von 2 Spuren, bei 3 Spuren wird es dann "lustig". Mal ist es die zweite, mal die dritte Spur.


    Setzt Du hier bereits beim Erstellen in die zweite Spur das Forced Flag oder prüfst Du manuell danach, welche Spur es sein könnte?

    Größtenteils geht es um Übersetzung irgendwelcher Schilder etc.

    Besonders "lustig" Thor Love&Thunder: Da ist in der Forced Spur nur die Übersetzung des "Thor will Return" nach dem Abspann ;)

  • Setzt Du hier bereits beim Erstellen in die zweite Spur das Forced Flag oder prüfst Du manuell danach, welche Spur es sein könnte?

    Wenn es nicht eindeutig ist, d.h. mehr als ein deutscher Untertitel, spiele ich die Disk kurz in PowerDVD an. Das zeigt zuverlässig, welcher UT ausgewählt ist (keiner heißt, es ist entweder keiner oder korrekt geflaggt - ansonsten ist ein UT ausgewählt, Reihenfolge stimmt dann mit der Anzeige in MMKV überein).

  • Bei mir hat es scheinbar wunderbar funktioniert. Die Filme wurden mit **** erstellt.


    Hier das Ergebnis eines kleinen Testlaufs:


    FINAL RESULTS

    Total Number of Files: 68

    Total Number of Files with Forced Subtitles: 61

    Total Number of Modified Files: 61

    Total Number of Files to Check Manually: 1

    Total Number of Errors: 0

    Total Number of Warnings: 0


    Es funktioniert übrigens problemlos, die Files auf einer Netzwerkfreigabe zu modifizieren. Man muss nur vorher die Freigabe als Netzwerklaufwerk verbinden.


    Hier die Ausgabe des Films, der überprüft werden sollte:


    "Z:\Filme\HQ\****.mkv"

    Pre-Analyses of Subtitles:

    ST=2 GST=2 FST=#none FSTF=0

    #,id,lan,frames,default,forced

    1,4,deu,964,0,0

    2,5,deu,3250,0,0

    Calculate Changes to Forced Subtiltes:

    Change Forced Subtitle from #none to #1 Forced Subtitle is big #1 (964)! Check It!

    Changes to mkv Header:

    Changed Forced Flag to Subtitle #1

    Post-Analyses of Subtitles:

    ST=2 GST=2 FST=#1 FSTF=964

    #,id,lan,frames,default,forced

    1,4,deu,964,0,1

    2,5,deu,3250,0,0

    Result:

    Modified/Check It


    Das hat aber wohl mehr mit dem Film zu tun, da der nicht wenige erzwungene Untertitel hat. Die von Deinem Programm gewählte Spur war die richtige. Also von mir alle Daumen hoch. :respect: Jetzt muss ich nur noch überlegen, wie ich das automatisiere. Vermutlich lege ich mir aber einfach eine Skript auf den Desktop, welches ich dann nach dem rippen nur noch durch einen Doppelklick ausführen muss. Damit kann ich dann auch gleich die Filme aufs NAS schieben. Ich rippe erst auf meine lokale Platte und verschiebe die nach Erfolg aufs NAS.

  • Woran erkennt das Script eigentlich, dass es ein forced Untertitel ist?

    Siehe Originaltext:

    Das wesentliche Kriterium für die automatische Bestimmung des ForcedSubs ist, die Anzahl der Frames der unterschiedlichen Untertitel-Streams.

    Im Prinzip hat jede Sprache die gleiche Anzahl an Frames in den Untertitelspuren.

    Eine Untertitelspur mit (deutlich) weniger Frames wäre in dem Fall nur für einen Teil des Films.

    Dabei wird es sich mit sehr sehr hoher Warscheinlichkeit um Forced Subs handlen müssen.

  • Woran erkennt das Script eigentlich, dass es ein forced Untertitel ist?

    Danke für die Frage!

    Danke für das rege Interesse!

    Hätte gedacht, dass NNOSD besser ankommt als ForcedSub4MKV.


    Zur Frage:

    Der einzige Anhaltspunkt den wir haben ist die Größe der SubTitle-Streams. Diese werden im mkv-Header in Bytes und Frames angegeben.

    Liegen mehrere deutsche Sub-Streams vor kommt folgender Algo zum Einsatz:


    Die Analyse hat gezeigt, dass es 4 Arten ST-Streams gibt. Sortiert man diese nach der Größe (absteigend) ergibt sich im allgemeinen diese Reihenfolge:

    - Audio Description

    - Kommentare

    - Übersetzung

    - Forced Sub.

    Meisst hat ein Film nicht alle 4 Arten und manchmal sind auch idente Spuren mehrfach enthalten oder Spuren mit 0 Frames, hierfür gibt es Sonderbehandlungen.

    Der Alog sucht somit nach der kleinsten Spur. Mit dem Kriterium, dass sie maximal 50% der Größe der zweitkleinsten (Übersetzung) haben darf.

    Das passt in der Regel. Ausreiser sind zB Musicals. Hier hat Forced-Sub eine Größe von 80% der Übersetzungsspur.

    Wenn aus Sicht des Algos keine Bestimmung des Forced-Sub möglich ist wird der Titel in der Liste als "Please Check manually" markiert.


    Für erste Scannen empfehle ich die Option "probe" zu verwenden, das liefert ein gute Übersicht zum Status der Untertitel und was das Tool im "automatik mode" tun würde.


    Ärgerlich sind die ForcedSubs aber auch gelegentlich, wenn zB eine Uhrzeit-Einblendung von "9:30AM" auf "9:30" übersetzt wird (****). Da müsste man dann schon die Subs manuell korregieren.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!