AVISource - dv Huffyuv Lagarith abspielen

  • Hallo

    Ich habe schon seit längerem das Problem, daß weder dv, noch Huffyuv noch Lagarith per AVISynth und AVISource in VirtualDub erkannt werden. Mittels DirectShowSource klappen alle, allerdings auch nur in der 32-Bit Version von VD. VD 64-Bit sagt zu allem was ich per AVISynth lade AVI Import Filter Error, selbst wenn ich mit DirectShowSource lade.

    Ich habe in den VfW Encoder-Settings von ffdshow (64) sowohl Huffyuv als auch dv auf libavcodec gestellt. Keine Änderung.

    Danach habe ich versucht zummindest das dv-Problem mithilfe von cedocida zu lösen. Klappt auch nicht. Win7 akzeptiert die cedocida.dll nicht, weder die 32-Bit noch die 64-Bit. Zwar wird die beiliegende INF gut angenommen und alle Einträge in Registry usw. existieren, aber laufen tut es dennoch nicht. Ein Versuch die DLL per regsvr32 selbst zu aktivieren scheitert mit dieser Meldung: Das Modul cedocida.dll wurde geladen, aber der DLLRegisterServer-Eingangspunkt wurde nicht gefunden. Stellen sie sicher, dass cedocida.dll eine gültige DLL-Datei ist...

    Mittlerweile verzweifle ich ein wenig. Unter meinem alten XP-System hat das mit VfW via ffdshow immer gut geklappt, aber nie unter Win7.

    Das einzige was mittlerweile läuft ist Lagarith in VD 32-bit. Alles andere geht wie gesagt nicht.

    Hoffe jemand kann mir helfen

  • Das Problem ist, dass man sich für eine Avisynth-Version entscheiden muss: 32 oder 64 Bit. Eine Parallelinstallation ist meines Wissens nicht möglich. Der Rest der Kette (Codecs, Filter, Tools, ...) muss dann auch konsequent 32 oder 64 Bit durchgezogen werden.

  • Klingt einleuchtend... Ich werde das gleich mal testen. Ich hatte mal avisynth 64 installiert, aber aus irgendeinem Grund wieder deinstalliert weil irgendwas nicht ging. Bislang hab ich jedenfalls keine Geschwindigkeitsvorteile bemerken können. Gibt es irgendwelche guten Gründe für 32-bit oder 64-Bit?

    Nur wundert mich, daß cedocida eben auch nicht funktioniert - egal ob als 32-bit oder 64-bit und egal ob in VD 64 oder VD 32. In irgendeiner Version müsste der ja funktionieren.

    Einmal editiert, zuletzt von rodgar (27. Mai 2011 um 15:06)

  • Zitat

    Gibt es irgendwelche guten Gründe für 32-bit oder 64-Bit?


    32bit -> eine Anwendung kann nicht mehr als 2GB Speicher verwenden.
    Wenn die Filter die man verwendet ordentlich geschrieben und rechen- und speicherintensiv sind, sollte 64bit schneller sein.

    Zitat

    Nur wundert mich, daß cedocida eben auch nicht funktioniert - egal ob als 32-bit oder 64-bit und egal ob in VD 64 oder VD 32. In irgendeiner Version müsste der ja funktionieren.


    Zumindest falls ein entsprechender VFW Decoder installiert ist und da sonst nichts im System schief läuft. :)

  • So, ich hab ffdshow 32-bit installiert (v1.1.3861). Avisynth ist auch 32-bit (2.58 MT), Virtual Dub ebenfalls 32-bit (1.9.11). VFW Encoder Einstellungen -> Decoder -> Huffyuv und dv auf libavcodec. Geht dennoch nicht :(

    Jetzt probiere ich einen 64-Bit-Strang... aber ich ahne schreckliches.

  • Zitat

    Gibt es irgendwelche guten Gründe für 32-bit oder 64-Bit?

    Natürlich müssen die präferierten Filter auch für 64 Bit zur Verfügung stehen. Das könnte noch eine Hürde darstellen.

    Xvid und x264 bieten meines Wissens einen leichten Geschwindigkeitsvorteil (10 - 20 % ??) in der 64 Bit-Version.

    Vlt. noch ganz interessant: http://forum.doom9.org/showthread.php?t=160666

  • Gerade bei mir mal versucht: (64bit Win7, 32bit Virtual Dub, 32bit Avisynth, 32bit ffdshow)
    1. huffyuv Material direkt in Virtual Dub öffnen -> klappt ohne Probleme
    2. Avisynth script mit AviSource("huffyuv.avi") drinnen geöffnet -> klappt ohne Probleme

    Hab dann Lagarith installiert und den Videostream nach Lagarith umgewandelt.
    1. Lagarith Material direkt in Virtual Dub öffnen -> klappt ohne Probleme
    2. Avisynth script mit AviSource("lagarith .avi") drinnen geöffnet -> klappt ohne Probleme


    => ist auf jeden Fall etwas, was an einer Einstellung von Dir liegt und kein allgemeines Problem.

  • Zitat

    => ist auf jeden Fall etwas, was an einer Einstellung von Dir liegt und kein allgemeines Problem.

    Das denke ich auch... nur ist die Frage woran es liegt.

    Ich hab jetzt VD64, ffdshow64 und avisynth64. Gleiches Problem nur mit dem Unterschied, daß VD64 nun genau das sagt, was zuvor eben VD32 gesagt hat, nämlich, daß es keinen Decompressor findet.

  • Zitat

    Vielleicht ist in der Registry die VIDC-Liste irgendwie defekt. Koepi hatte mal ein Tool geschrieben, welches leere Einträge löschen soll, weil alle nachfolgenden nicht mehr behandelt werden.

    http://forum.gleitz.info/showthread....aner-von-Koepi

    Halleluja... :cool: und ich war schon kurz davor mein System neu aufzusetzen. Vielen Dank für den Link zu diesem wunderbaren kleinen Tool!
    Jetzt geht alles einwandfrei, Lagarith, Huffyuv und dv. Nebeneffekt: Endlich ist auch die Ladeverzögerung beim öffnen des AVS in VD weg.

    Bin mir aber nicht ganz sicher ob VIDC-Cleaner oder einfach CCleaner die Arbeit erledigt hat. Habe beides direkt hintereinander ausgeführt und danach ffdshow und avisynth komplett neu installiert. Nur falls mal jemand das Selbe Problem haben sollte.

    2 Mal editiert, zuletzt von rodgar (27. Mai 2011 um 16:25)

  • Wenn ich das nur wüsste.
    Ich halte nichts von Codec-Packs, daher gehe ich immer sehr spartanisch vor und installiere lediglich ffdshow und CoreAVC. Nun musste ich aber noch Lagarith haben und habe zwischenzeitlich Cedocida - DV Codec installiert... Bis auf Lagarith hab ich dann einfach alles deinstalliert, den CCleaner und VIDC-Cleaner laufen lassen. Danach nur ffdshow und avisynth neu installiert und es ging...

    ABER jetzt wirds seltsam:
    Es geht zwar, aber nicht wenn ich viele Dateien gleichzeitig lade. Es handelt sich hierbei um ein Urlaubsvideo, das 3:15 stunden lang ist und aus 23 Einzelvideos besteht. Die Länge oder die Größe der Videos ist bei diesem Problem entscheidend.

    AVISource("video.avi") -> geht

    AVISource("video01.avi", "video02.avi"..... "video22.avi") -> geht nicht

    Und es wird seltsamerweise mit exakt der gleichen Fehlermeldung quittiert wie wenn der Codec nicht gefunden würde. Deshalb die Verwirrung. Ich denke letztlich hat weder CCleaner noch VIDC-Cleaner geholfen, sondern einfach, daß ich mein Script runtergeschrumpft habe auf eine einzige Zeile.

    Nun bleibt für mich natürlich die Frage, wieso das so ist.

    Ähnliches habe ich bereits in Verbindung mit SetMTMode(2) in Verbindung mit DirectShowSource() festgestellt. Exakt das Selbe Video wie oben läßt sich nicht encoden, wenn ich den Mode während dem Laden der Dateien auf 2 lasse.

    SetMTMode(2)
    DirectShowSource("video.avi")
    ...
    geht

    SetMTMode(5)
    DirectShowSource("video01.avi", "video02.avi"..... "video22.avi")
    SetMTMode(2)
    ...
    geht auch

    aber
    SetMTMode(2)
    DirectShowSource("video01.avi", "video02.avi"..... "video22.avi")
    ...
    geht nicht

    VirtualDub stürzt dann beim Encoden nach 10-20 Frames ab.

    Ich denke das sind Artverwandte Probleme, nur was steckt dahinter?

    ##############################################
    Nachtrag:
    Ich hab mal sukzessive nacheinander immer mehr Videos auskommentiert. Ergebnis: Nur die ersten 6 können hintereinander geladen werden (80867 Frames bzw. 53:55min) ohne das VD meckert es kenne den Codec nicht - Diese Videos sind im Format 720x576 ffdshow dv, jeweils 1,85GB groß und 8:59min lang. Alle weiteren können wieder ohne Probleme zusammen in einem geladen werden. Bei einem anderen Urlaubsvideo mit nur 2:15min Länge verteilt auf 16Dateien geht es problemlos.

    Sehr seltsame Angelegenheit.

    5 Mal editiert, zuletzt von rodgar (27. Mai 2011 um 17:21)

  • Leider gibt es Codecs, die nicht "re-entrant" programmiert wurden, die also mehrfaches Laden nicht aushalten.

    Und bei so extrem vielen Videos kann es auch gehörig an die Grenzen des Machbaren gehen, was für 32-bit- oder gar 16-bit-Kompatibilitäts-Prozessen möglich ist.

    Eventuell kommst du da mit AviSynth-nativen Alternativen zu AviSource weiter, z.B. FFmpegSource.

  • Die Grenzen des Machbaren... das beschreibt es sehr schön. Es ist nämlich egal wie ich es drehe und Wende. Selbst wenn das Script zummindest akzeptiert wird. Encode ich nun diese 6 Dateien stürzt VD ab. Und zwar bei allen meinen Videos. Manchmal habe ich Glück und ein einzelnes geht durch, aber meistens kommt es nichtmal 5000Frames weit.

    Aber seltsamerweise genau in dem Module, was du erwähnst. In Modul ffmpeg.

    Da ich jetzt auch nicht mehr weiterwusste bin ich wieder zurück zu DirectShowSource. Damit gehts zummindest.

    Aber das was du über ffmpegsource gesagt hast werde ich weiter verfolgen... Irgendwie muss es ja gehen :)
    Auf der anderen Seite: So schlimm finde ich das mit DirectShowSource nun auch wieder nicht oder gibts da irgendwelche gravierenden Nachteile von denen ich noch nichts gemerkt hab?

    Ich frage mich nur, wie ihr das alle macht. Ich bin doch nicht der einzige, der 50GB in Einzeldateien über Avisynth auf VirtualDub wirft und erwartet, daß etwas schönes hinten rauskommt, oder doch?
    Wenn ich da so manches Monster-Script sehe, dem ich intellektuell schon kaum mehr folgen kann, dann kann ich mir das irgendwie erst recht nicht vorstellen.

  • DirectShowSource hat den Nachteil, dass man schwer vorhersagen kann, ob wirklich alles sauber läuft. Vielleicht bekommst du keine optimale Qualität, vielleicht fehlt sogar im zweiten Durchlauf ein Frame, das im ersten mit berechnet wurde. Das hängt alles sehr stark vom gerade verwendeten Decoder ab. Wenn das ffdshow ist, und dieser sinnvoll eingestellt ist, kann es zuverlässig und gut laufen.
    __

    Nicht jeder hat die gleichen Video-Probleme zu lösen. Ich beispielsweise habe gar keinen Workflow, bei dem zwischendurch dutzende AVIs in Gigabytes entstehen.
    __

    Es gibt auch noch die Funktion "SegmentedAviSource". Falls es sich um ein gesplittetes AVI-Video handelt (wo vermutlich nur ein AVI-Header im ersten Segment ist), sollte man es damit wieder gemeinsam verarbeiten. Mit mehreren einzelnen, unabhängig gespeicherten AVIs funktioniert das aber nicht.
    __

    Außerdem ist vermutlich noch ein Unterschied zwischen

    AviSource("01.avi", "02.avi", "03.avi", ..., "22.avi") # nur ein Quellfilter, der mehrere Dateien öffnet

    und

    AviSource("01.avi") # mehrere Quell-Clips, die zusammengefügt werden
    \ ++ AviSource("02.avi")
    \ ++ AviSource("03.avi")
    ...
    \ ++ AviSource("22.avi")

  • Zitat


    AviSource("01.avi", "02.avi", "03.avi", ..., "22.avi") # nur ein Quellfilter, der mehrere Dateien öffnet

    und

    AviSource("01.avi") # mehrere Quell-Clips, die zusammengefügt werden
    \ ++ AviSource("02.avi")
    \ ++ AviSource("03.avi")
    ...
    \ ++ AviSource("22.avi")

    Ist bei mir leider kein Unterschied festzustellen. Beides stürzt ab :(

    Ich muss am Montag mal schaun ob auch einzelne Dateien während dem encoden abstürzen. Momentan bin ich ja schon froh, wenn sich das Script überhaupt korrekt in VD öffnen läßt. Durchlaufen tut bislang aber keins was mit AVISource Dateien öffnet.

    Die Nachteile von DirectShowSource klingen bedenklich. Hoffe ich bekomme die Alternative irgendwie hin.

    Das mit SegmentedAVISource könnte evtl. funktionieren. Immerhin ist es genau das, denn es wurde von VHS über VD als Segmented AVI gecaptured. Vielleicht klappt das ja.

  • Hab das mit SegmentedAVISource() mal ausprobiert... Ist ja schon eine feine Sache, vor allem weil man halt die ganzen Segmente nicht mehr auflisten muss, sondern eben nur den Hauptnamen und gut ist.
    Scheint bislang auch gut durchzulaufen, aber das Encoden geht mit 13fps dann doch 2 Frames langsamer als DirectShowSource. Dafür öffnet sich das Script in VD schneller und man kann wesentlich schneller darin "rumsuchen".

  • Zitat

    Nun ja, das heißt aber: Wenn SegmentedAviSource funktioniert, dann kann bereits AviSource("02.avi") nicht funktioniert haben. Glaube ich ...

    Das könnte wohl stimmen... Alles was ich mit AVISource geladen habe konnte zwar teilweise (mehr oder weniger Dateien gleichzeitig) in VD geöffnet werden, aber sobald es ans rendern ging, ist er irgendwann abgestürzt, mal früher mal später. DirectShowSource klappte hingegen in jeder Kombination.

    So ganz verstehe ich das aber nicht. Heißt das, daß nur das erste AVI einen "Header" oder sowas wie "Metadaten" (oder wie auch immer man das nennt) hat und alle
    folgenden nicht?
    Wenn ja, wieso kann man diese dann dennoch problemlos einzeln mit und ohne AVISource mit und ohne Script in VD öffnen und auch abspielen, nur eben nicht über AVISource neu encoden?

Jetzt mitmachen!

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