Hilfe! Nur schwarzes Video bei NTSC nach PAL konvertierung

  • hi,

    ich habe eine dringende frage: bei vielen mpeg-2 ntsc videos, die ich nach PAL wandeln möchte, tritt bei dem untenstehenden script ein böser fehler: nach einer unbestimmten minuten oder auch nur sekundenzahl bricht das fertig gewandelte video um in schwarz. das schwarz zieht sich dann über die gesamte restliche laufzeit des videos.

    ein freund sagte mir, dass man das problem umgehen kann, wenn man mit cutamaran das video einfach verdoppelt. dann bekommt man zwar immernoch schwarz, aber erst dann, wenn das 2. video schon begonnen hat, was sich ja dann einfach abschneiden lässt. das funktioniert auch bei einigen videos, aber leider nicht bei allen.

    es muss sich um irgendeinen bug im script oder plug-in handeln. zum encoden nehme ich cinema craft encoder sp 2.70.02.12. hier ist das script:

    LoadPlugin("C:\Programme\DGMPGDe\DGDecode.dll")
    Loadplugin("C:\Programme\AviSynth 2.5\plugins\TIVTC.dll")
    Loadplugin("C:\Programme\AviSynth 2.5\plugins\motion_06dec06.dll")
    import("C:\Programme\AviSynth 2.5\plugins\MotionProtectedFPS.avs")
    import("C:\Programme\AviSynth 2.5\plugins\securedeint.avs")
    MPEG2Source("FILM.d2v")
    securedeint()
    MotionProtectedFPS(50)
    bicubicresize(width,576)
    assumetff().separatefields().selectevery(4,0,3).weave()

    ich hoffe, jemand kann helfen. danke!

  • Verschoben in das allgemeine AviSynth-Forum. "Fortgeschritten" gibt's erst, wenn jemand eigene Funktionen mit gewisser Komplexität schreibt oder mit NLE mehrere Clips verknüpft.

    Hier dagegen scheinen schon mal irgendwo Grundlagen verlorengegangen zu sein. Die Kette "deinterlacen - 50 fps - progressiv resizen - interlaced phaseshift" ist mir etwas zu merkwürdig...

  • ich habe das script von einem kumpel. kann sein, dass da etwas schiefläuft. wenn du das was besser machen würdest, wäre ich sehr froh, tipps zu bekommen.

  • Das Script ist vollkommen in Ordnung, vom Aufbau her würde ich es genauso machen, bzw. das ist eigentlich der einzige Weg. Erst bobben (SecureDeint ist ein Bobber), dann Resizing und Frameratekonvertierung (oder umgekehrt) und zum Schluss reinterlacen.

    Vielleicht hast du von irgendeinem Plugin eine veraltete Version.

    Um das auszuschließen versuch mal folgendes Script (verwendet nur interne Avisynth-Funktionen, außer MPEG2Source):

    Code
    LoadPlugin("C:\Programme\DGMPGDe\DGDecode.dll")
    
    
    MPEG2Source("FILM.d2v", cpu=0,idct=5)
    Bob(0,1)
    ConvertFPS(50)
    bicubicresize(width,576)
    assumetff().separatefields().selectevery(4,0,3).weave()


    Wenn es jetzt nicht mehr nach einer Weile schwarz wird, dann liegt es entweder an MotionProtectedFPS oder SecureDeint.

    Einmal editiert, zuletzt von Skiller (21. August 2009 um 23:19)

  • also das hat jetzt völlig problemlos funktioniert! das ergebnis sieht auf den ersten blick sehr ordentlich aus. was genau ist denn bei deinem script jetzt anders als bei meinem? was wird weniger gemacht und inwiefern wirkt sich das aus? bzw., liegt es jetzt an den plugins, dass meines nicht so gut läuft, oder brauche ich die plugins am ende gar nicht?

  • was genau ist denn bei deinem script jetzt anders als bei meinem? was wird weniger gemacht und inwiefern wirkt sich das aus?


    Naja, Bob(0,1) bobbt das Video einfach so, ohne daufzuschauen, wo es wirklich Sinn macht. SecureDeint() macht genau das und erhält somit mehr Details.
    Und ConvertFPS(50) ändert die Framerate, indem die Bilder gewichtet vermischt werden, während im Gegensatz dazu MotionProtectedFPS(50) komplett neue Zwischenbilder berechnet. Welches man bevorzugt ist Geschmackssache. Mit ConvertFPS(50) machst du jedenfalls nichts falsch, das kann man fast blind benutzen, während man bei MotionProtectedFPS aufpassen muss, denn für manche Videos ist es eher ungeeignet und produziert zu viele falsch berechnete Bildelemente und das sieht sehr unschön aus.


    Ich bin mir ziemlich sicher, dass der Fehler durch MotionProtectedFPS bzw. deine motion.dll verursacht wird. SecureDeint kannst du - testweise - ja mal wieder einbauen, indem du die Zeile mit Bob(0,1) mit SecureDeint() überschreibst.

    Du kannst natürlich das Script so lassen, aber das mit SecureDeint() statt Bob(0,1) würde ich auf jeden Fall noch probieren.

    Wenn du bei MotionProtectedFPS(50) bleiben willst, dann probier mal diese Version der motion.dll aus:
    http://forum.gleitz.info/showthread.php?t=34733
    (Download Post #2)

Jetzt mitmachen!

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