Bild und Ton asynchron

  • Hallo. Ich versuche alte VHS-Bänder auf DVD zu überspielen. Dazu spiele ich die VHS-Casetten mit einem VHS-Recorder ab, speise das Video- und Audiosignal in meine Digitalcamera und übertrage den DV-Datenstrom per Firewire zum PC. Soweit funktioniert alles gut. Die auf der Festplatte gespeicherte avi-Datei lässt sich abspielen, Bild und Ton sind synchron.
    Anschliessend codiere ich das Video mittels avs-Script und CCE 2.70.02.12 nach der Anweisung aus diesem Forum.

    AVS-Script:

    DirectShowSource("d:\Video.avi")
    ConvertToYV12
    SeparateFields()
    odd=SelectOdd.Convolution3D(1, 6, 10, 6, 8, 2.8, 0)
    evn=SelectEven.Convolution3D(1, 6, 10, 6, 8, 2.8, 0)
    Interleave(evn,odd)
    Weave()
    DoubleWeave.SelectOdd()

    Der Ton wird dabei als wav-Datei gespeichert und von mir dann mittels Besweet mit den Voreinstellungen "DSPguru_MP2_for_DVD" in eine mp2-Datei umgewandelt. Am Ende nutze ich die TMPGenc-Tools um Video (mpv) und Audio (mp2) zu einer mpg-Datei zu multiplexen und erhalte dabei leider einen Film, bei dem zu Beginn Ton und Bild synchron sind, am Ende jedoch asynchron.

    Ein Versuch mit dem Canopus Procoder brachte einwandfreie Resultate, aber warum funktioniert es mit CCE, Besweet und den TMPGenc-Tools nicht?

    Würde mich sehr über einen Tipp freuen!

  • 1.) Direct Show Source ist die schlechteste Lösung
    2.) DV de-Interlaced man nicht .(Punkt)
    3.) Wenn man DVD macht dann Interlaced DVD und das können
    Procoder, TMPGENC und undund und und
    OHNE AVISYNTH.

    Teste das und berichte.

    Gruss BergH

  • bergh
    Alles richtig :)
    Ist aber das erste mal dass Du das hier im Forum geschrieben hast,gell ;D

    Zitat

    dann mittels Besweet mit den Voreinstellungen "DSPguru_MP2_for_DVD" in eine mp2-Datei umgewandelt.


    Ergänzung.
    Lass doch den Ton in WAV,Procoder kann mit nicht korrekten Streams nichts anfangen.
    Musst Du den Ton separat haben,dann Demuxe den Stream mit VDubMod
    filtere den Tonanteil und füge ihn im Procoder unter "Target" wieder ein.

    Datenrettungen Normwandlungen Restaurierungen Digitalisierungen

  • Danke für die prompte Antwort.

    zu 1).
    Hier der Guide von Doom9:

    Interlaced DV

    AviSource("C:\MyDVFiles\DV_type2_file.avi")
    SeparateFields()
    odd=SelectOdd.Convolution3D(1, 6, 10, 6, 8, 2.8, 0)
    evn=SelectEven.Convolution3D(1, 6, 10, 6, 8, 2.8, 0)
    Interleave(evn,odd)
    Weave()
    DoubleWeave.SelectOdd()

    This way each field will be filtered separately, thus the interlaced structure will be preserved. Replace AviSource with DirectShowSource like above if your DV AVI is type-1.

    Da mein Ausgangsmaterial DV AVI Typ 1 ist muss ich directshowsource nutzen.

    zu 2).
    Genau, man deinterlaced nicht, deshalb ja auch das avs-script. Ich dachte so codiere man die Halbbilder einzeln und füge sie anschliessend wieder zusammen. Das Ergebnis ist jedenfalls genauso interlaced wie das Ausgangsmaterial.

    zu3).
    Ich weiss, dass Procoder etc. das können. Das klärt aber meine Frage nicht und nützt mir wenig wenn ich den CCE-Encoder benutzen möchte.

  • Da kann ich Dir nicht helfen,eventuell nimmt der CCE nur Streams in YV12.Dann müsstest Du ConvertTo am Ende des Scripts anhängen.

    Selber setze ich auf die Schnelle den Canopus_DV_File_Converter ein,der wandelt diese "Exoten" ins neue DV-AVI2.
    Dieser Hinweis habe ich hier nur eingefügt da Du oben den Procoder erwähnt hast.Hast Du den,dann hast den Anderen auch.

    Datenrettungen Normwandlungen Restaurierungen Digitalisierungen

  • Genau deshalb ja in meinem avs-script (siehe oben) auch die zusätzliche Zeile:
    ConvertToYV12

    Ich habe jetzt mal den Ton mit VirtualDub als wav-Datei aus der primären avi-Datei extrahiert, dann per BeSweet in mp2 umgewandelt und mit den Mpeg-Tools aus TMPGenc 2.5 zu einer mpg-Datei zusammengefügt. Leider ist das Ergebnis dasselbe wie zuvor. Am Ende werden Bild und Ton asynchron. Es liegt also nicht daran, dass CCE den Ton falsch decodiert und eine fehlerhafte wav-Datei erzeugt.

  • Zitat

    Genau deshalb ja in meinem avs-script (siehe oben) auch die zusätzliche Zeile:
    ConvertToYV12


    Ja,habs im Erstposting gefunden...Avisynth meckert doch wenn Du da keine () einfügst.

    Zitat

    dann per BeSweet in mp2 umgewandelt


    Mit BeSweet/BeLight hab ich das noch nie gemacht.
    Wie auch nicht mit HeadAc3he.

    Wav oder m2a gebe ich hier zusammen mit dem Bildanteil in meinen Codierer.
    Du kannst doch das sicher auch mit dem CCE.Stellst da bei Output den Ton auf mpeg 1 Layer 2.
    Bild und Ton sollten von einem Tool "verwoben-verzahnt" werden.

    BeSweet :mad: Was denkst Du wie ich hier begeistert bin wenn ich in den tieferen Einstellungen meiner Tonbearbeitungsprogramme die Bezeichnung "DSPGuru" jedesmal rausnehmen muss.

    Convolution3D...und dann in YV12.
    Habe mal gelesen dass der Fehlerhaft sei und die weitere "Restaurierung" auf den Sankt Nimmerleinstag verschoben wurde.

    Datenrettungen Normwandlungen Restaurierungen Digitalisierungen

  • Für CCE sollte die Quelle YUY2 sein, also besser ConvertToYUY2() verwenden (können die neueren CCE-Versionen neuerdings mit YV12 umgehen? Früher ging das nicht...). Der Skript ist in Ordnung; er filtert das Video via Convolution3D - hier sollte man unbedingt die YUV2-Version nehmen, denn die funktioniert im Gegensatz zur (nie vollendeten) YV12-Version.

    Wie ist denn der Ton kodiert? 16 Bit / 48 kHz? In MP2 würde ich ihn mit tooLame umwandeln - oder mit einem der integrierten MP2 Encoder von TMPGEnc oder Procoder (CCE ist im Audio-Bereich nicht so berühmt).

    bb

  • Hab mal wieder einen Versuch gestartet:

    1.avs-Script geändert: YUY2 und entsprechende Convoluten3d.dll verwendet

    LoadPlugin("D:\Programme\DVD\AviSynth 2.5\plugins\Convolution3d.dll")
    AVISource("H:\Video.avi")
    SeparateFields()
    odd=SelectOdd.Convolution3D(1, 6, 10, 6, 8, 2.8, 0)
    evn=SelectEven.Convolution3D(1, 6, 10, 6, 8, 2.8, 0)
    Interleave(evn,odd)
    Weave()
    DoubleWeave.SelectOdd()

    2. codiert mit CCE 2.70.02.12 (Mode MPEG-2 for DVD, Multipass VBR 2Pass, Framerate 25)

    3. diesmal den Ton mit CCE 2.70.02.12 als mpeg-1 mit Bitrate 256kbps 48000Hz Joint Stereo als mpa-Datei gespeichert

    4. mpv und mpa einmal mit den Mpeg-Tools aus TMPGEnc, ein weiteres Mal mit DVD-lab Pro 2.30 zur mpg-Datei bzw. vob-Datei zusammengefügt

    Ergebnis: wie gehabt, am Anfang des Filmes sind Bild und Ton synchron, am Ende asynchron (Ton vor Bild).
    Iregndwelche Ideen woran das liegen könnte, obwohl Procoder aus derselben Ausgangsdatei eine einwandfrei synchrone DVD erstellen kann?

  • Zitat

    Kann mir bitte mal einer erklären, was dieser Haufen von Even / Odd Befehlen und das doppelte weave bewirken soll ?



    Es werden die even- und die odd-frames einzeln mit c3d gefiltert (schonmal suboptimal) und schlußendlich aus dem bff- ein tff-stream gemacht.

    Für die Audio-Asynchonität hab ich auch keine Erklärung!

    Gruß Karl

  • Es werden die even- und die odd-frames einzeln mit c3d gefiltert (schonmal suboptimal) [...]


    Convolution3D funktioniert am besten mit progressivem Material; der Filter ist nicht für interlaced processing ausgelegt. Deswegen muss man even und odd separat filtern. Tut man das nicht, dann wird das Ergebnis schlechter, weil Convolution3D Pixel als benachbart annimmt, die gar nicht benachbart sind.

    bb

Jetzt mitmachen!

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