rechteckigen bereich aus einem frame in einen anderen kopieren

  • > ja, der code ist schon ein bisschen komplex.

    Ach, das ist relativ. Du sagst "komplex", ich sag "Pippifax". Seit wir diesen Thread hier angefangen haben, hat mein PC knapp 12 Stunden Laufzeit von 1080p-Material umkodiert, mit Avisynth-Code der ... na, ich weiß nicht, als was Du den bezeichen würdest, wenn das hier schon "komplex" sein soll. ;)

    Allerdings hab' ich mich auch nicht mit StaxRip & Co. 'rumschlagen müssen. Script schreiben, in x264 füttern, fertig.

    "Effizient ist nicht der, der das geilste Tool benutzt. Effizient ist der, der zuerst fertig ist."

    ;)

  • Zitat

    Erfahrung ist eine nützliche Sache.
    Leider macht man sie meist erst
    kurz nachdem man sie brauchte.

    Das wichtigste daran ist: Nur selber gesammelte Erfahrung schmeckt lecker.

  • ja, das stimmt. und ich hab in den letzten 2 tagen viel gelernt.

    weiss jetzt immerhin wie ich eigene avisynth scripte schreiben und in staxrip einbauen kann. wie ich externe filter einbauchen und wie ich virtualdub zum testen der scripte nutzen kann.
    für mich hat es sich auf jeden fall gelohnt.

  • hab jetzt für mich eine einfache und kurze lösung gefunden. es funktioniert perfekt und bezieht sich nur auf benannte frames und genau definierte bereiche in diesen.
    ich lade dazu einfach eine maske(blaues rechteck) mit derselben grösse wie den wegzumachenden fleck aus einer png-datei und überschreibe damit den endsprechenden
    bereich im zielframe(im beispiel hier frame 15). dann berechne ich mit exinpaint(http://avisynth.org.ru/exinpaint/exinpaint.html) aus diesem markierten bereich einen plausiblen hintergrund,
    er interpolation die fehlenden daten aus umgebungspixeln. was soll ich sagen: geil!

    LoadPlugin("D:\tools\staxrip\Applications\DGMPGDec\DGDecode.dll")
    LoadCPlugin("D:\tools\staxrip\Applications\AviSynth plugins\Yadif\yadif.dll")
    LoadPlugin("D:\tools\staxrip\Applications\AviSynth plugins\exinpaint.dll")
    MPEG2Source("F:\temp\staxrip\soor temp files\soor.d2v")
    Crop(0,0, -Width % 8,-Height % 8)
    ConvertToYV12()
    Yadif()
    Crop(20,46,-0,-44)
    Trim(12787,12947)
    function doit(clip c)
    {
    bild=Imagereader("f:\staxrip\avisynth masken\mask6x10.png").ConvertToYV12(matrix="pc.601")
    d=overlay(c,bild,x=413,y=195,mode="blend",opacity=1.0)
    exinpaint(c,d,color=$1dff6b,xsize=6,ysize=10)
    }
    ApplyRange(15,15,"doit")

    das einzig schwere war dabei, den korrekten yuv12-farbwert($1dff6b) für die farbe blau(0,0,255) rauszufinden bzw. eine korrekte formel.

Jetzt mitmachen!

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