Anfängerskript mit AviSource und fehlendem Decoder

  • Jahre nicht mehr gemacht und jetzt geht es nicht mehr. Ich habe mir alte VHS-Bänder in große AVI-Dateien (Sony dvsd) digitalisieren lassen. Diese möchte ich mit:


    VirtualDub nach H264 in kleinere AVI-Dateien

    MeGUI nach mp4


    encodieren (und nebenbei vom Zeilensprung befreien). Früher war immer dies mein Skript:

    Code
    1. LoadCPlugin("D:\Programme\AviSynth 2.5\Externe Plugins\yadif17\yadif.dll")
    2. AviSource("I:\Film.avi").Yadif()

    AviSynth meldet: "AviSource: Couldn't locate a decompressor for fourcc dvsd". Entsprechend quittieren VirtualDub und MeGUI mit dieser Meldung: "AviSynth open failure. AviSource: Couldn't locate a decompressor for fourcc dvsd). Der ffdshow fehlte mir, hab ihn mir neu heruntergeladen (rev4532 vom 17.07.2014) und explizit das Dedodieren von DV (dvsd) angehakt. Trotzdem die Meldung.


    VLC spielt die AVIs ab, ein anderer Player (Splash) aber nur den Ton, kein Bild, trotz installiertem ffdshow.


    Ich wüßte nicht, was ich damals anders gemacht habe, da hat es immer funktioniert. Jetzt bin ich wieder ganz am Anfang. :(

  • Hier ist der Auszug von MediaInfo. Es handelt sich wohl um eine DV-AVI mit dem fourcc dvsd.

    Als ich vor ca. 8 Jahren mit meinem Avisynth-Skript gearbeitete habe, hatte ich den ffdshow. Diesmal klappt es nicht.



  • FourCC "dvsd" weist auf einen DV-Codec für SD-Auflösung hin.


    Unter anderem findet man den Cedocida DV Codec im Software-Archiv von VideoHelp, oder eventuell noch ein ffdshow, bei dem man nur den VfW-Teil aktiviert (= ffvfw; den DirectShow-Teil kann man mittlerweile getrost durch LAV Filters ersetzen) – aber installieren allein reicht u.U. nicht, man muss vielleicht auch die Codecs konfigurieren und die Formate aktivieren, die man vom VfW-Decoder behandelt haben will. Du sagst, du hast das getan ... dann könnte es sein, dass sich ffdshow/ffvfw nicht richtig registriert hat, oder du hast DV beim DShow-Decoder statt beim VfW-Decoder aktiviert, oder du verwendest einen 64-bit-Encoder, hast aber nur einen 32-bit-VfW-Decoder ... aber das passt nicht zu LoadCPlugin("Yadif.dll"), das sieht nach herkömmlichem AviSynth 2.5/2.6 in 32 bit aus.


    Hinweis zu Yadif: DV hat normalerweise die Halbbild-Dominanz "Bottom Field First" (BFF), und AviSource liefert normalerweise auch einen BFF-Clip, weil nur von DV-AVI bekannt ist, dass meist BFF verwendet wird. Aber wer ganz sicher gehen will, kann auch noch "AssumeBFF()" nach AviSource einfügen.

  • Der Tipp mit Cedocida hat mir ein Erfolgserlebnis gebracht. :thumbup:Den Codec kannte ich noch gar nicht. Zunächst wollte er sich nicht installieren lassen, kam immer eine Meldung wegen fehlender Signaturen, aber das Skript kann ich trotzdem jetzt in AviSynth, VirtualDub und MeGUI öffnen. :)


    Yadif also besser nicht nehmen bei DV-Material? Besser "AssumeBFF()"? Also dann nur so:

    Code
    1. AviSource("I:\Film.avi").AssumeBFF()

    In der Vorschau zeigt mir AviSynth damit eindeutig Kammeffekte. Wenn ich Yadif nehme, sind die Kämme weg. Tippe aber eher darauf, dass ich da was mit dem Skript nicht verstanden habe ...

  • Völliges Missverständnis.


    AssumeBFF() ist ja kein Deinterlacer, dieser Filter definiert nur eine Eigenschaft des Videoclips; also nicht anstatt Yadif(), sondern davor eingefügt. Muss aber nicht unbedingt. Der Clip ist ja wahrscheinlich schon BFF aus AviSource() heraus.

  • Oh ja, zusammen mit Yadif, nicht anstelle von:

    Code
    1. LoadCPlugin("D:\Programme\AviSynth 2.5\Externe Plugins\yadif17\yadif.dll")
    2. AviSource("I:\Film").AssumeBFF().Yadif()

    So ist es besser? Ich kannte AssumeBFF bisher nicht. Das Skript wie oben nimmt also an, dass es sich um Bottom Field First handelt und setzt dann den Yadif ein.

  • Genau. AviSource geht im ersten Fall davon aus; im zweiten Fall stellst du es noch mal sicher. In beiden Fällen ermittelt Yadif aus dem Clip, dass dieser die Eigenschaft "BFF" hat. Und wenn er wirklich die Fielddominanz BFF hat, dann arbeitet Yadif auch korrekt.

  • und wer hat, bitte schön, denn den Ton mit 32khz gecaptured!?!

    Wie meine Vorredner schon anmerkten: Es fehlt ein DV Codec auf deinem Rechner.

    Lass die Finger von ffdshow, ist veraltet, nimm lieber Cedocida als Decoder.

    Wenn es schon ein reiner DV Codec sein soll.

    Der verhunzt das Sytem nicht unnötig, oder wenn du das Lav Video/Audio/Splitter Paket installiert hast,

    kannst du auch mit DirectShowSource oder DSS2 die Filme decodieren.

    FFMpeg basierende Decoder wie LWLibavVideoSource aus dem LSMASHSource Paket

    oder FFVideoSource aus dem FFMS2 Paket tun es übrigens auch.

    Aber wenn es dir nur um das Schneiden in Virtualdub geht:

    Lade dir VirtualDub2 herunter, der dort eingebaute FFMpeg Decoder decodiert dein Material wunderbar.

    Und mit Direct Stream Copy auf Video und Audio hast du in der 64bit Version ruckzuck dein Zeugs verlustlos geschnitten.

    Deinterlacen und all den üblichen Kram kannst du dann viel komfortabler mit MeGui vor nehmen.

    Meine zwei Cents......

  • Danke, Cedocida habe ich jetzt. Ich sollte doch viel mehr hier sein, wusste bis eben nicht, dass es ein VirtualDub 2 gibt und werde mir das sogleich runterladen. Mit dem alten VirtualDub arbeite ich seit Jahren, aber kam nie mehr eine neue Version. Sogar MP4 soll es verarbeiten können. Aber ich will meine DV-AVIs nicht nur schneiden, sondern umwandeln zu kleineren H264-AVIs und MP4.

    Deine zwei Cents, sehr gerne. :thumbup: