chapterEditor(Chapter-Database Disc2mkv Matroska-Tools[Tags,Menu,Multi-MKV])+CLI

  • Das Mosu da keinen Splitter programmiert kann ich verstehen. Er kümmert sich halt ums zusammen muxen der Matroska Dateien.
    Ich denke das sind zwei verschiedene Welten.

    Es gab ja früher mal mehrere Leute im Matroska-Team. Steve Lhomme (robux4, Matroska-Gründungsmitglied) der hat ja auch den DVDMenuExtractor geschrieben. und Halli eben den Splitter, leider ist Haali auch kein Freund von Menüs und so bietet auch der Haali Splitter keinen vollen Matroska Support.


    Das einzige was man tun könnte, den LAV-Quellcode studieren und dann dort einfach den Menü-support reinprogrammieren.
    Leider kann ich C/C++/c# nicht so richtig.


    In meinem Matroska-Menü-Editor wird man aber so in etwa wie ein Menu haben.
    So mal kurz im groben:
    Für Serien zum beispiel. Alle Folgen sind ja in einem Ordner, daher kann man die alle später über das Menu aufrufen ohne immer wieder im Browser die nächste Folge per doppelklick zu laden. Oder man kann auch eine Edition erstellen wo alle Folgen direkt abgespielt werden.

    Ein kurzes "Menu-Video" kann auch als erstes nach dem start abgespielt werden.


    Ich hatte ja schon mal im LAV forum nachgefragt ob der LAV-Splitter wenigstens die Matroska-Funktion

    GotoAndPlay(Chapter UID);

    versteht. Kam aber keine antwort. Denn wenn diese einzig existierende Funktion funktionieren würde, könnte ich das Menu schon um einiges verbessern.

    Ebenso fehlt im LAV Splitter die Funktion um "ChapterTrack+ChapterTrackNumber" zu verarbeiten. Damit könnte man dann sozusagen Sprachen und Untertitel einstellen, was ebenfalls das Menü sehr perfektionieren würde.

    Für den Haali Splitter gibt es diese Funktion (TRACKSETEX), wenn auch nur als Feature und nicht als reiner Matroska Support.
    (wenn alles klappt und ich Zeit finde wollte ich dieses Haali Feature vll einbauen. fraglich halt wie lange Haali-Splitter noch genutzt wird.)


    Vll findet sich ja mal einer in der Zukunft der etwas mit dem LAV-Code und Matroska-Menu machen will.

  • Hi Selur

    Das automatische abspielen von Files hintereinander ist im ersten Vorfeld das was man heutzutage maximal mit den Matroska features machen kann...
    wie gesagt alles einschränkungen des Splitters.

    Mein Menü Editor geht aber ein klein wenig einen anderen Weg. Denn es ist nicht nötig die einzelnen Video-Files per Prev-SUID und Next-SUID miteinander zu verbinden.
    Finde diese art auch recht umständlich, denn ich habe immer noch nicht so recht verstanden was bei dem ersten Video-File bei Prev-SUID eingetragen werden muss. Oder eben beim letzten File, was kommt bei Next-SUID rein.

    Beim normalen verlinken der SUIDs ist es dann auch nicht mehr so richtig möglich eine Art Menü Video abzuspielen.

    Da ich das aber gerne als Start-Video haben wollte (man kann es einbauen oder nicht), um eben nicht gleich mit der erste Folge anzufangen muss man das ganze über das ChapterAtom mittels SUID und ordered chapters lösen.

    Nested Chapters werde ich da vorerst auch nicht mit einbauen, da der LAV-Splitter meiner meinung nach das auch nicht richtig verarbeitet.

  • Menü-Support hat vor allem zwei Probleme:
    1. Splitter&Player müssen damit umgehen können
    2. eine automatische Methode wird benötigt um DVD/Blu-ray Menüs umzuwandeln. (Problem daran ist neben bei auch, dass die Menüs heutzutage auch gerne mal 'kaputte' Pfade&Co enthalten, was ein automatisches auswerten unnötig verkompliziert.)
    Die DivXNetworks-Leute hatten sich ja mal ne Weile mit dem Thema beschäftigt, aber leider Punkt zwei auch nicht lösen können.

    -> Viel Spaß beim Rumspielen damit. :)

  • Im Prinzip ist nur dein
    1. Punkt von belangen damit man überhaupt mal was machen könnte.

    Ich habe nun vor mehr als einem jahr mit programmieren angefangen, seit dem habe ich reichlich über Matroska gelernt.
    Unter anderem auch wie so ein Menüaufbau von statten geht. Ich habe einige zeit mit DVDMenuExtractor rumgespielt und ich bin davon überzeugt wenn der Splitter/Player die entsprechenden anweisungen aus der Chapter.xml, Tags.xml, Info.xml und der VOB_Button.btn verarbeiten könnte wäre es nicht das Problem.

    Was ich noch nicht weis, wie so ein ControlTrack funktioniert. Wie wird er vom Splitter/Player angesteuert. (glaube auch im LAV form gelesen zu haben das LAV kein ControlTrack unterstützt)


    Ohne den richtigen Splitter kann man seine Probierereien nicht einmal testen, was es unmöglich macht alles nur aus der Theorie heraus zu entwickeln.


    Was genau meinst du mit "kaputte Pfade&Co"?

    Bei dem 2.Punkt werde ich auch keine Software entwickeln können, viel zu viel arbeit :)


    ABER:

    man braucht für ein einfaches Menu nicht wirklich viel. es ist auch nicht ein richtiges Menu im klassichen sinne.
    Es gibt bei Haali und LAV ein Trayicon für den Splitter, worüber man ja alles steuern kann (eben auch die verschiedenen Versionen).
    Sogar aus dem MPC-HC heraus hat man zugriff auf die versiedenen Versionen.

    Über dieses "Menu" wird dann, wenn ich fertig mit dem Matroska Editor bin, alles auswählbar sein.

  • Zitat

    Was genau meinst du mit "kaputte Pfade&Co"?


    PGS die zu keinen sinnigen Material führen, oder einfach kaputt sind wenn man sie anspringen würde. Bei Blu-ray Playlists die alles adressieren in wilden Reihenfolgen und und und ... (Alien Quatrology Blu-rays sind da ein ganz besonderes Schmankerl)

  • Was meinst du jetzt mit PGS? die untertitel?

    Die Alien Quatrology habe ich auch und dort war es jetzt erstmal kein problem, die jeweils 2. Versionen in ein mkv file zu muxen.

    Ich würde auch niemals so hoch rangehen als das man eine direkte 1:1 Kopie eines Menüs von Bluray/DVD machen muss/sollte/wollte/könnte.

    Man müsste im moment sowieso ein Bluray-Menü an das Matroska-Menü(entspricht dem DVD-Menü) anpassen.
    Das wäre alles wirklich mega riesiger aufwand.

    Es würde schon vollkommen zureichen wenn der ContolTrack funktionieren würde. Dann könnte man, wie von DVD gewohnt, ins Video-Bild klicken und die entsprechenden Aktionen ausführen.

  • Ein neuer Editor erblickt das Licht der Welt.
    Jede Menge Verbesserungen und einige neue Funktionen.


    cE028_eng.jpg

  • Matroska Menü Editor (MME)

    Der neue MME hilft einem dabei Matroska Dateien (mkv,mka,mk3d), die sich in einem Ordner befinden und
    die gleichen Spezifikationen (Anzahl an Spuren in der richtigen Reihenfolge und die selben Codecs für video,audio,subs) haben,
    miteinander über das Menü zu verbinden.
    Dabei müssen keine Dateien remuxt werden.

    Das ganze Menü-System befindet sich in der _chapters.xml und der _tags.xml, welche beim Speichern in
    die ausgewählte Matroska Datei geschrieben werden.

    In einem kurzen Video was als Tutorial dienen soll, zeige ich wie man ein solches Matroska Menü aufbaut.

    Während des Programmierens ist mir immer mehr bewusst geworden, wie effektiv und vielseitig man das
    Menü erstellen und nutzen kann/könnte.

    Vorweg:
    Ein richtiges Menü wie man es bei Bluray oder DVD kennt ist momentan nicht möglich. Kein Splitter bzw.
    Player bietet vollen Matroska Support.
    Um das Matroska Menü zu nutzen benötigt man LAV Filters oder den Haali-Media-Splitter.
    Es gibt in der aktuellen LAV Filters (0.63) noch einen winzigen Fehler. Das Menü funktioniert dann
    nicht korrekt wenn Matroska-Dateien
    geschnitten wurden und als erstes Frame kein IDR-Frame haben. Bei Haali funktioniert das aber.
    Man kann sich jeder zeit den aktuellsten Nightly build von LAV Filters downloaden, dort ist der Fehler behoben.

    Bei beiden Splittern befindet sich das Menü im System-Trayicon und wird mit einem Rechtsklick aktiviert.
    Im MPC-HC kann man mit einem Rechtsklick ins Bild -> Filter -> LAV Splitter ebenfalls drauf zugreifen.

    Die Matroska Dateien müssen in bestimmten Sachen identisch sein. Anzahl der Spuren und die gleichen Codecs.
    Beim Tutorial Video erstellen ist mir aufgefallen, dass die Soundsettings nicht unbedingt gleich sein müssen.
    Also selber Codec ja, aber, ich hatte ein 2.0 Stereo Flac in der Menü-Datei und ein 5.1 Flac in den Folgen verwendet.
    Es spielt alles ohne probleme, und im AC3Filter sieht man auch gut welches Flac abgespielt wird.

    Im MME ist es möglich vorhandene Versionen/Kapitel der geladenen Matroska Dateien zu verwenden.
    Darum sollte das Menü immer in eine separate Menü-Datei (im selben Ordner) gespeichert werden.
    Damit bleiben alle Matroska Dateien im original erhalten und sind nach wie vor einzeln startbar(ohneMenü).


    Wie funktioniert das ganze:

    Man muss dazu wissen das jede Matroska Datei eine SegmentUID (SUID) besitzt.
    LAV und Haali Splitter suchen nach diesen SUID's innerhalb eines Ordners.
    Mit einem chapter.xml und tag.xml kann man auf diese SUID's zugreifen und entsprechend nach Matroska Specs verarbeiten.

    Mir sind Momentan zwei Verfahren bekannt wie man das bewerkstelligen kann.

    1. File Segment linking (Datei-/Segmentverknüpfung)

    Dies ist das bis jetzt verbreiteste und bekannteste Verfahren.
    In MKVToolNix (mmg) im Global-Fenster gibt es einen Bereich für Datei-/Segmentverknüpfung.
    (Problem hierbei ist, dass beim muxen immer neue SUID's für die Dateien erzeugt werden und dann nicht
    mehr mit den eingetragen SUID's übereinstimmen.)

    Persönlich finde ich dieses Verfahren für recht umständlich.
    Zuerst muss man manuell die SUID's ermitteln. Hierbei hilft einem der Header-Editor in der mmg.
    Dann müssen alle SUID's in richtiger Reihenfolge(PrevSUID und NextSUID) eingetragen werden.

    Aber der größte nachteil ist dann die Verwaltung der zugehörigen Dateien.
    Wenn eine Serie immer diesen "Zwischenspann" in den Folgen drin hat.
    Man müsste das dann wie folgt aufteilen.

    Folge1_Start.mkv
    Folge1_Rest.mkv
    Folge2_Start.mkv
    Folge2_Rest.mkv
    und so weiter... und
    Zwischenspann.mkv

    Schnell erkennt man, dass man immer zwei Dateien pro Folge hat.


    2. Chapter Segment linking (Kapitel-Segmentverknüpfung)

    Im chapter.xml gibt es ein ChapterAtom in dessen man eine SUID angeben kann. Das chapter.xml muss mit
    "ordered chapters" aufgebaut sein. Somit kann man auf eine andere Datei verweisen und diese abspielen.

    Das ganze erledigt der MME automatisch. Manuell kann man das aber ebenfalls recht schnell erledigen.
    Dazu muss man nur ein chapter.xml und tags.xml im XML-Editor erstellen und in eine Matroska Datei speichern.

    Für das obige Beispiel würde der Ordner mit den Dateien dann wie folgt ausschauen

    Folge1.mkv
    Folge2.mkv
    und so weiter... und
    Zwischenspann.mkv



    Was macht der MME

    Es werden alle SUID's ermittelt und je nachdem wie man sein persönliches Menü aufbauen will, verarbeitet.

    Im Mittelteil des MME's werden die Menü-Versionen angelegt und verwaltet. Die Reihenfolge und Beschriftungen
    werden im Matroska Menü so wiedergegeben. Jede Menü-Version kann mehrere Dateien enthalten.

    Eine Spezial-Menü-Version ("als Menü") dient zur Zeit als Ersatz für ein Bluray/DVD Menü, was sich immer wieder wiederholt.
    Die Standard-Version wird beim abspielen gestartet. Es muss also nicht unbedingt das Menü gestartet
    werden, man kann auch zum Beispiel eine Menü-Version starten lassen, die alle Folgen beinhaltet.

    Eine weitere wichtige Funktion ist, die übernahme der vorhanden Versionen/Kapitel einer Datei.
    Die Folgen aus dem Tut-Video haben alle zwei Versionen. Eine mit und eine ohne dem Vorspann.
    Erstellt habe ich eine Menü-Version mit allen Folgen, wo ich eben nur die "Ohne Vorspann-Versionen" schauen will.

    Sollte mal eine Datei bereits eine Kapitel-Segment-Verknüpfung haben, so wird dies erkannt und mit übernommen.
    Dadurch bleiben hierbei bereits erstellte Verbindungen bestehen (Zwischenspann).


    Erstellen einer kleinen Menü-Datei

    Hierzu einfach eine der Folgen in mmg laden und im Global-Fenster bei Aufteilen (splitting) - Aufteilen nach Zeitstempeln auswählen.

    den zeit stempel 00:00:00.001 eingeben.
    (dabei würden natürlich sehr viele Dateien erzeugt. Also die Anzahl begrenzen oder schnell auf abbrechen drücken)
    Mkvmerge schneidet dann direkt nach dem ersten I-Frame und man hat eine sehr sehr winzige aber voll funktionierende Menü-Datei.
    Das gute ist auch gleich, dass alle Spuren und Codecs stimmen.


    Zukünftiges

    Das erstellen von Menü-Versionen automatisieren.
    Die Haali Funktion "TRACKSETEX" - Eine Funktion mit der man auch direkt Spuren in der Datei auswählen kann.
    Nev fragen ob er in LAV-Splitter die Haali Funktion einbauen kann.
    Nev fragen ob er weitere Matroska Funktionen einbauen kann.

  • Ein wichtiger bugfix und neue funtionen gibts im update rev0.29.

    Neuer Schnittmodus:

    In mmg gibt es beim "Aufteilen" eine Funktion, dass man direkte Teile "auschneiden" und gleich zusammen fügen kann.
    Das habe ich im Multi-Versionen Editor für das Schneiden eingefügt.
    Zu beachten ist dann, dass die Schnittzeiten abwechselnd als Startzeit bzw. Endzeit eingetragen werden.
    Ein vollständiger "Schnitt" besteht immer aus Start- und Endzeit. Gibt es keine (letzte) Endzeit, so wird die Spieldauer aller m2ts Dateien verwendet.
    Man spart sich somit den zusätzlichen mux-Prozess.

    Version reihenfolgentreu:

    Menü mpls Dateien, welche mit doppelten m2ts Dateien arbeiten, erhalten bei aktivierter checkbox ein "ordered" chapters.xml.
    Dabei werden die originalen Kapitelmarken solange verarbeitet, wie die Spieldauer der verwendeten m2ts Dateien beträgt.
    Andernfalls wird ein normales chapter.xml erstellt. Die originalen Kapitel werden komplett verwendet. Es werden aber nicht alle Kapitelmarken ordnungsgemäß funktionieren.


  • Zitat

    mmg gibt es beim "Aufteilen" eine Funktion, dass man direkte Teile "auschneiden" und gleich zusammen fügen kann.
    Das habe ich im Multi-Versionen Editor für das Schneiden eingefügt.


    Kleine Anmerkung: Bei text-basierten Untertiteln ist hier Vorsicht geboten (siehe: https://trac.bunkus.org/ticket/895).

  • Hi Selur
    danke für den Hinweis.

    Da diese "schnitt-funktion" mehr für die Blurays gedacht ist und dort ja keine Textbasierten Subs gibt, sollte es soweit funktionieren.

    Klar man kann auch SRT-files im Editor laden. Dann müsste man aufpassen wo man schneidet.

    Ich hatte mit Mosu vor einer Weile auch mal über dieses Sub-Problem getextet. Allerdings meinte er auch das er momentan daran nicht arbeiten will/kann. Andere Sachen wären momentan wichtiger. Bleibt nur abwarten und aufpassen wo man schneidet.
    Vll hat Mosu in ferner Zukunft zeit und lust.

  • weiter gehts mit einem neuen update rev0.30

    Haali' TRACKSETEX ist ein neue Editor mit dem man vordefinierte Track-Einstellungen über Matroska Menu laden kann (vorerst nur für den Haali-Splitter).

    Für den MME gibts nun "automatische Aufgaben", dadurch lassen sich Matroska Menüs mit wenigen klicks erstellen.

  • Ein größeres update rev0.31 ist verfügbar.

    Es sind einige Fehler behoben worden und neue Funktionen hinzugekommen.

    Ausserdem gibt es einen neuen Editor.

    DVD2mkv:

    Ich habe ein paar Serien bekommen, die "leider" nur auf DVD sind.
    Nachdem ich mich umgeschaut habe was es da alles gibt,

    fand ich, dass einzige was richtig gut ist, ist Makemkv. Klar in Deutschland illegal :)
    Ist schon recht praktisch wie MakeMKV die einzelnen Titel in mkv's verwandelt.

    Dennoch ist es mir zuviel automatik und ich müsste das mkv weiter bearbeiten.
    Daher habe ich mich dann für einen eigenen DVD2mkv editor entschieden.

    Ich habe mir dann IFOEdit etwas genauer angeschaut und meinen DVD Parser erweitert, so dass
    die IFO's schnell analysiert werden.

    zum Demux der vobs wird PgcDemuxMod verwendet. Der Link führt zur version: mod2
    Bei mir läuft die mod3 wegen einer fehlenden dll nicht. hier die mod3 version

    Es kann vorkommen das PgcDemuxMod Untertitel doppelt extrahiert, was an sich kein Fehler ist.
    Dann kann der Untertitel in verschiedenen Anzeige Formaten dargestellt werden.
    Mögliche Werte sind: 4:3 , wide , letterboxed , pan-scan

    Es werden beide extrahierte .sup Dateien in die Spur-Anzeige geladen und man kann dann selbst auswählen
    welche man verwenden will.


    BDSup2Sub: beim Demuxen werden die Untertitel im .sup Format extrahiert. mmg/mkv kann aber nur idx/sub Format laden.

    Daher ist die Umwandlung erforderlich wenn man Untertitel verwenden möchte.
    Das geht aber sehr sehr schnell und zusätzlich wird nach "forced" subs gesucht.

    Ich habe vorerst die BDSup2Sub++1.0.2_win32.exe dazu eingebaut. Falls jemand kein Java installiert hat, funktioniert es dennoch.
    Die Java Version werde ich vielleicht auch noch als alternative einbauen. (Da gibts ja auch 2 Unterschiedliche Versionen.)

    In den Einstellungen gibt es jetzt zwei neue Pfade für die beiden Tools.
    Weiterhin kann man zu den Tools einige Parameter einstellen.

Jetzt mitmachen!

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