Beiträge von tenim

    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.

    muss mal schauen, ich meine aber das return in scripten bei staxrip ein problem darstellen. trotzdem danke für deine hilfe. wahnsinn, was es alles braucht, um gezielt einen 5x5 bereich in einem frame zu überschreiben.

    ich überlege ernsthaft, eine eigenen filter(dll) in c zu schreiben, welche dann genau das macht was ich will. also einfaches zeichnen+copy&paste funktionen framebasiert.
    so schwer kann das doch nicht sein. ich krieg einen zeiger auf dem inhalt des aktuellen frames übergeben und kann dann daraus kopieren bzw. darin manipulieren.
    wie immer ist da aber das problem mit den tutorials bzw. wo finde ich beispiele, hilfe...
    :)

    es muss an den befehlen liegen, das laden der dlls führt nicht zu fehlern. hab das gerade getestet.
    dieses script läuft durch:

    LoadPlugin("D:\tools\staxrip\Applications\DGMPGDec\DGDecode.dll")
    LoadCPlugin("D:\tools\staxrip\Applications\AviSynth plugins\Yadif\yadif.dll")
    MPEG2Source("F:\temp\staxrip\soor temp files\soor.d2v")
    Crop(0,0, -Width % 8,-Height % 8)
    ConvertToYV12()
    LoadPlugin("D:\tools\staxrip\Applications\AviSynth plugins\medianblur.dll")
    LoadPlugin("D:\tools\staxrip\Applications\AviSynth plugins\mt_masktools-25.dll")
    Yadif()
    Crop(20,46,-0,-44)
    Trim(12724,12947)

    virtualdum hab ich bisher nicht installiert. kann noch ne weile dauern.

    p.s.
    es müsste avisynth 2.5.8 sein.

    hab jetzt das globale trim rausgenommen und er stürzt trotzdem ab. die beiden .dll´s werden von avisynth(nicht staxrip) selbst automatisch geladen. wenn ich sie im avisynth-plugin-ordner hab stürzt er ab, sind sie nicht drin, gibts die meldung das er befehl mt_ .... nicht findet. lade ich die plugins in meinem filter-codeteil direkt, anstatt automatisch über avisynth stürzt er auch ab.

    filter-code:
    LoadPlugin("D:\tools\staxrip\Applications\AviSynth plugins\medianblur.dll")
    LoadPlugin("D:\tools\staxrip\Applications\AviSynth plugins\mt_masktools-25.dll")
    o = last
    mmask = mt_lutspa(relative=false,"x 413 > x 420 < y 194 > y 204 < & & & 255 0 ?")
    rep2 = o.MedianBlurT(0,0,0,2)
    rep2m = mt_merge(o,rep2,mmask)
    o.trim(0,12787) ++ rep2m.trim(12802,12803) ++ o.trim(12947,0)

    so:

    LoadPlugin("D:\tools\staxrip\Applications\DGMPGDec\DGDecode.dll")
    LoadCPlugin("D:\tools\staxrip\Applications\AviSynth plugins\Yadif\yadif.dll")
    MPEG2Source("F:\temp\staxrip\soor\soor.d2v")
    Crop(0,0, -Width % 8,-Height % 8)
    ConvertToYV12()
    Yadif()
    Crop(20,46,-0,-44)
    Trim(12787,12947)
    o = last
    mmask = mt_lutspa(relative=false,"x 413 > x 420 < y 194 > y 204 < & & & 255 0 ?")
    rep2 = o.MedianBlurT(0,0,0,2)
    rep2m = mt_merge(o,rep2,mmask)
    o.trim(0,12801) ++ rep2m.trim(12802,12803) ++ o.trim(12804,0)

    oh, ich seh gerade: liegt es an dem ersten trim? meine, die frameindexe sind danach ja wesentlich kleiner.

    ne, ich hab nur die eine *25.dll (32bit) in den applications/plugins -ordner von staxrip(nicht avisynths plugins-order) kopiert und diese per script-befehl
    LoadPlugin("...") im script manuell geladen. staxrip lädt keine plugin-dll´s automatisch, so das da keine probleme auftauchen dürften.
    dann hab ich die andere variante probiert: die .dll in den avisynth-plugins-ordner kopiert, von wo sie automatisch geladen wird -selbes resultat: staxrip crashed.
    es könnte villeicht auch daran liegen, das ies an dem script selbst liegt, das ich in staxrip(unter "Filters") eingebunden habe:

    Loadplugin("D:\tools\staxrip\Applications\AviSynth plugins\mt_masktools.dll")
    Loadplugin("D:\tools\staxrip\Applications\AviSynth plugins\medianblur.dll")
    o = last
    mmask = mt_lutspa(relative=false,"x 413 > x 420 < y 194 > y 204 < & & & 255 0 ?")
    rep2 = o.MedianBlurT(0,0,0,2)
    rep2m = mt_merge(o,rep2,mmask)
    o.trim(0,12801) ++ rep2m.trim(12802,12803) ++ o.trim(12804,0)

    villeicht kommt er ins schleudern und versucht bei jedem neuen frame die .dll zu laden, keine ahnung.

    Zitat

    Entschuldige

    quatsch, hat doch nichts mit dir zutun.
    ich hab übrigens die von dir verlinkte version genommen und die *25.dll probiert. leider stürzt staxrip bei dem versuch ab, die dll zu laden. "staxrip has crashed".
    die 64bit-version der dll ging auch nicht, aber das sollte ja eigentlich auch so sein, da ich zwar ein 64bit os hab(win7 64), aber avisynth in einer 32bit version vorliegt.

    wer weiss wo es da wieder hängt.

    ich kriegs nicht zum laufen. offensichtlich existiert die funktion "mt_lutspa" in keiner meiner runtergeladenen mt_masktools.dll´s(laut deren readme´s). hab die letzte "version 2 alpha 2" von WarpEnterprises genommen, auf der page von Fizick fand ich das plugin nicht. ich nutze notgedrungen avisynth 2.5.8, weil das im aktuellen staxrip die basis ist und müsste dazu passend dieses plugin finden. naja, ich hab von anfang an nicht geglaubt das es einfach ist und das hat sich wieder mal bestätigt. warum gibt es nicht einfach ein avisynth-plugin für framebasierte zeichenoperationen:
    rechteck, kreis, pixel zeichnen -fertig. allein einen rgb-pixel manuell setzen würde mir schon reichen. da gibt es wirklich 1000 verschiedene plugins zur videobearbeitung nur für einfachstes zeichnen nichts.

    hab jetzt raus, wie ich eigene scripte in staxrip einbinden kann. einfach auf "Filters" klicken ->"Profiles..." und dann in der textdatei eine eigene neue kategorie mit filternamen und
    befehlen einfügen.
    z.b.

    [Custom]
    ShowFPS = ShowFrameNumber(scroll=true, offset=0, text_color=$ff0000)

    wenn das script aus mehreren befehlen besteht, muss man diese offenbar mit "%newline%" trennen, so wie es auch bei den anderen befehlen zu sehen ist.

    die störung ist ein 5x7 pixel grosser heller bereich in einer sonst dunkelbraunen fläche und geht über 2 frames, wobei es im 2. frame nur noch marginal zu sehen ist. es wäre
    mir auch geholfen, wenn ich diesen bereich mit einem festgelegten rgb-wert füllen könnte, das müsste auch besser aussehen als weiss. allerdings hab ich dann die ungleichmässige struktur
    der eigentlichen fläche nicht mehr, welche viel echter wirken würde.
    es ist auch nur eine stelle im video, also nicht besonderes. aber bei genauem hinsehen merkt man es und es fällt auf, weswegen ich da was machen möchte.

    hallo,

    weiss nicht, ob das hier das richtige unterformum dafür ist, bei bedarf bitte verschieben.
    ich arbeite mit staxrip und wollte eine kurze videosequenz aus einem vob in ein x264 kodiertes mp4 file wandeln. das ganze klappt auch.
    aber: ich habe an einigen stellen des videos kleine, unschöne weisse "flecken", sowas wie "staub" bei älteren bildern und die würd ich gern entfernen.
    ich würde dazu gern aus einem frame, welcher vor dem/den eigentlichen frames mit den flecken kommt an genau der stelle ein rechteckigen bereich
    ausschneiden und diesen dann in die frames an derselben stelle pasten. das ganze geht, da die szenen fast keine bewegung an der stelle aufweisen.
    jetzt meine frage: wie kann ich das mit avisynth unter staxrip machen? kann ich dazu ein script schreiben, a´la:
    -kopiere bei frame 2345 an den koordinaten 200,300,205,305 den bildbereich und füge diesen bei frame 2346 an position 200,300 ein
    und das dann als zusatzparameter an staxrip übergene? oder ist die vorgehensweise völlig anders?

    Zitat

    War dir eigtl. klar, dass der schnelle 1st-Pass nur fürs 2-Pass-Encoding gedacht ist?

    nein, zuerst nicht. erst als ich schon zig encodings mit der einstellung hinter mir hatte ist es mir aufgegangen. aber nachdem die qualität dann doch so gut war, dachte ich mir: ist doch egal, wenn es klappt.

    immerhin hat er mit 55 fps encodet anstatt mit 16 :D (athlon x2 4400+)

    * ich habe keine frame by frame vergleiche gemacht, weil ich der meinung war -wenn ich den unterschied mit bloßen augen nicht sehe,
    ist es nicht wichtig für mein bild.

    * die zieldaten mit dem fast 1pass sind grösser als die mit normalen einstellungen. fast 1pass=67mb, normal 35-40 mb

    also, die fast 1pass-einstellungen sind die von brother john.
    die einstellungen beziehen sich auf das frontend staxrip, deshalb die
    teilweise ungewöhnlichen bezeichnungen. ich habe das crf auf 21 angepasst,
    sonst ist es der fast 1pass:

    * crf 21
    * analysis->motion estimation method: 'diamond' (--me dia)
    * analysis->subpixel motion estimation: 1 (--subme 1)
    * common->reference frames: 1
    * --partitions none bzw. --analyse none
    * analysis->trellis rd quantisation: disabled (--trellis 0)
    * b-frames->rdo: disabled
    * b-frames->weight prediction: disabled
    * b-frames->bidirectional m.e.: disabled
    * analysis->mixed references: disabled
    * analysis->no fast pskip: disabled

    die andere (normale) einstellung, ist die x264-voreinstellung von staxrip 1.0.0.2 (crf 21 wieder von mir angepasst):

    * crf 21
    * analysis->motion estimation method: 'hexagon'
    * analysis->subpixel motion estimation: 6
    * common->reference frames: 3
    * --partitions all
    * analysis->trellis rd quantisation: final mb
    * b-frames->rdo: aktiv
    * b-frames->weight prediction: aktiv
    * b-frames->bidirectional m.e.: aktiv
    * analysis->mixed references: aktiv
    * analysis->no fast pskip: disabled

    das quellmaterial war mittelmässiges bis gutes material mit vielen statischen szenen aber auch teilweiser action. oft hatte das quellmaterial selbst schon einige sichtbare mosaikbildung bei leuten mit einfarbiger kleidung, die dann mit der fast 1pass -variante zum schluss gleich oder besser aussahen als mit der langsameren und genaueren.

    das quellmaterial war ca. 1,6gb gross, ziel ca. 450-600mb.