[GELÖST] AviSynth AVS Script Zeige Bild für X Sekunden

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • [GELÖST] AviSynth AVS Script Zeige Bild für X Sekunden

    Anzeige
    Hi alle zusammen,

    ich suche gerade wie blöde. Hat jemand eine Ahnung wie ich ein Bild für 10 Sekunden anzeigen lassen kann mittels AVS Script?

    Ich dachte da in etwa an sowas (Pseudoscript):

    Quellcode

    1. function overlayImage(clip src, string imgPath)
    2. {
    3. ovrlay = ImageReader(imgPath, 0, 0, 1, true)
    4. if(current_frame < 100)
    5. return Overlay(src,ovrlay)
    6. return src
    7. }


    (Die If Thematik funktioniert in AVS ja mittels ?-Operator und Eval())

    Ein FadeOut wäre auch noch etwas feines. Hat jemand evtl. eine Idee?

    Grüße,

    Mima

    Edit:
    Ok nach langem hin und her habe ich eine Lösung gefunden die für mich ok ist:

    Quellcode

    1. src = AVISource("N:\Fraps Movies\01.avi", audio=false).AssumeFPS(30.000)
    2. imagePath="BILDPFAD.png"
    3. bild = ImageReader(imagePath, 0, 0, 50, true)
    4. bild = logo.AssumeFPS(src.FrameRate())
    5. logoMask = ImageReader(imagePath,pixel_type="RGB32").changefps(5,linear=false).fadeIn2(10,fps=30).fadeOut2(10,fps=30).ShowAlpha(pixel_type="RGB32")

    und dann mit Overlay() blenden.

    In Worten, man sagt der Bildmaske, dass sie ein- und ausgeblendet werden soll. Dabei setzt man noch die FPS auf 5 z.B. und linear auf false, damit das Bild z.B. am Anfang für knapp 10-20 Sekunden eingeblendet wird!
    Der Part wäre hier: changefps(5,linear=false).fadeIn2(10,fps=30).fadeOut2(10,fps=30)


    Anmerkung: Ich generiere die Bildmaske anhand des originals.
    Falls jemand eine bessere Lösung hat, ich bin ganz Ohr :)

    Edit2:
    Hier noch eine kleine Funktion:

    Quellcode

    1. function InfoPanel(clip src, string panelImg, int posX, int posY,int fps, int fade)
    2. {
    3. panel = ImageReader(panelImg, 0, 0, 1, true).AssumeFPS(src.FrameRate()) #Overlay Bild laden
    4. panelMask = ImageReader(panelImg,pixel_type="RGB32").ShowAlpha(pixel_type="RGB32").changefps(fps,linear=false).fadeIn2(fade,fps=30).fadeOut2(fade,fps=30)
    5. return Overlay(src, panel, x=posX, y=posY,mask=panelMask, mode="blend")
    6. }


    src = Clip auf den das Bild dann kommt.
    panelImg = Pfad zum Bild
    xPos = X Position
    yPos = Y Position
    fps = gesetzte FPS für das Bild
    fade = Frame wann ein und ausgeblendet werden soll

    je größer fps ist, desto später wird ausgeblendet.

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von mimameidr ()