Wieder mal komisches Interlace: Diesmal "AntZ"

  • Trekkie2

    Wie versprochen gibt es natürlich noch die fertige Funktion. Ja, es waren noch einige Bugs vorhanden, sollte jetzt aber alles rund laufen.:D

    Code
    InterlacingReader(wmode=true, mthresh=0.28, progressiv=8, prerange=3, patternlength=11)Function InterlacingReader(clip clp, bool "wmode", float "mthresh", int "progressiv", int "prerange", int "patternlength") {###### PREPARATION ######ord = clp.getparity() ? 1 : 0global thresh = default(mthresh,0.3)global source = clpglobal output = "D:\text.log"global patlength = default(patternlength, 1)global prev = default(prerange,0)global mode = default(wmode, false)global untel = mode == false ? clp.leakkerneldeint(order=ord) : clp.tfm(mode=0, pp=0, MI=72)global maxpuffer = default(progressiv, 2)###### VAR.. ######global diffc = 100.0global temp = 0global pnumber = maxpuffer+1global proc = 1global intc = 0###### Conditional Function Chain, evaluated from bottom to top (!) ######c99=WriteFileIf(source, output, "proc != prop", "proc", """ ":" """, """ "progressiv" """, append=true)c98=WriteFileIf(c99, output, "intc != intp", "intc", """ ":" """, """ "interlaced" """, append=true)c4=FrameEvaluate(c98, "global proc = pnumber == maxpuffer ? ceil(float(temp-intc)/patlength)*patlength + intc : proc		global intc = diffp < thresh && diffc > thresh && proc > intc ? current_frame - prev : intc")c3=FrameEvaluate(c4, "global pnumber = diffc > thresh ? 0 : (diffp > thresh && diffc < thresh ? 1 : pnumber+1)		global temp = diffp > thresh && diffc < thresh ? current_frame : temp		global prop = proc		global intp = intc")c2=FrameEvaluate(c3, "global diffc = LumaDifference(source, untel)")      c1=FrameEvaluate(c2, "global diffp = diffc")return(c1) }


    Die Parameter habe ich dir ja bereits erklärt, falls aber andere auch noch interessiert sind, werde ich gerne noch eine readme dazu schreiben. Bei eigenen Bedarf werde ich die Funktion auch noch etwas erweitern, sollte aber so für dich ausreichen.
    Modifizieren könntest du das ganze denn zum Beispiel so:

    Code
    c99=WriteFileIf(source, output, "proc != prop", """ "\ source.interlacef(" """, "intc", """ "," """, "(proc-1)", """ ") ++" """, append=true)c98=WriteFileIf(c99, output, "intc != intp", """ "\ source.progressivef(" """, "proc", """ "," """, "(intc-1)", """ ") ++" """, append=true)


    Einfach die betreffenden Zeilen mit diesen hier ersetzen, die "source" festlegen (source = audiodub(video,audio)) und die notwendigen Funktion anfügen, z.B.


    Die erste Zeile muss natürlich dann auch noch abgeändert werden.
    Ob die Modifizierung auf diese Weise nun wirklich macht, was sie soll, kann ich dir nicht sagen, aber ein bisschen ausprobieren, denn erhält man recht schnell das richtige.
    Viel Spaß beim Testen.:zunge:

  • Hi und Vielen Dank!

    Leider bin ich grade ziemlich im Streß - daher weiß ich noch nicht wann, aber ich werde das Skript definitiv noch testen.

    Grüße!
    Trekkie2

  • Trekkie2

    Gucke am besten auch mal hier.
    Ist eigentlich für einen anderen Zweck entwickelt worden, das Resultat mit deiner Source sah aber gar nicht schlecht aus.
    Vorteil: es sieht recht flüssig aus, Ton wird nicht bearbeitet, ist recht schnell
    Nachteil: die Zerlegungsmethode ist akkurater und flüssiger, man verliert etwas Auflösung, weil gleich drei Frames geblendet werden.

Jetzt mitmachen!

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