Beiträge von Archimedes1

    Mit der Umstellung auf Version 2.6.0 von AviSynth, habe ich auch gleich die Probleme mit den Verschiebungen in den Farbkanälen bei Farbraumumwandlungen (von RGB32 nach YV12 und wieder zurück) behoben.


    Die Verzeichnisnamen im Vorlagen-Verzeichnis werden nun ebenfalls übersetzt. Ebenso die Parameter-Beschreibungen im Skript-Inspektor (die Übersetzungen sind aber noch nicht fertig).


    Zudem habe ich "NLMeansCL" zu den Entrauschern hinzugefügt.

    Können Sie aus dem XP-Modus per Video Capture die Filme von der Kamera überspielen und danach auch auf dem Brenner brennen. Und noch eine Frage: Ich benutzte zusätzlich die Ulead Filmbrennerei für das Erstellen von Menues - wissen Sie, ob das auch funktioniert?


    Im XP-Modus mache ich lediglich die Bearbeitung (den Schnitt) und die Enkodierung nach Mpeg 2 (direkt aus dem Schnittprogramm heraus). Alles andere (Überspielen mit ScenalyzerLive und Brennen auf DVD) erfolgt auf dem Hostsystem. Das Überspielen im XP-Modus (wenn es denn funktioniert) wäre mir ohnehin zu riskant (wegen der Performance).

    Ich habe das .avs ein wenig modifiziert um die einzelnen Bilder einzulesen ->

    Code
    1. ImageSource("W:\Bilder\Thailand & Australien 2010\CIMG%d.jpg", start=1553, end=1797, pixel_type="RGB32")


    Schon nimmt das Schicksal seinen Lauf. :lol:


    Damit erzeugst du nämlich einen Video-Clip:


    Zitat

    start = 0, end = 1000: Specifies the starting and ending numbers used for filename generation. The file corresponding to start is always frame 0 in the clip, the file corresponding to end is frame (end-start). The resulting clip has (end-start+1) frames. 'end=0' does NOT mean 'no upper bound' as with ImageWriter. The first file in the sequence, i.e., corresponding to 'start', MUST exist in order for clip parameters to be computed. Any missing files in the sequence are replaced with a blank frame.


    Quelle >>


    Das willst du sicher nicht. Du musst die gewünschten Bilder schon vorher markieren und so in Fritz Photo hinzufügen. Beim Laden von Bildern hast du im Übrigen die Auswahl zwischen drei verschiedenen (Start-)Skripten: ImageSource, ImmaRead und FFVideoSource.avs (beim letztgenannten Skript bitte nicht vom Namen irritieren lassen, die entsprechende Funktion heißt eben so).


    Zitat

    "Es dauert manchmal doch geraume Zeit, bis man erkennt, dass der Nikolaus kein Heiliger, sondern ein Mensch, und der Krampus (Knecht Ruprecht) ein Arschloch ist."


    Gerhard Polt


    :santa:

    Es gab Updates für die Plugins NNEDI2 und EEDI3. Die Updates für NNEDI3 und die ImageMagick-Bibliotheken waren schon im letzten "leisen" Update enthalten.


    Fürs Antialiasing habe ich jetzt auch noch "SantiagMod" mit ins Boot geholt. Man könnte jetzt natürlich auch noch mit Masken (siehe MaskTools) arbeiten, habe ich aber vorerst gelassen (benötigt außerdem den YV12-Farbraum).


    Original (PointResize von 3264x2448 auf 1024x768) >>


    SantiagMod(type="EEDI3", strh=1, strv=1) >>
    SantiagMod(type="EEDI3", strh=2, strv=2) >>


    SantiagMod(type="NNEDI3", strh=1, strv=1) >>
    SantiagMod(type="NNEDI3", strh=2, strv=2) >>

    Jetzt mal eine ganz dumme Frage. Eigentlich würden doch auch Screenshots genügen, um zu zeigen, dass ein Treiber unscharfe Schrift produziert? Den Monitor abzufotografieren bringt doch nur was, um ein Problem vor dem Monitor ähm... im Monitor aufzuzeigen. :D

    Der dünne Dull deckte dem dicken Dull das Dach. Danach dankte der dicke Dull dem dünnen Dull dafür, dass der dünne Dull dem dicken Dull das Dach deckte.


    So ähnlich muss sich die Geschichte zugetragen haben. :grübeln:


    Was hat das jetzt mit dem neuen Update zu tun? Nichts! :ani_lol: Oder doch? :grübeln:


    Die Änderungen:


    Kann mir jemand erklären, warum


    Code
    1. T01 = Crop(0 * Width / 4, 0 * Height / 4, Width / 4, Height / 4).FFT3DFilter()T02 = Crop(1 * Width / 4, 0 * Height / 4, Width / 4, Height / 4).FFT3DFilter()T03 = Crop(2 * Width / 4, 0 * Height / 4, Width / 4, Height / 4).FFT3DFilter()T04 = Crop(3 * Width / 4, 0 * Height / 4, Width / 4, Height / 4).FFT3DFilter()T05 = Crop(0 * Width / 4, 1 * Height / 4, Width / 4, Height / 4).FFT3DFilter()T06 = Crop(1 * Width / 4, 1 * Height / 4, Width / 4, Height / 4).FFT3DFilter()T07 = Crop(2 * Width / 4, 1 * Height / 4, Width / 4, Height / 4).FFT3DFilter()T08 = Crop(3 * Width / 4, 1 * Height / 4, Width / 4, Height / 4).FFT3DFilter()T09 = Crop(0 * Width / 4, 2 * Height / 4, Width / 4, Height / 4).FFT3DFilter()T10 = Crop(1 * Width / 4, 2 * Height / 4, Width / 4, Height / 4).FFT3DFilter()T11 = Crop(2 * Width / 4, 2 * Height / 4, Width / 4, Height / 4).FFT3DFilter()T12 = Crop(3 * Width / 4, 2 * Height / 4, Width / 4, Height / 4).FFT3DFilter()T13 = Crop(0 * Width / 4, 3 * Height / 4, Width / 4, Height / 4).FFT3DFilter()T14 = Crop(1 * Width / 4, 3 * Height / 4, Width / 4, Height / 4).FFT3DFilter()T15 = Crop(2 * Width / 4, 3 * Height / 4, Width / 4, Height / 4).FFT3DFilter()T16 = Crop(3 * Width / 4, 3 * Height / 4, Width / 4, Height / 4).FFT3DFilter()StackVertical(StackVertical(StackHorizontal(StackHorizontal(T01, T02), StackHorizontal(T03, T04)), StackHorizontal(StackHorizontal(T05, T06), StackHorizontal(T07, T08))), StackVertical(StackHorizontal(StackHorizontal(T09, T10), StackHorizontal(T11, T12)), StackHorizontal(StackHorizontal(T13, T14), StackHorizontal(T15, T16))))


    etwa doppelt so schnell ist, wie


    Code
    1. FFT3DFilter()


    ?


    Einen notwendigen Überlappungsbereich im 1. Skript lassen wir mal außen vor.


    Getestet mit AviSynth 2.60 (Version vom 27.09.2009) unter Windows 7. Das gleiche "Phänomen" habe ich im Windows-XP-Modus, wo ich AviSynth 2.58 installiert habe.

    Der Skriptinspektor kann auf Wunsch jetzt auch einen Schriftarten- und Farbauswahldialog anzeigen (siehe Skript "Subtitle").


    Bei der (einfachen) Eingabeüberprüfung ist mir aufgefallen, dass bei den AviSynth-Typen "float" und "int" das Minuszeichen nicht eingegeben werden konnte. Und bei "int" konnten keine Hexadezimalzahlen eingegeben werden. Das habe ich berichtigt.


    Um auch beliebige Werte in einem Eingabefeld zuzulassen, habe ich dem Skriptinspektor einen Schalter hinzugefügt, wo man die Eingabeüberprüfung deaktivieren kann. So lässt sich zum Beispiel in einem Feld, wo man eine Farbe eingeben kann, statt einer Zahl auch ein String (z. B. "color_gray50") eingeben.

    Alles neu, macht der Mai.


    Die Tooltips sind erstellt – vorerst aber nur in englischer Sprache. Wer bessere Erklärungen für die Tooltips beisteuern kann, nur her damit.


    Dann habe ich dem Skriptinspektor auch noch ein paar "Lernstufen" hinzugefügt: "Anfänger", "Fortgeschrittener" und "Experte". Ein "Experte" sieht alle Parameter, ein "Fortgeschrittener" nur die wichtigsten Parameter usw. "Anfänger" ist dabei Teilmenge von "Fortgeschrittener" und "Fortgeschrittener" ist Teilmenge von "Experte". Diese Informationen zu den Levels können ebenfalls im Skript untergebracht werden.


    Diese optionalen Informationen (für den Skriptinspektor) sehen nun wie folgt aus (Beispiel: GradFun2DBMod):



    Der erste Boolesche Wert steht für die Sichtbarkeit des Parameters (False würde z. B. bedeuten, dass der Parameter im Skriptinspektor gar nicht erscheint). Der zweite Wert definiert, ob der Parameter den Status "Read Only" hat. Der dritte Wert definiert den gewünschten Level. Zur Auswahl stehen: "Beginner", "Intermediate" und "Expert".


    Anschließend kann eine Definition für eine Auswahlliste ("PickList") folgen. Im Anschluss daran, können dann Informationen für einen Tooltip stehen.


    Wenn Informationen zu einem Parameter gänzlich fehlen, arbeitet das Programm mit Standardvorgaben. "True, False, Beginner" im Skript ist identisch mit der Standardvorgabe.

    Mit der Einführung des Skriptinspektors ist nun endlich das Skript "FritzPhotoResize" überflüssig geworden. Die entsprechenden Komponenten im Programm habe ich bereits entfernt. Auch die INI-Datei (das Programm kann auch ohne, dann aber nur JPG) ist jetzt wieder um einiges übersichtlicher geworden.


    Da alle Parameter jetzt ausschließlich unter "AviSynth-Skripte" bearbeitet werden, befindet sich die Vorschau jetzt direkt dahinter (und nicht mehr hinter Einstellungen).


    Dem Skriptinspektor habe ich eine einfache Eingabeüberprüfung hinzugefügt. Bei Ganzzahlen lassen sich nur Ziffern, bei Gleitpunktzahlen nur Ziffern und der Punkt eingeben usw. Liegt eine Ganzahl vor und es wird nichts eingegeben (leeres Feld), dann macht der Skriptinspektor daraus automatisch eine 0 (im Skript). Im Falle einer Gleitpunktzahl wird aus einem leeren Feld automatisch eine 0.0. Gibt man bei einer Gleitpunktzahl nur eine Ganzzahl ein, wird automatisch ein Punkt und eine Null hinzugefügt. Auf diese Weise kann ein im Skript definierter AviSynth-Typ (aus Versehen) nicht mit dem Skriptinspektor geändert werden.


    Dann ist da noch diese Sache mit den Tooltips. Ich habe das jetzt so umgesetzt, wie in der vorherigen Nachricht beschrieben.


    Einen einfachen Tooltip erstellt man wie folgt:


    Code
    1. # ==============================================================================# http://forum.doom9.org/showthread.php?t=100626# ==============================================================================weight = 1.0# ==============================================================================# weight = Defines how much influence the previous filter should have# ==============================================================================


    Auf diese Weise erscheint ein Tooltip beim Parameter und beim Wert.


    Will man getrennte Tooltips für Parameter und Wert, so geht man folgendermaßen vor:


    Code
    1. # ==============================================================================# http://forum.doom9.org/showthread.php?t=100626# ==============================================================================weight = 1.0# ==============================================================================# weight = Defines how much influence the previous filter should have | [0.0, 1.0]# ==============================================================================


    Jetzt erscheint beim Parameter der Text "Defines how much influence the previous filter should have" und beim Wert "[0.0, 1.0]".


    Weiteres Szenario: Auswahllisten. Sind für einen bestimmten AviSynth-Typ nur bestimmte Werte zulässig, so kann man eine Auswahlliste erzeugen, und zwar wie folgt:


    Code
    1. # ==============================================================================
    2. # http://forum.doom9.org/showthread.php?p=1045226
    3. # ==============================================================================
    4. field = 0
    5. # ==============================================================================
    6. # field = PickList, False, {0, 1}
    7. # ==============================================================================


    Im Skriptinspektor erscheint nun eine Auswahlliste ("PickList") mit den Ziffern 0 und 1. Der Boolesche Wert "False" sorgt dafür, dass die Auswahlliste editierbar ist (manchmal will man nicht lange in einer Liste suchen, und den Wert direkt eingeben).


    Die Vorlagen habe ich bereits entsprechend abgeändert. Überall wo diskrete Werte vorkommen, zeigt der Skriptinspektor jetzt eine Auswahlliste an. Mit den Texten für die Tooltips werde ich noch ein bisschen warten – schließlich müssen bzw. sollten die auch übersetzt werden. :motz:


    Das Update werde ich demnächst hochladen.

    Bin gerade am Experimentieren mit den Tooltips. Ich denke, im Skript sind die Informationen dann doch am Besten aufgehoben – so hat man auch bei der Skriptbearbeitung etwas davon.


    Im einfachsten Fall sehen diese Informationen (für den Skriptinspektor) wie folgt aus (Beispiel "Rotate"):


    Code
    1. # ==============================================================================# http://avisynth.org.ru/rotate/rotate.html# ==============================================================================angle = 1.0width = 0height = 0color = 0# ==============================================================================# angle = Rotation angle in degrees clock wise# width = Width of the destination output image# height = Height of the destination output image# color = Background color# ==============================================================================LoadPlugin("plugins\Rotate\Rotate.dll")Import("lib\FritzPhoto\FritzPhoto.avs")isYV12() ? YV12toRGB32() : lastRotate(angle, width, height, color)


    Tja, und wenn man schon dabei ist, dem Skriptinspektor etwas mitzuteilen, dann vielleicht auch die Information, ob ein Parameter nur bestimmte (diskrete) Werte annehmen kann. Hier bietet sich nämlich eine Auswahlliste an.


    Die Informationen sehen in diesem Fall wie folgt aus (Beispiel: "MSUCartoonizerFilledSegments"):



    Für Boolesche Werte erzeugt der Skriptinspektor automatisch eine Auswahlliste.


    Darüber hinaus habe ich auch eine einfache Eingabeüberprüfung integriert. Je nach zugrunde liegendem AviSynth-Typ ("bool", "float", "int" oder "string") – der Skriptinspektor erkennt diesen automatisch – sind bei der Eingabe nur bestimmte Zeichen zulässig.

    Das und viele andere Dinge soll eben der Skriptinspektor richten – so jedenfalls meine Idee.


    Beispielsweise kann man jetzt schon einen oder mehrere Parameter "unsichtbar" machen, so dass man diesen bzw. diese nicht mehr im Skriptinspektor sieht. Man fügt einfach einen Kommentar mit dem Schlüsselwort %%ScriptInspectorIgnore%% hinter dem Parameter hinzu und schon taucht die Frage auf, "Wo ist Behle?" :lol:


    Beispiel: Der Parameter "denoise" im Skript "SuperSlowSharpen" soll im Skriptinspektor nicht mehr erscheinen.


    Code
    1. denoise = 0 # %%ScriptInspectorIgnore%%


    Jetzt könnte man natürlich auch hergehen und verschiedene Levels kreieren, z. B.: Anfänger, Amateur und Profi. Ein Anfänger sieht nur die einfachsten Parameter, der Amateur schon ein wenig mehr und der Profi eben alle Parameter. Im Skript könnte man das ebenfalls durch entsprechende Schlüsselwörter steuern. Im Programm bräuchte man dann nur noch zwischen diesen Levels umschalten.


    Auch die Informationen für die Tooltips könnte man im Skript hinterlegen.


    Besser wird es sein, diese zusätzlichen Optionen für einen Parameter in einem extra Abschnitt, vorzugsweise am Ende eines Skripts, zu hinterlegen.


    Auch ein Abspeichern der Parameter (als Vorlage) in eine INI-Datei wäre denkbar.