• Hier ist etwas zu testen:

    Nennt sich SVCDJoiner.

    [Blockierte Grafik: http://fr-an.de/picture/svcdjoiner.png]

    Video1 und Video2 sind zwei mit VCDEasy extrahierte SVCD, welche mit DVD2SVCD erstellt wurden. Wie man sehen kann, haben die beiden Teile überlappende Timecodes. Beide Teile werden binär in eine gemeinsame Datei kopiert, wobei die Überlappung weggelassen wird.

    Abhängig vom Player wird die Spieldauer korrekt oder nur die des ersten Teiles angezeigt.

  • Ich habe aus meiner SVCD-Zeit noch einige Filme, die ich alle mit Überlappung erstellt habe. Werde ich bei Gelegenheit mal testen.

    Auf jeden Fall eine gute Idee.

    Gruß, zisoft

  • Zitat von Fr_An

    Wie man sehen kann, haben die beiden Teile überlappende Timecodes. Beide Teile werden binär in eine gemeinsame Datei kopiert, wobei die Überlappung weggelassen wird.
    Abhängig vom Player wird die Spieldauer korrekt oder nur die des ersten Teiles angezeigt.


    Das bedeutet was genau? Kannst Du das mal bitte genauer erklären? DANKE

  • Zitat von katjarella

    Kannst Du das mal bitte genauer erklären? DANKE


    Ja.

    Beim Hinzufügen werden die Dateien geöffnet und der erste und letzte Timecode gesucht. Danach werden die Dateien entsprechend dem ersten Timecode sortiert und in die Liste eingetragen.

    Beim Kopieren wird zunächst in den Folgedateien der Timecode gesucht, mit welchem die vorige Datei endet. Anschließend werden die Dateien byteweise in Blöcken kopiert. Dass heißt, die erste Datei wird geöffnet, bis zum letzten Timecode kopiert und wieder geschlossen. Dann wird die nächste Datei geöffnet und ab dem letzten Timecode der Vorgängerdatei bis zum letzten Timecode bzw zum Ende kopiert.

    Getestet habe ich dies mit einer MPEG2-Datei. Diese habe ich mit Überlappung binär in drei Stücke aufgeteilt. Nach dem Joinen waren Original und Kopie wieder identisch. Beim Joinen von zwei zusammengehörigen SVCD-MPEGs habe ich festgestellt, dass die Spieldauer vom Player abhängig ist. Die neueren gaben nur die Spieldauer des ersten Teiles an. Anscheinend schreibt bbMPEG sie in die User Data. Der WMP 7 und VDM zeigen die tasächliche Spieldauer an.

    Die Überprüfung, ob die Datei tatsächlich eine MPEG2-Datei ist, habe ich noch nicht eingefügt. Im Prinzip fehlt mir jetzt ein Demuxer, um die gejointe Datei sofort in Elementarstreams zu speichern.

    Gruß Frank

  • Danke für die Erklärung.. mir zwar noch nicht ganz klar, aber das liegt im Moment an den noch nicht freien Hirn, um alles zu erfassen.

    Zitat von Fr_An

    Im Prinzip fehlt mir jetzt ein Demuxer, um die gejointe Datei sofort in Elementarstreams zu speichern.


    DGIndex :) < Sourcen gibts da glaube auch.

  • Das Prinzip ist eigentlich relativ einfach. MPEGs haben eine definierte Struktur. Am Anfang der Datei stehen einige Daten, aus denen man zum Beispiel ersehen kann: Programmstream, nur Audio, nur Video, gemuxt, MPEG-1/2, MPA1/2/3/2.5, maximale Bitrate. Bestimmte Codes treten periodisch auf. So beginnt eine GOP mit dem Group Start Code (auch Group of Picture Header genannt) mit den vier Bytes 00 00 01 B8. Darauf folgt das Drop Frame Flag (1 Bit) und der Timecode mit Stunden (5 Bit), Minuten (6 Bit), Marker Bit (1 Bit), Sekunden (6 Bit) und Frames (6 Bit).

    Die erste Datei wird dann vom Anfang (Byte 0) bis zum letzten Timecode kopiert. Anschließend wird bei der nächsten Datei an eben dieser Stelle weitergemacht. So als würdest Du aus mehreren Maßbändern eines machen.

    Code
    Datei 1:  0123456
    Datei 2:       [color=red]56[/color]7890123
    Datei 3:             [color=red]123[/color]45678
    Kopie  :  0123456789012345678

    Die DGIndex-Sourcen habe ich mir auch heruntergeladen. Dafür müsste ich noch eine Programmiersprache lernen oder jemanden finden, der den entsprechenden Teil nach Delphi übersetzt. LigH hatte ja mal so etwas für MPEG Walk vor.

    Gruß Frank

  • Die Anzahl der Downloads ist doch etwas geringer als ich anfangs vermutet hatte. Möglicherweise liegt es daran, dass das Thema unter Softwareentwicklung steht.

    Mal sehen, wieviele es in zwei Wochen sind, wenn ich wieder aus dem tiefsten Süden Deutschlands zurück bin.

    Gruß Frank

  • Dann werde ich doch noch meinen Stapel von SVCDs, welche ich noch nicht fortgeworfen habe, durch testen müssen.

    Irgendwie habe ich auch den Eindruck, dass ich ein ungünstiges Unterforum gewählt habe.

    Gruß Frank

  • Mit der Zuordnung ist es nicht so einfach. Ausgangsmaterial ist SVCD, Ziel ist DVD. Aber besser als Softwareentwicklung ist es wohl.

    Das Programm funktioniert schon. Zumindest war das Testmpeg am Ende genauso groß wie das Original, an den Schnittstellen identisch und wurde klaglos abgespielt.

    Gruß Frank

  • Ich weiß nicht, seit ich die Zone Labs Security Suite ausprobiert habe, bekomme ich keine "Minaturansicht angehängter Grafiken" zu sehen. Egal ob Opera, Firefox oder Internet Explorer.

    Schön, dass es auch bei anderen klappt. Danke für den Bericht zisoft.

    Das verschiedene Player unterschiedliche Spielzeiten anzeigen können, habe ich oben schon angesprochen. Dabei haben die neueren nur die Spielzeit des ersten Teiles und die älteren die Gesamtspielzeit angezeigt.

    Dass bedeutet, das die älteren die Spieldauer aus dem Timecodes auslesen und bei den neueren nehme ich an, dass die Zeit am Anfang abgelegt ist. Zum Beispiel in den UserData.

    Gruß Frank

  • Vielen Dank, ich habs mal angetestet, ich konnte die Dateien wählen, er hat mir aber keinen überlappenden Code angegeben (fingen beide bei 0 an) und das Kopieren Feld blieb ausgegraut.

    Kann aber auch an den Dateien liegen, kein Plan, was ich damit mal gemacht habe :)

    Wxtrahiert mit VCDEasy auf alle Fälle...

  • Zitat von BaronVlad

    ... er hat mir aber keinen überlappenden Code angegeben (fingen beide bei 0 an) ...


    Wenn man DVD2SVCD verwendet, wird zum Schneiden/Muxen bbMPEG verwendet. bbMPEG lässt die Orignal-Timestamps drin. Wenn man mit den MPEG Tools des TMPG Encoders schneidet, dann beginnt der zweite Teil ebenfalls mit 0:00:00.00, weil er die Timestamps korrigiert.

    Gruß Frank

  • Ohne den Thread jetzt in eine andere Richtung zu bewegen, schließlich gehts hier um den SVCD Joiner von Fr_An, sag doch bitte mal kurz nem Mpeg Noob, womit ich das besser hätte zusammenpappen sollen. Erst mit PX demuxxen und dann mit Cuttermaran wieder zusammen ? Ich bitte um Erleuchtung ;)

  • Zitat von BaronVlad

    Aber das Kopieren-Fenster blieb auch grau.


    Meinst Du den Button? Leider kann ich die angehängten Bilder nicht sehen. Muss wohl mein Win98SE neu aufsetzen, damit es wieder funktioniert.

    Zitat von BaronVlad

    Erst mit PX demuxxen und dann mit Cuttermaran wieder zusammen ? Ich bitte um Erleuchtung ;)


    Ist etwas umständlich.

    Ich hatte wegen der von BaronVlad genannten Probleme darüber nachgedacht, den SVCDJoiner zu erweitern. Das wollte ich vom Bedarf bzw der Resonanz hier abhängig machen.

    Das hieße dann: Vorschaubild vom auf den letzten Timecode folgenden Frame. Framenummer sollte sich über die Zeit und Framerate ausrechnen lassen. Dann kann man es über Avisynth/Vfw anzeigen. Dasselbe dann am Anfang des Folge-MPEG, wo man dann von einem Timecode zum nächsten wandern kann bis es passt. Dann müssten die Timecodes des zweiten MPEGs korrigiert werden.

    Das Anzeigen und Kopieren dürfte kein Problem sein. Nur ob es mit dem Korrigieren so klappt wie es soll, weiß ich noch nicht.

    Zumindest habe ich mir vorhin ein Testvideo zurecht geschnitten.

    ??? Vielleicht könnte man das Suchen des richtigen Timecodes/Schnittpunktes mit AviSynth-Funktionen erleichtern? Scharfis_brain hatte mal irgendwann was in Bezug auf die Herstellung der Synchronität von Doppel-Captures geschrieben.

    Gruß Frank

Jetzt mitmachen!

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