Batch "Duplicates löschen und Lücken füllen"

  • Hallo,

    es wäre super, wenn jemand die Zeit finden würde mir den Ansatz für eine Lösung zu nennen.

    Ich habe sehr viele (lagarith/interlace-)Schnippsel, in die sich im Laufe einer recht langen Bearbeitungskette (Sources leider nicht mehr vorhanden) folgender Defekt eingeschlichen hat:

    In unregelmäßigen Abständen wurden Frames durch vorhergehende ersetzt.

    Aus der Framereihenfolge 1,2,3,4 wurde also 1,2,2,4

    Ich müsste also prüfen ob zwei aufeinanderfolgende Frames (bit-)identisch sind und
    dann das zweite durch einen Blend? (bzw. mv?) von Vorgänger und Nachfolger ersetzen.

    Mein Ansatz war multidecimate, bin mir jedoch nicht sicher, ob nicht evtl. ein Delta=0 da bitgenaue Kopie, einfacher/besser wäre.
    Und ich denke mal ohne Conditional Filter bzw. Block Statements komme ich hier nicht weiter.. ein kleiner Tipp wäre super.

    Danke

  • Ne, was er will ist ein Skript das Duplikate findet, verwirft(dezimiert) und durch ein per MVFlowInter Generiertes Bild basierent auf den vorhergehenden und nachfolgendem Bild ersetzt. Wenn ich ihn richtig verstanden habe.

    (hab ich? ;))


    (dup würde hier bestenfals nichts tun, denn die Bilder sind ja schon identisch.)

  • Jo, das hatten wir wohl schon 1000end mal ... bin gerade faul, neu machen geht schneller als suchen, also ist hier die 1000-und-erste Variante.

    Funktion: (speichern als "ReplaceDups1001.avs")

    Code
    function ReplaceDups1001(clip clp, float "thresh", bool "debug"){thresh  = default(thresh, 0.5)  # set as low as possible (when dups are bit-identical, set to 0.001debug   = default(debug, false) # 'true' will show metricsbv      = clp.MVAnalyse(isb=true, delta=2, truemotion=true, pel=2, idx=1)fv      = clp.MVAnalyse(isb=false,delta=2, truemotion=true, pel=2, idx=1)replace = clp.MVFlowInter(bv, fv, time=50, ml=70, idx=1).SelectEvery(1,-1)ConditionalFilter(clp, replace, clp, "YDifferenceFromPrevious()", "<", string(thresh), debug)debug ? stackhorizontal(clp,last) : lastreturn(last)}

    Benutzung:

  • Ja spinnt's ihr denn!

    Mitten in der Nacht kommen hilfreiche Vorschläge.
    Um 5! Uhr irgendwas wird mir von LigH die Arbeit abgenommen meine Frage im engl. Board zu stellen.
    Paar Stunden später kommt ein fertiges Skript v. Didée (der anstatt Anfängern zu helfen, lieber auf seiner Jacht sitzen sollte, die ihm für seine Skripte zusteht).

    Bin baff. Tausend Dank!!!

Jetzt mitmachen!

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