AVISynth entfernen des Greenscreens und hinzufügen von Filter(n)

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • AVISynth entfernen des Greenscreens und hinzufügen von Filter(n)

    Anzeige
    Guten Tag liebe Member,

    ich verwende nun schon seit einiger Zeit mit AVISynth mit MeGUI, von Video und Audio, bin damit auch zu frieden.

    Nun aber die Große Frage zu der Entfernung des Greenscreen, das habe ich immer noch über mein Schnittprogramm => Frameserver => MeGUI gemacht, aber das dauert immer viel zu lange, je nach Filter.
    Ich kann zwar den Greenscreen entfernen, aber das sieht unsauber aus und die Grünen Ränder an manchen Stellen die nicht entfernt werden und auch da bleiben sollen, bei denen möchte ich einen laichten Blaustich, denn der Grünstich sieht nicht so gut aus.

    Der angegebene Code ist rein für Testzwecke da, also keine Audiospur, mir geht es rein um den Greenscreen.

    Zudem möchte ich bei z.B. einen Horror Spiel das alle Weißen (Hellen) Farben abgedunkelt werden, um bei einem Dunklen Horror Game die Atmo nicht mit mir in Bunt zerstören.
    Wenn möglich wäre es auch für mich Hilfreich wenn mir jemand helfen kann bezüglich Verkleinerung und Positionierung der Webcam an einer bestimmten Stelle.

    Auf die Antworten mit "Verwende doch dieses oder jenes Programm um die AVISynth File zu erstellen" ich mache mir ein eigenes Script welches mir Spiele spezifisch ein Formular zeigt und ich dort dann nur noch die Daten eintrage und auf Generieren drücke, dann erzeugt es mir die Files z.B. so:

    File 1 - Let's Play GTA 5 Online 1#0000
    File 2 - Let's Play GTA 5 Online 1#0001
    File 3 - Let's Play GTA 5 Online 1#0002
    File 4 - Let's Play GTA 5 Online 1#0003
    ...

    Hier der Code an dem ich versucht haben den GG zu entfernen.

    Quellcode

    1. __v = AVISource("GamePlay.avi", audio=false)
    2. __w = DirectShowSource("WebCam.mp4", audio=false)
    3. __w = __w.ConvertToRGB32()
    4. __mask = ColorKeyMask(__w, $29A265, 50)
    5. __out = Overlay(__v, __w, mask=ShowAlpha(__mask), y=0, x=0, mode="Blend", opacity=4)
    6. __out
    7. ConvertToYV12()
    Alles anzeigen


    Ich bedanke mich für eure schnellen und hilfreichen Antworten.

    Grüße
    DominatorLP
  • Fehler die ich im Skript grad sehe:
    1. Lieber FFMS2 nutzen, anstatt DirectShowSource. DirectShowSource sollte man nur als letzten Ausweg verwenden, weil das Teil recht unzureichend ist.
    2. Die Maske müsste aus mehreren Farbangaben bestehen die den Grünlichen Ton entsprechen. Sprich du müsstest mehrere Grünfarbangaben angeben und sie der Maske hinzufügen.

    Quellcode

    1. LoadPlugin("D:\MeGUI\Tools\FFMS\FFMS2.DLL")
    2. __v = AVISource("GamePlay.avi", audio=false).AssumeFPS(30,1) # FPS des Videos angeben
    3. __file = "WebCam.mp4"
    4. FFIndex(__file)
    5. __w = AudioDub(FFVideoSource(__file, threads=1), FFAudioSource(__file)).ConvertToRGB32()
    6. __mask = ColorKeyMask(__w, $29A265, 50).ColorKeyMask($29B9A7, 23).ColorKeyMask($310103, 10).ShowAlpha(pixel_type="RGB32")
    7. # opacity geht nur von 0.0 unsichtbar bis 1.0 sichtbar. 0.5 ist Transparent, Standard ist 1.0
    8. Overlay(__v, __w, 0, 0, __mask).ConvertToYV12()
    Alles anzeigen


    Je mehr Farbtöne du für die Maske angibst, desto feiner wird das Ganze.
  • Okey, danke für die schnelle Antwort, klingt eigentlich logisch. *lach*

    Gibt es nach dem Entfernen des Greenscreens noch die Möglichkeit den Grünstich Herauszubekommen?

    Also habe da mal ein Test-Video hochgeladen, es ist kein Ton dabei und nicht Synchron, nur um mein Anliegen zu verdeutlichen.
    Ich würde gerne den Grünstich herausbekommen, nur weiß ich nicht wie, kann mir jemand dabei helfen?

    youtu.be/n4RZFVUdCvo

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von DominatorLP ()

  • Um den Grünstich los zu werden müsstest du mehr ColorKeyMask angeben und mit dem Toleranzbereich hantieren. Ist zwars ne reine Sisyphusarbeit, aber der korrekte Weg.

    ODER

    Die bereits erstellte Maske um jeweils 1 oder 2 Pixel an die untere Seitenkannte verkleinern lassen und oben und an den Seiten die Reste mit Addborder auffüllen wieder.

    Somit hättest du eine kleinere Maske als vorher, aber da die Maske nicht mehr exakt mit dem Bild übereinstimmt wo die Farben entfernt werden sollen, wird im eigentlichen Bild nun etwas mehr weggenommen. Damit sollte sich der Grünstichton vertuschen lassen.

    Macht man zwars so nicht, aber ist halt der einfachste Weg jetzt.

    Für üblich lässt man das Weiß im Maskenbild verstärken, sodas das Weiß im Endeffekt etwas mehr verdeckt als üblich. Aber da ist mir kein Filter in AVISynth bekannt grad.
  • Ich habe mal einiges probiert, den Grünstich bekommt man raus, da gibt es einen Befehl, unter folgendem Link steht die Beschreibung:
    avisynth.nl/index.php/Tweak

    Ich habe folgenden Befehl nach der Erstellung der Maske eingefügt:

    Quellcode

    1. __w = __w.ConvertToYV12().Tweak(sat=0, startHue=172, endHue=279)


    Somit wird der Grünstich der z.B. in den Haaren ist oder Reflexionen entfernt.

    Gruß
    DominatorLP
  • AviSynth kommt halt nicht an Professionelles Keying heran wo man mittels Matte-Choker und Spill-Supression die Übergänge verbessern kann usw...

    Übrigens ein gratis Greenscreen-Programm mit all diesen Funktionen ist "CineGobs Keyer", damit kann man seine Greenscreen-Videos wirklich sehr schön vom Screen befreien und zB. ein Alpha-Channel Video exportieren... leider hab ich keinen passenden Codec gefunden der auch den Alpha-Kanal des Programmes unterstützt hat (und 2x exportieren war mir dann doch zu aufwendig) da das Programm seit 2010 nicht mehr weiter entwickelt wird... :(

    PS: Die Ergebnisse waren bei mir zumindest mit extrem miesem Greenscreen (Falten, Schatten usw) im direkten Vergleich mit dem Premiere Filter wesentlich besser... nur leider liess sich das nicht automatisieren und Quelltext gibts von dem Programm leider auch nicht...

    // EDiT: Habs jetzt nochmal ausprobiert, nun gehts auf einmal zu exportieren... weiß nicht wieso es vorher nicht wollte... Ergebnis: extrem gut mit nur 20min Arbeit inkl. Rotoscoping...
    ——YouTube————————————————————————————————————————————
    — Endlos-Projekte: Minecraft (SinglePlayer), Craft The World, Banished, Besiege, Sims4
    — ..Abgeschlossen: Leisure Suit Larry 6+7, Dishonored, Surface 2+3, Mirrors Edge, uvm
    — . Kurz- Projekte: The Tower, Fighting Is Magic, Euro Truck Simulator 2, uvm
    — ......Retro-Ecke: Day Of The Tentacle, Flight Of The Amazon Queen, NFS: HP2, uvm
    ————————————————————————————————————————————TbMzockt.de—

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von TbMzockt ()