Avisynth v2.08 - Bilder einfügen, wie ?

  • Hallo,

    Ich würde gerne ein Bild vor dem Beginn des eigentlichen Hauptfilms (Avi) einfügen und 10s lang anzeigen lassen. Das Ganze noch mit FadeIn und FadeOut veredeln ;)

    Wie stellt man das an ?


    Gruß Gunnar

  • Ich würde dir alternativ eher empfehlen, das mit VirtualDub(Mod) als AVI vorher fertig zu machen; denn mit einem AviSynth-Skript, welches

    1) ein Einzelbild lädt,
    2) die Framerate asynchron verringert, um auf 10 Sekunden zu kommen,
    3) die Framerate synchron erhöht, um auf 25 fps zu kommen,
    4) Ein- und Ausblende festzulegen

    hat man sicher einiges zu basteln und mit Vorschau zu prüfen, bis das den eigenen Vorstellungen entspricht.

    Statt dessen kann man aber auch in VirtualDub(Mod) ein Bild einladen (BMP - bei VDMod auch PNG), und mit den Programmfunktionen sowie mit VirtualDub-Filtern das gleiche vielleicht von der Bedienung her etwas leichter hinkriegen (für diejenigen, die den Umgang mit Skriptsprachen vielleicht nicht so sehr mögen).

  • Und wieder Avisynth 2.5x !!!

    # Script ResampleAudio wird importiert
    Import("ResampleAudio.avs")

    # Video wird importiert und gleich in YUY2 Format gewandelt
    v1 = AviSource("sourcefilm.avi").ConvertToYUY2()

    # ein Bild wird importiert und gleich in YUY2 Format gewandelt
    v2 = ImageReader("logo.bmp",0,0,1,false).ConvertToYUY2()

    # Bild wird an Video angepasst ( Framerate, Länge = 10sec) und Ein und Abblenden
    v2 = ChangeFPS(v2,Framerate(v1)).Loop(10).FadeIn(25).FadeOut(25)

    # Bild wird an Video angepasst ( Weite & Höhe
    v2 = LanczosResize(v2,Width(v1),Height(v1))

    # Bild wird ein Sound erzeugt
    v2 = ResampleAudio(v2,Audiorate(v1)).GetChannel(1,1)

    # Bild und das Video wird zurückgegeben
    return v2 + v1

    Wenn fragen, ich helfe gern.

  • Danke für die Tips.

    "imagesequence_20_dll_20030507.zip" habe ich mir gerade gesaugt.
    Das BMP-File bearbeite ich vorher mit "Irfan View" und hat deshalb schon das richtige Format. Ton soll auch nicht unterlegt werden, oder muß aus Kompatibilitätsgründen ein Audio-Dummy her ?

    Also würde mein Script so aussehen ?

    LoadPlugin("c:\path\imagesequence.dll")
    v1 = AviSource("sourcefilm.avi")
    (crop + resize - Fit2disc)
    v2 = CoronaSequence("c:\path\picture.jpg", start=1, stop=250, fps=25, textmode=0, posx=0, posy=0)
    return v2 + v1

    Falls es so stimmen sollte wäre noch interessant wie das Audio-Dummy erzeugt werden muß. (48KHz/16Bit/Stereo)


    Gruß Gunnar

  • Sieht für meine Begriffe eigentlich schon ganz gut so aus.

    Ob es mit Audio Probleme gibt, kann ich nicht sagen - ich benutze AviSynth immer ohne. Aber es wäre durchaus zu empfehlen, gleiche Werte wie im Hauptfilm zu verwenden. Das sollte GSpot oder VirtualDub rauskriegen, was drin ist.

    Jetzt brauchst du eigentlich nur noch in der AviSynth-Dokumentation was über FadeOut() zu lesen, und dann hast du's ja fast:

    return v2.Fade...() + v1

  • Also jetzt interessiert es mich auch. Wenn folgendes gegeben ist um mal bei Gunnar´s Beispiel zu bleiben:

    AVI (TV-Capture mit DV-Codec YUY2 TFF incl. Audio 48KHz/16Bit/Stereo)
    BMP (720x576 RGB ohne Audio)

    v1 = AviSource("sourcefilm.avi")
    SeparateFields()
    BicubicResize(688,272,0,0.6,4,2,712,284).Weave()
    AddBorders(16,16,16,16)
    LoadPlugin("c:\path\imagesequence.dll")
    v2 = CoronaSequence("c:\path\picture.jpg", start=1, stop=250, fps=25, textmode=0, posx=0, posy=0).ConvertToYUY2
    return v2.FadeIn(50).Fadeout(50) + v1

    Stimmt das so ?

    TWC

  • Ein clip mit und ohne Audio kann nicht zusammengefügt werden (Fehlermeldung).
    ImageSequence liefert KEIN Audio, es muss also vorher eines mit AudioDub dazugelegt werden.
    Oder die Videoquelle hat auch nur Bild und kein Audio.

    Vorsicht auch beim Verwenden von "+" statt "++":
    v1 ++ v2 hält den Ton von beiden clips synchron,
    v1 + v2 fügt die Tonspuren lückenlos aneinander.
    Wenn diese nicht gleich lang sind, wird's also bei "+" unsynchron.

    --> verschiedenen Quellen mit "++"
    --> AVI aus einer Aufnahme (seqmented AVI) mit "+"

    Beachte auch: ImageSequence(..., start=1, stop=200) liest das GLEICHE Bild wirklich 200x ein (geht zwar schnell, aber trotzdem)
    Besser wie katjarella mit Loop() !

  • Stimmt WarpEnterprises,
    Quellen, eine ohne & eine mit Audio, können nicht zusammen "geklebt" werden.

    TeeWeeCap

    # Spezial Script XResampleAudio.avs
    function XResampleAudio(clip v1, int rate, bool mods) {
    v2 = Blankclip(audio_rate=rate,stereo=mods)
    v1 = AudioDub(v1,v2)
    return v1
    }

    -------------------------------
    # Dein Script
    Import("XResampleAudio.avs")
    LoadPlugin("c:\path\imagesequence.dll")

    # Video Bearbeitung
    v1 = AviSource("sourcefilm.avi")
    SeparateFields()
    BicubicResize(688,272,0,0.6,4,2,712,284).Weave()
    AddBorders(16,16,16,16)

    #Intro Bearbeitung
    v2 = CoronaSequence("c:\path\picture.jpg",start=0,stop=0,fps=25).Loop(250).ConvertToYUY2
    v2 = FadeIn(v2,50).Fadeout(50)
    v2 = XResampleAudio(v2,48000,true)

    #Ausgabe
    return v2 ++ v1

  • katjarella

    Meine Güte, darauf wäre ich ja nie gekommen. :eek:
    Wo lernt man denn so mit Avisynth umzugehen ? Wer weiß welche Schätze da noch am Schlummern sind. Da mein Englisch auch noch verdammt mies ist, ist es für mich doppelt schwer Avisynth im größeren Umfang zu kapieren. Dein Script kommt in meine Datenbank ... Danke.

    Gruß Gunnar

  • Ach was, englisch... Wenn du AviSynth 2.08 installierst, dann kannst du doch im Installer anwählen, dass auch die deutschsprachige Dokumentation mit entpackt wird. Und die ist im Ansatz eigentlich recht gut. Man muss nur gerade als Anfänger bereit sein, die Beispiele und alle interessanten Filter auch mal auszuprobieren. Dann kann am Ende so was herauskommen wie mein "Array4x4", oder wie die Skripts von katjarella - Respekt immer wieder!

  • Zitat

    Ach was, englisch...


    Nix da, zeig mir wo das in der deutschen Anleitung steht und auch vernünftig erklärt wird:

    Zitat

    function XResampleAudio(clip v1, int rate, bool mods) {
    v2 = Blankclip(audio_rate=rate,stereo=mods)
    v1 = AudioDub(v1,v2)
    return v1
    }


    Erzähl mir nicht das Avisynth leicht zu verstehen ist mal abgesehen von den meist verwendeten Befehlen die z.B. Fit2disc verwendet. Wie AVIs oder Plugins geladen\zusammengefügt oder mit "Trim" gecuttet werden weiß ich auch. Ich arbeite auch schon länger mit den Standartbefehlen ohne Probleme. Mir scheint du hast mindestens eine Programmiersprache mit Löffeln gefressen. Da kann man leicht hier rumtönen.

    Gruß Gunnar

  • na Jungs... nicht so böse.

    Avisynth ist schon ab einer bestimmten Ebene schwer. Aber dies ist jede Scriptsprache, wenn Sie mehr als 5 Befehle hat. :)

    Auszug vom QUANTIFIED MOTION FILTER by HomiE FR

    Aber meins mit XResampleAudio ist nicht so schwer, wenn man die einzelnen Befehle durchgeht. Das Komplizierte ist nur die Verknüpfung und die Reihenfolge der Befehle. Aber wie schon gesagt, ist bei jeder Scriptsprache so... heißt also nur üben, teste, absturzt und wenns funkt freuen :)

  • Der Fairness halber sollte man noch sagen, dass bei AVISynth ja das reine beherrschen einer Skript-Sprache nicht ausreicht. Man muss zumindest bei den "höheren" Funktionen auch gute Kenntnisse zum Thema Video mitbringen (oder nicht erarbeiten).

  • Und auch die Eigenheiten kennen, die manche Programme so haben. Wenn CCE ordentlich mit tonlosen AVIs umgehen könnte, wäre der "Spaß" mit XResampleAudio() nie nötig gewesen.

    Die Anleitung kann nur die Grundlagen vermitteln. Sie auf komplexere Probleme anzuwenden, erfordert jedoch Erfahrung. Und man weiss ja:

    Zitat

    Erfahrung ist eine nützliche Sache.
    Leider macht man sie meist erst, kurz nachdem man sie brauchte.

Jetzt mitmachen!

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