Segment-UID automatisch einfügen lassen?

  • Hallo,

    in der Matroska-Dokumentation habe ich mal gelesen, dass jede MKV eine SUID bekommt (z. B. beim splitten), so dass man die Dateien auch umbenennen kann und sie werden trotzdem korrekt abgespielt, weil nach dem SUID gesucht wird (im gleichen Ordner). Weiterhin soll es möglich sein, Dateien die nicht gesplittet wurden hintereinander abspielen zu lassen, indem man SUID der nächsten (und vorhergehenden) Datei einträgt.

    Nun tritt sich hier die Katze aber auf den Schwanz: Ich will die erste Datei muxen, da soll ich die SUID der zweiten eintragen, welche ich ja aber noch nicht gemuxt habe. In der zweiten soll die SUID der ersten eingetragen werden, welche ich aber erst erstellen kann, wenn die zweite gemuxt wurde usw. Weiterhin ist es umständlich, erst mit MKVInfo die SUIDs auszulesen (man kann sie nicht einmal per Copy&Paste einfügen).

    Gibt es eien Möglichkeit, das zu automatisieren. Indem ich z. B. erstmal alles normal muxe und in der korrekten Reihenfolge ablege und dann nur die SUID schreiben lasse, in der Reihenfolge in der die Dateien im Ordner liegen? Oder von mir auch aus die ganzen Inputs aller Dateien lade und dann beim muxen die SUIDs schreiben lassen?

    Irgendwas in die Richtung?

  • OK, habs gefunden.

    Die Frage ist nur, wie mach ich das, wenn ich in eien Datei eine SUID einfüge möchte von einer anderen Datei die ich noch gar nicht erstellt habe? Wie im Bsp. oben in die erste datei die SUID für die zweite Datei, wenn die zweite Datei noch gar nicht existiert?

    Irgendein Automatisierungstools gibts da wohl nicht?

    edit
    Hab das jetzt mal mit einer x-beliebigen Datei versucht. Video- und/oder Audioformat der beiden Dateien müssen wohl identisch sein?

    Einmal editiert, zuletzt von Habanero (17. Januar 2010 um 09:09)

  • Kann man beim Multiplexen nicht eine bestimmte TID erzwingen? (müsste man mal http://www.bunkus.org/videotools/mkv…c/mkvmerge.html lesen)
    Ansonsten:
    Erst alle Files erstellen, dann die IDs zum Verlinken anpassen.

    Zitat

    Video- und/oder Audioformat der beiden Dateien müssen wohl identisch sein?


    Wobei dies vermutlich eher eine Einschränkung durch den verwendeten Splitter ist und wahrscheinlich nicht mkv inhärent ist.

  • Sooooooo, ansich hab ich jetzt alles soweit hinbekomme wie ich das will, leider sceint es keine Art Autoamtisierungstool dafür zu geben, händisch ist das zwra mühsam, funktioniert aber ohne neu zu muxen.

    Das einzige was mir jetzt noch fehlt zu meinem Glück, dass ich innerhalb der verlinkten Segmente einstellen kann wann die Fortschrittsanzeige bei 0 beginnen soll und wann er bei beginn einer neuen datei einfach weiterzählt. In den beiden mir bekannten Anleitungen zu mkv wird diese Möglichkeit nicht erwähnt. Falls jemand eine Idee hat, bin ich dafür offen.

  • Ich geh erstmal noch gar nicht vor, ich weiß jetzt nur erstmal was ich genau machen muss, damit alles (fast) so wird wie es sein soll. Bisher hab ich ganz nochmal mit mkvmerge gemuxt, alle Episoden einer Staffel und dann mit dem Kopfdateneditor die Segment IDs angepasst. Da aber das vorbereiten der Subs etwas schwierig und umständlich ist (mkvmerge kann die normalen DVD-Subs nicht verarbeiten), hab ich mal MakeMKV versucht. Das Programm akzeptiert die VIDEO_TS.IFO als Input und wandelt (scheinbar) die Subs gleich in ein MKV-fähiges Format um.

    Leider funktioniert hier das setzen der Segment IDs hinterher nicht. Wenn ich die nächste Segment ID mit dem Kopfdateneditor der mkvmerge-Version 3.0 nutze kan ich die ID zwar einfügen, die wird aber ignoriert. Will ich die ID löschen stürzt mkvmerge beim speichern ab. Die Version 2.7.0 kann zwar die ID wieder löschen (ohne Absturz), aber keine IDs einfügen (ich bekomme in das Kästchen keinen Haken um das Feld für die ID zu aktivieren).

    Muxe ich die mit MakeMKV erstellten Dateien nochmal mit mkvmerge 3.0 werden die Segment IDs erkannt.

    Vielleicht basiert MakeMKV auf einer bestimmten MKV-Version die Probleme mit mkvmerge hat? Bin etwas enttäuscht, dachte mit MakeMKV kann ich mir zumindest das umständliche muxen etwas einfacher machen.

    edit
    Meine Makemkv-Version ist die derzeit aktuelle 1.4.11

  • Habs nochmal versucht, mkvtoolnix will keine UT direkt aus der DVD, auch extrahierte ohen Umwandlung will der nicht haben. Spielt jetzt aber auch keine Rolle mehr, mit MakeMKV und der 3.1 von mkvtoolnix gehts soweit.

    Das ursprüngliche Problem, die Segment UIDs automatisch zu erstellen besteht leider weiterhin. Ich habe keine Möglichkeit gefunden, wie ich alle Files eines Ordners automatisch hintereinander "segmentieren" kann.

    Mir ist jetzt aber eine Idee gekommen: Ich kann ja wenn ich eien Datei aufteile einen Haken setzen und er erstellt die IDs. Man könnte nun in 2 Schritten erst eine große mkv aus den mit MakeMKV erstellen Dateien machen und dann wieder teilen (und gleichzeitig die IDs setzen lassen), dann aber genau an den ursprünglich zusammengefügten Stellen. Frage wäre jetzt, ob es dafür eine Möglichkeit gibt, diese Zeitmarken auszulesen oder irgendwie genau an den Stellen "schneiden" zu lassen.

  • Was man vermutlich machen kann ist, jedes der Files editieren und dabei die UIDs manuell setzen.

    Hab ich ja bisher so gemacht, ist nur sehr viel Arbeit.

    Man könnte noch die Files in einen Player laden und dann die Zeitmarken einzeln eingeben. Nötig wäre hier, dass man einfach herausbekommt, bei welcher Position man splitten muss (sprich: wie lang die bisherigen Clips sind). Bei Winamp geht das mit Musik sehr gut, da kann man alle einfügen und die gewünschten markieren und sieht die gesamte Abspielzeit. Keiner meiner Videoplayer hat aber so eien Funktion (MPC-HC, VLC, Mplayer).

    Einmal editiert, zuletzt von Habanero (4. Februar 2010 um 14:09)

  • Ich bin echt kein Kommandozeile-Könner. aber folgendes hab ich hinbekommen. Mit dieser Kommandozeile wird eien Datei aus einer mkv mit einer bestimmten SID (in dem Fall: nächstes abzuspielendes Video) erstellt:

    Code
    "Pfad\zu\mkvmerge.exe" "Pfad\zu\Input\datei.mkv" --link-to-next 0xa0 0x80 0x87 0xef 0x96 0x10 0x36 0x43 0x8c 0xd5 0x74 0x85 0xe0 0x08 0x21 0x39 --out neu.mkv

    Für den Kopfdateneditor habe ich kein Kommandozeilen-Programm gefunden, icg vermute das ist nur eien Art GUI für mkvinfo (welches die Angaben etwas anders darstellt als die GUI für mkvinfo), bin mir aber nicht sicher.

    Auch mkvinfo kann man über Kommandozeile aufrufen. Mit diesem Aufruf kann man sich Angaben zur Datei aufrufen:

    Code
    "Pfad\zu\mkvinfo.exe" "datei.mkv"
    pause

    Hier wird jedoch alles angezeigt, u.a. die Segment UID.

    Weiter komme ich nicht. Man müsste jetzt folgendes hinbekommen, was aber meine bescheidenen Fähigkeiten übersteigt:

    • mkvinfo müsste außer der 1. mkv alle Dateien öffnen um die Segment UIDs auszulesen
    • mkvmerge müsste alle mkvs außer der letzten öffnen, neu muxen und dabei die per mkvinfo ausgelesen Segment UID der nächsten Datei einfügen

    Einmal editiert, zuletzt von Habanero (4. Februar 2010 um 21:34)

  • Zitat

    Mit dieser Kommandozeile wird eien Datei aus einer mkv mit einer bestimmten SID (in dem Fall: nächstes abzuspielendes Video) erstellt:


    Den Satz versteh ich nicht, da fehlt vermutlich irgend ein Komma.

    muss man nicht irgendwo auch " <code class="option">--link-to-previous</code> and <code class="option">--link-to-next</code>." nutzen?

  • Das heißt, dass man mit dieser Kommandozeile aus einer datei1.mkv ohne SID auf die nächste Datei eien datei2.mkv mit SID auf die nächste Datei muxen kann. Wäre einfacher das einfach in die Header Daten einzufügen, aber dazu habe ich nix Richtung Kommandozeile gefunden.

    Hast recht, hab die Kommandozeile angepasst.

    Ich hab mal den Autoren von mkvmergegui angemailt, mal sehen ob ich eine Rückmeldung bekomme - der Name Moritz lässt hoffen, dass er deutsch spricht, das würde mir die Sache einfacher machen :D

  • Ich habe jetzt ein Perl-Skript bekommen, welches genau das macht was ich möchte. Hab es nicht selber geschrieben, ich musste mich mangels Programmierkenntnisse an ein Perl-Forum wenden. Ich bin mir nicht sicher, ob ich den Code einfach so hier posten darf, daher hab ich bei dem User nachgefragt und werde das später nachholen.

Jetzt mitmachen!

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