• 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

    Code
    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


    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...

  • Nö, is alles klar. Zwei Punkte werden diskutiert:

    1. Das Logo anpassen an die Gegebenheiten (seeigel)
    2. oder mein Versuch: Einen zweiten Resize-Befehl einfügen (klappt aber bisher nicht)

    Tja, so denn :)

    :cheers: Denn das Leben ist mehr breit als lang!

  • Na, der zweite Resize sollte so klappen, wie ich das im Code der AVS-Datei geschrieben habe - schon mal in Ruhe durchgelesen?! (BTW: BicubicResize scheint mir unvollständig zu sein - sonst wurden da doch noch die b- und c-Parameter benötigt. Hast du die ausgelassen, oder gibt es da jetzt Standardwerte? Muss ich gleich mal nachlesen... // Aha: Je 1/3 ist Standard, also relativ weich.)

  • Hallo Jungs und Mädels,

    Ich mache das immer so...
    video=mpeg2source("VTS_01_001.d2v").ConvertToRGB32()
    video=LanczosResize(video,480,348,1,59,718,462)
    video=AddBorders(video,0,114,0,114)

    # Variablen fürs LOGO
    lx=20
    ly=120
    alpha=128
    start=3438
    duration=200
    fadeinlen=12
    fadeoutlen=12
    maskcolor=$0000FF

    # LOGO Berechnungen mit den Funktionen AVISource & ColorKeyMask
    # logo2.bmp exportiert als logo2.avi mit 1Frame
    logo=AVISource("logo2.avi",false).Trim(0,-1).Loop(duration).ConvertToRGB32()
    blue=BlankClip(1,width=width(logo),height=height(logo),color=maskcolor).KillAudio().ConvertToRGB32()
    logo=ColorKeyMask(logo,maskcolor,0)
    logo=FadeIn(logo,fadeinlen,$000000)
    logo=FadeOut(logo,fadeoutlen,$000000)
    logo=blue.Loop(start) + logo + blue
    logo=LanczosResize(logo,Round(width(logo)*0.625),height(logo))
    video=Layer(video,logo,"add",alpha,lx,ly)
    ConvertToYUY2(video)

    siehe auch Beispiel (FlashMovieExport) zur besseren Ansicht.

  • Hi katjarella,

    ich muß den Thread mal aufwärmen, da ich auch grad jemanden helfen will Logos in Videos einzubinden.

    Was ich zum ersten nicht checke ist wie du das Logo in ein Avi exportierst?
    Dann was auch unklar ist ob das "ConvertToRGB32()" der Source nötig ist?
    Kannst du bitte mal an sich erklären was das Script macht? Ich seh nicht wo du die Zeit für die Dauer des Logos übergibst (außer "Loop(duration)"). Was macht "KillAudio()"?

  • 1) "in ein AVI exportieren": Die AVS-Skriptdatei in VirtualDubMod öffnen, speichern als AVI.

    2) RGB32: Damit auch eine Transparenzmaske mitgeführt werden kann (RGBA = Rot, Grün, Blau, Alpha)

    3) "Trim(0,-1)" behält nur das allererste Bild (Clip-Dauer danach: 1 Frame); "Loop(duration)" vervielfacht dieses eine Bild (Clipdauer danach: 'duration' Frames).

    4) "BlankClip" erzeugt einen Clip mit Video- und Tonspur (auch wenn die stumm ist, ist sie dennoch vorhanden). "KillAudio" löscht die Tonspur, es bleibt nur die Videospur übrig.

Jetzt mitmachen!

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