Vorschläge Anime AVS Skript

  • Kannst ja trotzdem die GPU-Versionen verwenden, für die reine Berechnung der Medianfilterung. Das bisschen Lutxy sollte da, im Vergleich zum Aufwand der Berechnung des Medians, kaum ins Gewicht fallen.

  • huhu, ich habe folgendes problem ich habe ein video indem zum teil cartoon und zum teil normale menschen rumlaufen. nu frag ich mich ob man das anime script so anwenden kann das z.b. von frame 0-10000 alle filter verwendet werden und von 10001-20000 dann keine filter oder nur gewisse filter die das bild nicht als cartoon wirken lassen. dann ab 20001 wieder im cartoon modus mit dem filter usw.
    gibts eventuell nen befehl der alle plugins "killt" ? jemand ne idee ?

  • Hier mal ein kleines Beispiel:

    #das ungekürzte orignal laden und etweilige Filter die auf das ganze Material angewedet werden darauf anwenden
    a = mpeg2source("C:\test.d2v").TDeint(type=3).Tweak(Sat=1.2)

    # jetzt den Clip aufteilen:
    b = a.trim(0,100) #beinhaltet die ersten 100 Frames
    c = a.trim(100,0) #beinhaltet die restlichen Frames

    #globale Variablen setzen
    # Werte für die Zielaufloesung & das Zuschneiden
    Breite = 640 # mod 16 werte empfehlenswert aber nicht unbedingt
    Hoehe = 480 # mod 16 werte empfehlenswert aber nicht unbedingt
    Links = 10
    Oben = 4
    Rechts = 700 # - (minus) werte fuehren zum absturz!
    Unten = 568 # - (minus) werte fuehren zum absturz!

    #auf jeden Clip einzeln Filter anwengen
    b.FastLineDarken(strength=75,thinning=0).LanczosResize(Breite,Hoehe,Links,Oben,Rechts,Unten)
    c.BilinearResize(Breite,Hoehe,Links,Oben,Rechts,Unten)

    #Zusammenfügen und wiedergeben der Teile
    return a+b


    Ist nur ein kleines Beispiel.

    Cu Selur

  • hey thx scheint zu funktionieren
    naja kleine korrektur es muss "return b+c" heißen da man ja sonst die source doppelt drin hat ;)
    werd dann mal ein wenig an den filtern rumtesten und mal sehn was bei rauskommt :)

  • Zitat von Selur

    # jetzt den Clip aufteilen:
    b = a.trim(0,100) #beinhaltet die ersten 100 Frames
    c = a.trim(100,0) #beinhaltet die restlichen Frames

    Müsste es nicht eher so geschrieben werden?

    Code
    b = a.trim(0,100) #beinhaltet die ersten 100 Frames
    c = a.trim(10[B]1[/B],0) #beinhaltet die restlichen Frames

    Sonst würde doch ein Frame zuviel bearbeitet werden, oder?

  • " Sonst würde doch ein Frame zuviel bearbeitet werden, oder?"
    Trim(0,100) sollte die ersten 100 Frames ausgeben
    Trim(100,0) sollte die ersten 100 Frames löschen
    (notfalls einfach mal antesten, aber so hab ich die Syntax im Kopf :) )

    "naja kleine korrektur es muss "return b+c" heißen da man ja sonst die source doppelt drin hat "
    stimmt :)

    Cu Selur

  • Trim( first_frame , last_frame )

    oder

    Trim( first_frame , -[nr_of_frames] )

    also liefert "trim( 70, 80 )" einen clip zurück, der die Frames 70 bis 80 beinhaltet. "trim( 70, -10 )" liefert einen Clip zurück, der die Frames 70 bis 79 beinhaltet (10 Frames Länge, Start bei 70).

    a.Trim( 0, 1000 ) + b.Trim( 1001, 2250 ) + a.Trim(2251,3333) + b.Trim( 3334, ... ) ...usw.

  • Übrigens: Wer mal wirklich brutalen Source für eigene Experimente sucht und die Möglichkeit dazu hat:

    Dragonball GT (lost episodes 1-16) auf Cartoon Network Spanien (DVB-S, Astra 19.1). Das ist schlimmer als das schlimmste VHS-Tape, das ich besitze:
    Interlaced, blended, Artefakte, Pumpen, Mosquitos, falsches AR - das volle Programm. Da könnte man glatt einen Wettbewerb draus machen. ;)
    Standbilder gut hinzubekommen, ist dabei nicht das Problem. Viel schwieriger ist es, die Bewegungen noch gut aussehen zu lassen.

  • hmm, hab mal bischen rumprobiert, aber leider funktioniert das so nicht:

    "c.FastLineDarken(strength=128,thinning=0)" bzw. wenn ich andere befehle wie z.b "c.Tweak(Sat=1.2)" eingebe.

  • So, angespornt durch die schon erwähnte Dragonball GT-Folge, habe ich auch mal mein Glück versucht.

    Aber eines gleich vorweg: Mit komplexeren Scripts fange ich gerade erst an, also nicht gleich meckern oder lachen, ja? ;)
    Allerdings hatte/habe ich ein Problem, das eine Lösung, wie sie mir vorschwebte, nicht ganz möglich machte: Ich kriege Repair.dll ums Verrecken nicht geladen, ganz egal, was ich auch tue - immer heißt es: Unable to load ... :( Und mit yv12lutxy... da kriege ich Kopfweh bei den Expressions. ;)
    Aber OK, zum Script ...
    Der Source war wirklich Mist, also benötigte ich was "starkes". Median-Filter sind aber zu stark, Temporal-Filter verschmieren alles. Also habe ich versucht, das beste aus zwei Welten zu kombinieren und außerdem die Umrandungslinien, wie sie bei Trickfilmen üblich sind, zu stabilisieren. Das Ergebnis habe ich mal TemporalMedianMix() getauft:



    Den abschließenden Convolution3D kann man auch weglassen, ich habe ihn gebraucht. Ließe sich aber auch über einen zusätzlichen Parameter definieren, ob er angewendet werden soll oder nicht. An dem Kernel für die Maske muss ich noch arbeiten, auch am Divisor. Und die Parameter mi und ti haben nur einen geringen Einfluss, weniger als ich hoffte. Aber vielleicht greift ja einer der Profis die Idee auf und macht was vernünftiges draus.
    Und wie gesagt: Das ist gedacht für wirklich üblen Source.

  • Moin, wollte nur mal schnell sagen das es so funktioniert wie selur es beschrieben hat. hier mal der Code, ist übrigens von der Simpsons Season 1 Disc 3 Kapitel 5

    Für Ratschläge bezüglich der einstellungen wär ich dankbar, da ich im moment noch sehr am rumprobieren bin welcher befehl wofür ist :D

Jetzt mitmachen!

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