Auch wenn schon einige Antworten an mir vorbei gegangen sind... entweder habe ich noch nicht ganz verstanden, was du da machst, oder du hast noch nicht ganz verstanden, was ich meinte. Also lege ich alles noch mal ganz ausführlich dar, inklusive meiner Idee, die Logo-Funktion in ein Import-Modul auszulagern:
{AviSynth}\plugins\VD_Logo.avsi
global Virtualdub_plugin_directory="d:\virtualdub\plugins"function VD_Logo(clip clip, int "x", int "y", int "alpha", bool "transparent",\ int "xr", int "xg", int "xb", int "tolerance", string "filename",\ bool "animate", int "start", int "duration", int "loops",\ int "fadeinlen", int "fadeoutend", int "fadeoutlen"){LoadVirtualdubPlugin(VirtualDub_plugin_directory+"\logo.vdf", "_VD_Logo", 1)return clip._VD_Logo(default(x,0), default(y,0), default(alpha,128),\ default(transparent,true)?1:0, default(xr,0), default(xg,0), default(xb,255),\ default(tolerance,0), default(filename,VirtualDub_plugin_directory+"\logo.bmp"), \ default(animate,false)?1:0, default(start,0), default(duration,0), default(loops,0),\ default(fadeinlen,0), default(fadeoutend,200), default(fadeoutlen,0))}
{Ripp}\ft1.avs
LoadPlugIn("MPEG2DEC3.DLL")
# Import("...\VD_Logo.avsi")
# falls die Platzierung im plugins-Verzeichnis von AviSynth
# nicht reichen sollte
mpeg2source("ft1.d2v")
BicubicResize(1024,576)
ConvertToRGB()
VD_Logo(20, 200, 128, true, 0, 0, 255, 0, virtualdub_plugin_directory+
\ "\logo.bmp", false, 100, 200, 0, 10, 180, 10)
ConvertToYUY2()
BicubicResize(480,432)
AddBorders(0,72,0,72)
Alles anzeigen
Leider ist diese Methode extrem langsam und qualitativ nicht gerade optimal (v.a. wegen zweier Farbraumkonvertierungen und einem VirtualDub-Filter), aber ich sehe auch keine bessere Möglichkeit, das hinzukriegen. Mit dem Layer-Filter von AviSynth kann man ja anscheinend auch nicht wirklich 100% deckend überblenden. Für 50% Deckung hätte sonst die Methode "fast" genügt. Man hätte dann aber erst einen gleich langen Clip aus dem Logo-Bild inklusive ChromaKeyMask erzeugen müssen...