Zusammenschneiden zweier avi-files mit VirtualDub/AviSynth

  • hallo,
    ich habe folgendes problem:
    habe mit meiner tv-karte zwei avi´s (codiert mit divx, mp3) aufgenommen und möchte diese nun mit VirtualDub zusammenschneiden. da sich die fps-werte leicht unterscheiden, habe ich folgenden AviSynth-script verwedet:
    DirectShowSource("file1.avi", fps=25.12) + DirectShowSource("file2.avi", fps=25.12). das klappt soweit ganz gut (audio liegt nach dieser prozedur als PCM, uncompressed vor). nun aber das eigentliche problem:
    obwohl beim bearbeiten/schneiden in VD synchronität zwischen video/audio vorliegt (die ausgangsfiles für sich genommen sind ebenfalls synchron), ist dies beim fertigen file, d.h. nach dem erneuten codieren (bitrate wird geändert, audioformat wieder auf mp3 gestellt) nicht mehr der fall. handelt es sich hierbei um einen fehler von AviSynth?? was mich vor allem stuzig macht, ist die tatsache, dass normalerweise mögliche asynchronität bei VD schon beim bearbeiten auftritt und nicht erst im fertigen file (oder anders ausgedrückt: im bezug auf synchronität unterscheiden sich das fertige file und die in VD beim bearbeiten angezeigt Version normalerweise nicht)

    Über Hilfe würde ich mich freuen.

  • * man sollte erstmal versuchen AVISource zu verwenden.
    ** > Warum funktioniert das nicht bei Dir?

    * Dann bitte ++ oder besser AlignedSplice(clip1, clip2[,...]) verwenden.
    ** > siehe auch die Deutsche Hilfe zu Avisynth.

    Danke erstmal für die Antwort.
    Nun, AVISource funktioniert nicht, weil sich die Frameraten leicht unterscheiden (dritte Stelle nach dem Komma!). Ich habe DirectShowSource verwendet, um die Frameraten auf einen einheitlichen Wert (nur zwei Nachkommastellen) zu stellen.
    Die Verwednung von AlignedSplice oder UnAlignedSplice führt leider zum selben Ergenbins: Eine Asynchronität die nach hinten immer größer wird.
    Aber wie schon gesagt, das eigentlich verwunderliche ist, dass diese Asynchronität während der Bearbeitung mit VD nicht auftritt sondern erst nach dem erneuten codieren. Das ist mir bei VD bisher nie passiert (Asynchronitäten konnten bisher in VD festgestellt werden).

  • das liegt 100% am DirectShowSource. Wie man das aber Sauber hinbekommt, kann ich nicht sagen, hab mir mit DirectShowSource schon so lange die Zähne fast ausgebissen, das das bei mir auf der schwarzen Liste steht.

    VD + DirectShowSource: machst Du hoffenlich über funktion JobControl und im AVISynth:

    v1=DirectShowSource (** seek=false **)
    v2=DirectShowSource (** seek=false **)
    AlignedSplice(v1,v2)

    Und keine Programme dürfen im Hintergrund laufen.

    evt. mußt Du erst beide Videos erst als Lossless Video/Audio abspeichern um es dann erst zu verbinden.

  • Danke für den Tip seek auf false zu stellen. Dadurch wird zwar das Bearbeiten mühseliger, aber gleichzeitig bemerkt man jetzt endlich die Asynchronität, die später auch auftritt.
    Ich habe übrigens mit der tv-Karte zwei neue avi´s aufgenommen (wieder divx codec) und keine audio-Komression verwendet. Ergebnis: Die Synchronität beim Zusammenschneiden mit DirechtShowSource funktioniert!
    Jetzt bleibt nur noch zu testen, ob die bestehenden avi´s synchron zusammen schneidbar sind, wenn man sie vorher mit VD ohne audio-Kompression abspeichert.

  • Wie gesagt, ich nehme in divx auf (ist wohl dasselbe wie MPEG4?)und stelle dort 25 fps ein. das fertige file weicht aber spätestens bei der vierten Kommastelle etwas von 25.0000 fps ab (hängt von der Länge der Aufnahme ab). Das man die eingestellte fps rate nicht exakt bekommt, kann man aber auch beim umkodieren in VD sehen!

  • Aufnahme: divx codec, fps 25
    Ergebnis: divx kodiertes avi file mit z.B. fps=25.0012

    Wenn diese kleine Abweichung schon genügt um die TV-Karte zurückzugeben, dann müsstest du auch auf VD verzichten, denn wie schon gesagt: stellt man bei VD einen bestimmten Wert der fps Rate ein und schaut sich das fertige Ergebnis mal an, wird man feststellen, dass dieses file nicht exakt die eingegebene fps Rate aufweist

  • Ich würde empfehlen das so zu machen :

    Die Rotation der Erde wurde in den letzten Jahren primär durch sich im Grab umdrehende Musiker angetrieben - Mainstream sei dank.

Jetzt mitmachen!

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