d2v-Startframe?

  • Hallo!

    Wie kann ich aus einem d2v-File ablesen, ab welchem Frame es einsetzt? Wenn ich zum Beispiel einen Film ohne Intros encodieren will, aber die Chapters framegenau einfügen will, stehe ich vor diesem Problem.
    Jedenfalls stehen da meist vierstellige Hexwerte drin, die für mich aber auch als Dezimalwerte wenig Sinn ergeben. Kann mir da jemand was zu sagen?
    Vielen Dank und viele Grüße bb empty

  • Die D2V-Datei speichert, an welcher Position in der MPEG-Datei die Daten für die Bilder beginnen, damit der Decoder schneller dort hin springen kann (ich glaube, genauer gesagt sind es die Startpositionen der I-Frames). Es wird jedoch grundsätzlich immer die gesamte MPEG2-Video-Datei analysiert, weil man MPEG2-Video ja nicht an beliebiger Stelle schneiden kann.

    Willst du bei der Encodierung bestimmte Bereiche framegenau weglassen, dann verwende bitte z.B. die 'Trim()'-Funktion im AviSynth-Skript. Die Suchfunktion im alten Forum sollte dir einige Beiträge mit Beispielen für die Verwendung von 'Trim()' liefern, und die deutschsprachige Dokumentation, die AviSynth 2.08 beiliegt, ist auch sehr gut verständlich.

  • Hab schon mal im englischen Forum gesucht, aber bis jetzt noch nichts gefunden, außer dass es irgendwo schon mal geschrieben sein sollte. :motz: :D
    LigH das framegenau ist beim Intro weglassen nicht sooo wichtig, aber die Synchronisation mit dem Audio schon. Kann Avisynth schon mit OggVorbis umgehen? Ansonsten muss ich erst das Audio nach wave konvertieren mit WaveSource mit ins Avisynth-Script übernehmen trimmen, encodieren, dann dass audio wieder extrahieren und auch noch encodieren. Ekelig, zumal ich dann auch schlecht vorher berechnen kann, welche Video-Bitrate ich brauche, da ich Vorbis immer mit VBR erstelle.
    BTW: die Dokumentation von Avisynth ist schon ganz gut, aber mir scheint, dass nicht sämtliche Befehle behandelt werden. :(
    Viele Grüße bb empty

  • Zitat

    Originally posted by empty
    Kann Avisynth schon mit OggVorbis umgehen?


    Nein, soviel ich weiss nicht!
    Audio würde ich getrennt bearbeiten, man ist dann flexibler. Deine Audio datei würde ich besweet in das gewünschte format umwandeln und dann mit VirtualDubMod muxen.


    Zitat

    BTW: die Dokumentation von Avisynth ist schon ganz gut, aber mir scheint, dass nicht sämtliche Befehle behandelt werden. :(


    also der Trim Befehl wird auf alle fälle inder Anleitung beschrieben. Ansonsten ist mir auch noch keine Erklärung zu einem Befehl abgegangen.

    mit den chapters kenn ich mich so aus, da hilft dir Ligh&selur mehr weiter...;)

  • Wie jetzt, synchron mit Ogg Vorbis?

    Wenn du nur einen Teil des Videos (DVD-Video als Quelle im AviSynth-Skript, mit "Trim()" geschnitten) als AVI-Video encodierst, kannst du in der gleichen Art auch die Konvertierung der Audio-Spur (mit BeSweet / HeadAC3he von AC3 / MP2 nach OGG) zu diesem Zeitpunkt beginnen lassen, der dem Beginn des Hauptfilms entspricht.

    Es ist ja auch eigentlich grundsätzlich besser, das Audio vorher allein zu konvertieren, und wenn es fertig ist, als Dateizu verwenden, damit Bitraten-Rechner (z.B. GordianKnot) gleich die Dateigröße als Vorlage verwenden können.

    Wobei mir auffällt, dass ich ja noch nicht mal weiss, was du am Ende rauskriegen willst - vermutlich eine OGM-Datei, gut; aber auf welchem Weg hast du vor, sie zu erhalten? Schreib mal etwas genauer darüber!

  • Hmm, irgendwo klemmt jetzt was bei mir. Zum hoffentlich gegenseitigen Verständnis: ich erstelle mit DVD2AVI ein d2v-Projekt und demuxe den Ton. Das Video bearbeite ich mit Avisynth respektive VDMod weiter, nachdem ich mit Besweet den Ton (AC3-File) nach Ogg Vorbis gewandelt hab und per GK die benötigte Video-Bitrate errechnet hab. Anschließend muxe ich Ton und Bild mit VDMod in ein OGM. Soweit mein bisheriger Ablauf.
    Ich möchte jetzt vorne was weghaben. Ich erstelle ein d2v-File von dieser Stelle an, wobei der Ton automatisch auch an dieser Stelle anfängt (kleinere Unregelmäßigkeien aufgrund der Frames werden ja mit dem Delay-Wert behandelt). DVD2AVI zeigt mir ja den Wert in Sekunden wo er anfängt, allerdings ist mir das zu ungenau. Ich möchte diesen Wert jetzt framegenau erhalten, um eventuell nachträglich per SubRip erstellte Subtitles oder per ChapterXtractor erstellte Chapters framegenau ins OGM miteinzufügen.

    Meine Idee war den Wert aus dem d2v zu erhalten, was sich leider als außerordentlich schwierig erweist. Da ich bisher leider keine entsprechende Formel zum Berechnen fand. Andere (framegenaue) Vorschläge sind willkommen. :ja:
    Viele Grüße bb empty

  • Am günstigsten wäre wohl, in VirtualDubMod die AVS-Datei mit dem vollständigen, noch nicht geschnittenen Fil zu öffnen und bildweise bis zu dem Frame zu springen, das du als erstes im endgültigen, geschnittenen Film haben willst. Diese Framenummer wird das Startframe der Trim-Funktion, die Nummer des letzten Bildes entsprechend das Endframe.

    Wenn es ein PAL-Film ist, dann hast du 25 Frames pro Sekunde, ein Frame ist also 40 Millisekunden lang. Also berechnest du die Anzahl der vorn weggelassenen Frames multipliziert mit 40 Millisekunden, addierst den Offset dazu (mit Vorzeichen natürlich), und hast den neuen Offset in Millisekunden für BeSweet / HeadAC3he, durch den auch das Audio zum gleichen Zeitpunkt beginnend konvertiert wird. Bei NTSC wird es etwas unrund, aber funktioniert analog.

    Die fertigen Audio- und Video-Dateien werden dann gemuxt und passen daraufhin synchron zusammen.

  • Klappt soweit ganz gut, aaaber: Wie mache ich es, wenn was am Ende weg soll? Hab mal negativen Wert im Append Silence (BesweetGUI) probiert, ging aber leider nicht. Noch ein extra Sound Bearbeitungsprogramm benutzen, wird mir dann glaube etwas zu aufwendig.:rolleyes: Ich komme immer mehr zu der Überzeugung, ich muss den Sonntag mal mit der Suche im englischen Doom9 verbringen.:( Naja, vielleicht finde ich ja was.
    Viele Grüße bb empty

  • Hab's letztendlich (dank hakko504) rausgekriegt, auch wenn's mir nichts bringt.:rolleyes: Also die Hexwerte bei Location im d2v-File ergeben als Dezimalwert mit 2048 multipliziert die Byte-Nummer an dem der entsprechende Frame anfängt. Passt mir natürlich gar nicht, aber war eben einfacher zu programmieren.;)
    Viele Grüße bb empty

  • Du kannst Audio am Ende des Filmes weglassen, indem du den Film in VirtualDubMod lädst, den gesamten Bereich markierst (u.U. noch ein oder mehr Frames vom Ende wegnehmen) und den Film im Direct-Stream-Copy-Modus wieder speicherst: Wenn du ein End-Frame angibst, wird der Film dort geschnitten - somit auch überhängendes Audio.

    Das wurde mal im Ghost-Forum beschrieben, wie man die paar Schwarz-Frames zwischen den beiden DVDs vom Herrn der Ringe korrekt behandeln kann, um beim Anhängen des zweiten Teils die Synchronität nicht zu verlieren (sonst wird einzeln Video an Video und Audio an Audio geklebt, und dann stimmt die Synchronität nach dem Schnittpunkt nicht mehr, weil die nicht gleich lang waren).
    _

    Wie schon gesagt: Es wird im d2v die Position der I-Frame-Starts gespeichert. Ich wusste nur nicht genau, in welcher Einheit: Wenn es 2048 Bytes sind, dann also offensichtlich in DVD-Sektoren.

  • Zitat

    den Film im Direct-Stream-Copy-Modus wieder speicherst:

    Hatte ich mir auch schon überlegt, aber nach einem Blick auf meinen Plattenplatz.:heul: Das wird mir einfach zu groß. Außerdem habe ich dann immer das Problem mit dem Audio. Zuerst nach Wave decodieren und dann weiss ich nicht einmal ob ich auch mehrere Audiostreams mit in ein avs-Script packen kann.:confused:
    Werd mir mal was passendes überlegen, hab schon so ein paar Ideen, aber erstmal gibt's bei mir Prüfungen. :eek:
    Danke für die Hilfe und die Hinweise. :)
    Viele Grüße bb empty

  • Hab wohl beim letzten Post etwas durcheinander gebracht, wegen des direct stream copy. Fällt nicht wegen dem Plattenplatz (Blödsinn meinerseits ;D ) raus, sondern wegen der zu bestimmenden Endgröße. Habe jetzt einfach eine Mix-Lösung aus beiden Varianten gemacht. Video von Anfang an als d2v, aber am Ende in DVD2AVI Endpunkt setzen. Und dann weiter wie Light vorgeschlagen hat, wobei der gleiche Delay natürlich auch für eventuelle Subs und Chapter gilt. Klappt schnuckelig.:ja:
    Danke.:cool:
    Viele Grüße bb empty

Jetzt mitmachen!

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