Encoder spuckt DirectShow-Fehler aus ?!

  • Hallo ihr Volldurchblicker :D

    wenn ich versuche mit dem Programm Nero Recode 3.1.4.0 (aus der Nero Suite 8) ein AVS (AviSynth) - Skript in "Nero Digital AVC" im "2-pass"-Verfahren zu encoden, erhalte ich jedesmal die Meldung...

    "DirectShow-Fehler. Graph konnte nicht gestartet werden."

    Im 1-pass funktioniert das ganze problemlos, auch wenn ich das Movie direkt importiere. Wie kann ich herausfinden, woran es liegt ? Ideen ?

    Nero-Support weiss Nix, Reinstallation hat nichts geholfen... :hm:

    Vielen Dank vorab! :cool:

  • Sieht unverdächtig aus...

    Zitat


    LoadPlugin("C:\Program Files (x86)\AviSynth\plugins\DGDecode.dll")
    LoadPlugin("C:\Program Files (x86)\AviSynth\plugins\TDeint\TDeint.dll")

    video=mpeg2source("mov1.d2v",cpu=6).TDeint(full=false, tryweave=true, MI=32, blockx=8, slow=2)
    audio=NicAC3Source("mov1 T80 2_0ch 448Kbps DELAY 0ms.ac3")
    return AudioDub(video,audio)

    Gibt es eine Art Debug-Tool (wie diese kleinen Helferlein-Tools von Sysinternals) um der Ursache der Fehlermeldung auf die Schliche zu kommen ?

  • Ich seh in deinem Script nichts was in irgend einer Form mit DirectShow zu tun haben sollte. Ist das wirklich dein kompletter Script? :huh:

    Und hast du mal deine "Avisynth\Plugins" Verzeichnis nach irgendwelchen verdächtigen .avsi Dateien durchsucht? Wär nich das erste mal, wenn hier das Problem liegt ;D

    Was dein "eine Art Debug-Tool" angeht: Eventuell kommt man mit dem Dependcy Walker weiter. Der zeigt zumindest welche DLL's geladen werden.

    Natürlich könnte man auch den DirectShow Graph mit dem GraphEdit inspizieren, aber einen DirectShow Graph sollte es bei dem Script ja eigentlich gar nicht geben!

    Ansonsten: Wenn der Script so wie er ist in VirtualDub öffnet, dann muss es sich wohl um ein Problem in Nero Recode handeln...

  • Dass man über DirectShow direkt auf Avisynth Scripte zugreifen kann ist mir aber neu!

    Welcher DirectShow Filter sollte den dafür verantwortlich sein, als Quelle für den jeweiligen Avisynth Script zu dienen? Einen eigenen "Avisynth" DirectShow Filter finde ich zumindest bei mir nicht :grübeln:

    Und Avisynth Scripte in Anwendungen ohne Avisynth-Support über ffdshow zu öffnen klappt ja soweit ich weiß nur, wenn man zuerst mit makeAVIS.exe eine "Fake" AVI Datei erstellt...

  • Zitat

    Dass man über DirectShow direkt auf Avisynth Scripte zugreifen kann ist mir aber neu!


    Direkt vermutlich nicht aber DirectShow basierte Player wie der WMP können ja durchaus auch Avisynth Skripte abspielen, wenn sie ffdshow nutzen.
    Nero konnte, glaub vor Nero 7, zumindest keine Avisynth Skripte öffnen und konnte es irgendwann. Soweit mir bekannt ist sind alle Nero Filter DirectShow basiert und Nero Recode besitzt auch ein paar Routinen um an das vfw Interface zu gehen und den entsprechenden Output an ihre DirectShowEncoder/Decoder zu schicken. Zumindest früher gab es aber immer mal wieder Probleme mit diesem 'makeAVIS'-Ersatz in Nero, müsste man mal googlen und beim Nerosupport nachfragen. Hab zugegebenermaßen lange kein Avisynthskript mehr mit Nero Recode umgewandelt, weiß aber noch, dass es früher beim 2pass Probleme gab wenn man manche Filter verwendet hat. :)

    Cu Selur

  • Also irgendwie haut es den "TDeint" aus der Kurve, ohne den geht es!

    Ich demuxe meine .mpgs immer mit DGindex, erstelle eine d2v-file und füttere es dann zwecks Deinterlacing per AviSynth-Skript ins Nero Recode.

    Kann ich DGindex bzw. TDeint irgendwie "kompatibel" machen ? Ideen ?

  • Ich versteh zwar nicht, wieso das Problem ausgerechnet dann auftreten soll, wenn TDeint im Script verwendet wird, aber zur Not könntest du immer noch deinen Script in VirtualDub öffnen, das Video verlustfrei (e.g. FFV1 oder HuffYUV) in einer AVI-Datei speichern und diese dann direkt in Nero hinein füttern. Genügend HDD Kapazität vorausgesetzt. Ansonsten wäre MakeAVIS.exe, das bei ffdshow dabei ist, ein Versuch wert. Das Tool erzeugt eine "Fake" AVI Datei aus deinem Avisynth Script, die dann später über ffdshow "decodiert" werden kann. Vllt kommt Nero damit ja besser zurecht...

    (Es ist zu beachten, dass du vollständige Pfade zu den Dateien in deinem Avisynth Script verwenden musst, wenn es mit MakeAVIS klappen soll)

  • Kannste vergessen, gibt keinen halbwegs sinnigen Weg wie man bestimmen könnte welches Programm welche DirectShow Filter nutzt.

    Cu Selur

    Ähm, naja. Bei Anwendungen, die den "standard" DirectShow-GraphBuilder benutzen, werden genau die Filter ausgewählt, die die Quelle (z.B. die Quell-Datei) mit der Senke (z.B dem Video Renderer) verbinden können. Und sofern es dabei an einer Stelle mehrere mögliche Filter zur Auswahl gibt, wird der Filter mit dem höheren Merit bevorzugt. Die Merti-Werte der einzelnen DirectShow Filter kann man zum Beispiel mit GraphStudio oder dem FilterManager bearbeiten. Kommt keine Verbindung zwischen Quelle und Senke zustande, z.B. weil passende "Transform" Filter fehlen, dann schlägt die Wiedergabe fehl...

  • Kontainer haben keine Codecs. Codecs sind nur für Inhalte zuständig, aber niemals für eine Verpackung.

    Was du meinst, Fr0stbeule, sind DirectShow-"Splitter"-Filter für den Kontainer, und DirectShow-"Decoder"-Filter für Video und Audio.

    Hier ist man ziemlich auf die Möglichkeiten beschränkt, die einem die Filter selber anbieten. Wenn das System einen Rundruf startet: "Welcher Filter kann mit dem Format #### etwas anfangen?", dann können sich die einzelnen Filter als geeignet melden oder nicht. Bei manchen Filtern kann man in ihrer eigenen Konfiguration einstellen, wofür sie sich zuständig melden sollen.

    • Den XviD-Decoderfilter kann man beispielsweise so einstellen, dass es auch für DivX und generisches MP4V zuständig sein soll - oder doch nur für XviD-Videos alleine. Den DivX-Decoderfilter entsprechend ebenfalls.
    • Den Haali Media Splitter kann während der Installation man so einstellen, dass es je nach Wunsch für MKV, MP4, AVI, MPEG-PS und MPEG-TS zuständig sein soll - oder nicht.
    • ffdshow läßt sich jederzeit konfigurieren, welche Formate es für sich zum Decodieren beanspruchen soll - und bei einigen Formaten kann man sogar das Decodieren selbst an den Original-Decoderfilter durchreichen lassen (z.B. XviD), so dass ffdshow nur noch die anschließende Filterung durchführt.

    Wenn tatsächlich mehrere Filter für das selbe Kontainer- oder Medien-Format registriert sind, dann kann man nur noch deren Reihenfolge steuern, welcher davon wie "beliebt" ist. Beispiele für Merit-Steuerprogramme hat LoRd_MuldeR genannt (ich nenne mal noch Headbands' GSpot 2.70a).

    Ein paar Player haben darüber hinaus noch die Möglichkeit, selber bestimmte Filter zu bevorzugen, unabhängig vom Windows-weiten Standard.

  • Um das ganze aber übergreifend zu machen müsste man ein Programm haben was entweder im Hintergrund läuft oder vor jedem Aufruf eines anderen Programmes aufgerufen wird um die Merits je nach Anforderung anzupassen.
    Und dies wäre nur eine Lösung die man nehmen könnte wenn sich das Programm wirklich den "standard" DirectShow-GraphBuilder benutzen.
    -> als halbwegs sinnigen Weg sehe ich das nicht an ;)

Jetzt mitmachen!

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