avisynth script Hilfe Benötigt

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

  • avisynth script Hilfe Benötigt

    Anzeige
    hallo, Ich habe gestern Angefangen mich mit avisynth zu beschäftigen mein Skript funzt auch soweit ganz gut. nur brauche ich jetzt für die Einblendungen die ich im Skript habe eine Angabe die dem Skript sagt ab wann Einblendung 1 abgespielt werden soll habe gestern bei Google gesucht was die schwarte kracht habe aber nix gefunden hat hier einer die Lösung Skript ist unten an gehangen.

    Quellcode

    1. ### SagaraS Scriptmaker - Version 5.6 ###
    2. ### Lade Plugins und setze die globalen Variablen ###
    3. Global breite = 1920
    4. Global hoehe = 1080
    5. Global AR = 0
    6. ### Lade Videoquellen ###
    7. SetMTMode(3)
    8. AVIload("F:\einblendungen\SpacePerception_OPT3_SD_1.avi", 0, 0, 0, -0, -0, "Auto", "Auto", 0, 0)\
    9. ++ AVIload("D:\FalloutNV 21-02-2015 13-53-41.avi", 0, 0, 0, -0, -0, "Auto", "Auto", 0, 0)
    10. facebook = AVISource("F:\einblendungen\facebook.avi").Spline64Resize(1920, 1080)
    11. Overlay(facebook,mask=ShowAlpha(facebook), mode="blend", opacity=100)
    12. Googele = AVISource("F:\einblendungen\Googele.avi").Spline64Resize(1920, 1080)
    13. Overlay(Googele,mask=ShowAlpha(Googele), mode="blend", opacity=100)
    14. Revolutionzcker = AVISource("F:\einblendungen\Revolutionzcker.avi").Spline64Resize(1920, 1080)
    15. Overlay(Revolutionzcker,mask=ShowAlpha(Revolutionzcker), mode="blend", opacity=100)
    16. ### Filter Verarbeitungszone ###
    17. ConvertToYV16(matrix = "Rec709")
    18. ### Funktion für Video-Laderoutine ###
    19. Function AVIload (String file, int loading, int cl, int co, int cr, int cu, string pixtype, string afps, int fpsn, int fpsd) {
    20. (loading == 1) ? FFIndex(file) : nop()
    21. clip0 = (loading == 3) ? LWLibavVideoSource(file) : (loading == 2) ? Import(file).KillAudio() : (loading == 1) ? FFVideoSource(file, threads=1) : (pixtype == "Auto") ? AVISource(file, false).KillAudio() : AVISource(file, false, pixel_type=pixtype).KillAudio()
    22. clip1 = clip0.AutoFPS(afps, fpsn, fpsd).Cropping(cl, co, cr, cu)
    23. Return (clip1.width == breite && clip1.height == hoehe) ? clip1.ConvertToYUY2(matrix = "Rec709") : Clip1.Resize()
    24. }
    25. Function AutoFPS (Clip clip0, string afps, int fpsn, int fpsd) {
    26. rate1 = (afps == "Auto") ? (Round(Float(clip0.framerate * 1000)) / 1000) / 2 : nop()
    27. rate2 = (afps == "Auto") ? Round(clip0.framerate) / 2 : nop()
    28. rate = (afps == "Auto") ? (rate1 == rate2) ? 1 : 1001 : (afps == "Igno.") ? clip0.frameratedenominator : fpsd
    29. ratefaktor = (afps == "Auto") ? (rate == 1001) ? 1000 : 1 : nop()
    30. clip0 = (afps == "Auto") ? (rate == 1001) ? clip0.AssumeFPS(Round(clip0.Framerate) * 1000, rate) : clip0.AssumeFPS(round(clip0.framerate), rate) : (afps == "Igno.") ? clip0.AssumeFPS(clip0.frameratenumerator, rate) : clip0.AssumeFPS(fpsn, rate)
    31. Return clip0.ChangeFPS(60, 1)
    32. }
    33. Function Cropping (Clip clip0, int cl, int co, int cr, int cu) {
    34. clip0 = (clip0.IsRGB32() == True) ? clip0.ConvertToRGB24() : clip0
    35. Return (cl != 0 || co != 0 || cr != 0 || cu != 0) ? clip0.Crop(cl, co, cr, cu) : clip0
    36. }
    37. Function Resize (Clip clip1) {
    38. clip1 = (AR == 1) ? ((float(Clip1.height * breite) / clip1.width) / 2 == round((float(Clip1.height * breite) / clip1.width) / 2)) ? ((float(Clip1.width * hoehe) / clip1.height) / 2 == round((float(Clip1.width * hoehe) / clip1.height) / 2)) ? clip1 : clip1.ConvertToRGB24() : clip1.ConvertToRGB24() : clip1
    39. clip1 = (AR == 1) ? (((clip1.width * hoehe) / clip1.height > breite) ? Clip1.Spline36Resize(breite, ceil(float(Clip1.height * breite) / clip1.width)) : Clip1.Spline36Resize(ceil(float(clip1.width * hoehe) / clip1.height), hoehe)) : clip1.Spline36Resize(breite, hoehe).ConvertToYUY2(matrix = "Rec709")
    40. back = (AR == 1) ? (0 == 1) ? ImageReader("", 0, clip1.framecount - 1, clip1.framerate).ChangeFPS(Clip1.frameratenumerator, Clip1.frameratedenominator).Spline36Resize(breite, hoehe).ConvertToYUY2(matrix = "Rec709") : BlankClip(clip1, width = breite, height = hoehe, pixel_type = "YUY2").KillAudio() : clip1
    41. Return (AR == 1) ? Overlay(back, clip1, (back.width - clip1.width) / 2, (back.height - clip1.height) / 2) : clip1
    42. }​
    Alles anzeigen
  • Was hat dein Video für eine Quell FPS? Weil wenn das eh schon 60 hat, machts ja nicht Sinn ChangeFPS(60) einzufügen, wenns eh schon 60 sind.

    Skalierer würd ich eher Spline100 nehmen, nicht so'n scharfen. Machts nur schlechter komprimierbar.

    Mehrfachverwendung von Overlay würd ich nur machen, wenn es überlappend ist, ansonsten mit ApplyRange oder Trim arbeiten
    Mehrfachverwendung wäre so ein beispiel mit fadeout (ausblendung am Ende):

    Quellcode

    1. Logo = ImageSource("d:\XVideos\cooltext820031346.png", fps=Video.FrameRate, end=450, pixel_type="rgb32")
    2. Logo2 = ImageSource("d:\Pfad_zur\Datei.png", fps=Video.FrameRate, start=600, end=8000, pixel_type="rgb32")
    3. Overlay(Overlay(video, Logo, x=0, y=0, Mask=Logo.ShowAlpha().FadeOut(100, 0, Video.FrameRate), opacity=1.0, mode="add"), Logo2, x=0, y=0, Mask=Logo2.ShowAlpha().FadeOut(100, 0, Video.FrameRate), opacity=1.0, mode="blend")


    Mit ApplyRange:

    Quellcode

    1. Logo = ImageSource("d:\XVideos\cooltext820031346.png", fps=Video.FrameRate, end=450, pixel_type="rgb32")
    2. Logo2 = ImageSource("d:\Pfad_zur\Datei.png", fps=Video.FrameRate, start=600 end=8000, pixel_type="rgb32")
    3. ApplyRange(Video, 0, 450, "Overlay", Logo, 0, 0, Logo.ShowAlpha().FadeOut(100, 0, Video.FrameRate), 1.0, "blend")


    Die 0 und die 450 ist hierbei start und endzeit und es wird hier auch nur dieser Teil dann bearbeitet. Ohne ApplyRange oder Trim arbeitet Overlay das ganze Video ab. Tut zeitlich und qualitativ ja nicht wirklich not.

    Alternativ via Trim:

    Quellcode

    1. Logo = ImageSource("d:\XVideos\cooltext820031346.png", fps=Video.FrameRate, end=450, pixel_type="rgb32")
    2. Logo2 = ImageSource("d:\Pfad_zur\Datei.png", fps=Video.FrameRate, start=600 end=8000, pixel_type="rgb32")
    3. Teil1 = Overlay(Video.Trim(0,450), Logo, x=0, y=0, Mask=Logo.ShowAlpha().FadeOut(100, 0, Video.FrameRate), opacity=1.0, mode="blend")
    4. Teil2 = Video.Trim(600,8000), Logo2, x=0, y=0, Mask=Logo.ShowAlpha().FadeOut(100, 0, Video.FrameRate), opacity=1.0, mode="blend")
    5. Komplett = Teil1++Teil2
    6. Return Komplett.ConvertToYV12()

    Aktuelle Projekte/Videos


    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von De-M-oN ()

  • Für Einblendungen gibt es (die im SSM im Plugin Ordner beiliegende Datei Blend.avsi) die Funktion Blende.

    Die Funktion dazu, die du ebenfalls in dein Skript reinkopieren könntest ganz am Ende, sieht so aus:

    Quellcode

    1. # ===============
    2. # Blendfunktionen
    3. # ===============
    4. # clip0 - Das Bild auf das gezeichnet wird
    5. # clip1 - Das Bild was gezeichnet werden soll
    6. # mask - Die Maske für Clip1 -> Default = White clip1 Blankclip in RGB24
    7. # sframe - Der Startframe wo das ganze anfangen soll -> Default = 0
    8. # eframe - Der Endframe wo das ganze aufhören soll -> Default = 40
    9. # fadeinframe - Die Framelänge die das Fadein benötigt -> Default = 1
    10. # fadeoutframe - Die Framelänge die das Fadeout benötigt -> Default = 1
    11. # x - Der x Wert für Clip1 in Overlay an welcher Breitenposition positioniert werden soll -> Default = 0
    12. # y - Der y Wert für Clip1 in Overlay an welcher Höhenposition positioniert werden soll -> Default = 0
    13. # opa - Transparentmaximum max=1.0 min=0.0 -> Default = 1.0
    14. Function Blende (clip clip0, clip clip1, clip "mask", int "sframe", int "eframe", int "fadeinframe", int "fadeoutframe", int "x", int "y", float "opa") {
    15. mask = (IsClip(mask) == true) ? mask : BlankClip(0, clip1.width, clip1.height, "RGB24", clip1.frameratenumerator, clip1.frameratedenominator, color = $FFFFFF).KillAudio()
    16. sframe = Default(sframe, 0)
    17. eframe = Default(eframe, 40)
    18. fadeinframe = Default(fadeinframe, 10)
    19. fadeoutframe = Default(fadeoutframe, 10)
    20. x = Default(x, 0)
    21. y = Default(y, 0)
    22. opa = Default(opa, 1.0)
    23. clip0 = ApplyRange(clip0, sframe, eframe-fadeoutframe-1, "Animate", sframe, sframe+fadeinframe, "Overlay", clip1, x, y, mask, 0.0, clip1, x, y, mask, opa)
    24. return ApplyRange(clip0, eframe-fadeoutframe, eframe, "Animate", eframe-fadeoutframe, eframe, "Overlay", clip1, x, y, mask, opa, clip1, x, y, mask, 0.0)
    25. }
    Alles anzeigen



    Der Aufruf der Funktion geht dann wie folgt:

    Quellcode

    1. Blende (Hauptvideo, Overlaybild, Alphamaske, Startframe, Endframe, Eingangsfadelänge, Ausgangsfadelänge, X-Pos, Y-Pos, maximaler Durchsichtigkeitgrad)


    PS: Ob du eine Bilddatei lädst oder ein Video. In AVISynth sind das später alles Clips mit einer festen FPS.

    Als Beispiel:

    Quellcode

    1. ...
    2. AVIload("F:\einblendungen\SpacePerception_OPT3_SD_1.avi", 0, 0, 0, -0, -0, "Auto", "Auto", 0, 0)\
    3. ++ AVIload("D:\FalloutNV 21-02-2015 13-53-41.avi", 0, 0, 0, -0, -0, "Auto", "Auto", 0, 0)
    4. #Bild laden mit Alphakanal
    5. Grundvideo = last
    6. b=ImageSource("Bilder\Jedi Knight.png", 0,0, fps=Grundvideo.framerate, pixel_type="RGB32")
    7. bmask=b.ShowAlpha(pixel_type="RGB32")
    8. #Blende anwenden
    9. Blende(Grundvideo, b, bmask, 50, 250, 100, 10,(last.width-b.width)/2, (last.height-b.height)/2, 1.0)
    10. ...
    Alles anzeigen


    ODER halt mit VideoClip ohne Alphakanal:

    Quellcode

    1. ...
    2. AVIload("F:\einblendungen\SpacePerception_OPT3_SD_1.avi", 0, 0, 0, -0, -0, "Auto", "Auto", 0, 0)\
    3. ++ AVIload("D:\FalloutNV 21-02-2015 13-53-41.avi", 0, 0, 0, -0, -0, "Auto", "Auto", 0, 0)
    4. #Bild laden mit Alphakanal
    5. Grundvideo = last
    6. b=AVISource("Logo.avi").AssumeFPS(30, 1)
    7. #Blende anwenden
    8. Blende(Grundvideo, b, sframe = 50, eframe = 250, fadeinframe = 100, fadeoutframe = 10, x = (last.width-b.width)/2, y = (last.height-b.height)/2, opa = 1.0)
    9. ...
    Alles anzeigen


    Wie du das machst dann ist dein Ding ^^
    Aber mit der Funktion kannst du halt bestimmen wo die einzelnen Bilder/Videos langsam ein und ausgefadet werden sollen. Du kannst Position damit bestimmen und du kannst den Maximalen Grad der Darstellung wählen. Also alles da was man dafür braucht. Man braucht ledeglich nur noch die Quelle laden.
  • Ist bestimmt nur nen kleiner fehler meiner seits drin hier bitte das gesamte skript.

    Quellcode

    1. ​### SagaraS Scriptmaker - Version 5.6 ###
    2. ### Lade Plugins und setze die globalen Variablen ###
    3. Global breite = 1920
    4. Global hoehe = 1080
    5. Global AR = 0
    6. ### Lade Videoquellen ###
    7. SetMTMode(3)
    8. AVIload("F:\einblendungen\SpacePerception_OPT3_SD_1.avi", 0, 0, 0, -0, -0, "Auto", "Auto", 0, 0)\
    9. ++ AVIload("D:\FalloutNV 21-02-2015 13-53-41.avi", 0, 0, 0, -0, -0, "Auto", "Auto", 0, 0)
    10. #Bild laden mit Alphakanal
    11. Grundvideo = last
    12. b=AVISource("F:\einblendungen\facebook.avi").AssumeFPS(60, 1)
    13. #Blende anwenden
    14. Blende(Grundvideo, b, sframe = 50, eframe = 250, fadeinframe = 100, fadeoutframe = 10, x = (last.width-b.width)/2, y = (last.height-b.height)/2, opa = 1.0)
    15. ### Filter Verarbeitungszone ###
    16. ConvertToYV16(matrix = "Rec709")
    17. ### Funktion für Video-Laderoutine ###
    18. Function AVIload (String file, int loading, int cl, int co, int cr, int cu, string pixtype, string afps, int fpsn, int fpsd) {
    19. (loading == 1) ? FFIndex(file) : nop()
    20. clip0 = (loading == 3) ? LWLibavVideoSource(file) : (loading == 2) ? Import(file).KillAudio() : (loading == 1) ? FFVideoSource(file, threads=1) : (pixtype == "Auto") ? AVISource(file, false).KillAudio() : AVISource(file, false, pixel_type=pixtype).KillAudio()
    21. clip1 = clip0.AutoFPS(afps, fpsn, fpsd).Cropping(cl, co, cr, cu)
    22. Return (clip1.width == breite && clip1.height == hoehe) ? clip1.ConvertToYUY2(matrix = "Rec709") : Clip1.Resize()
    23. }
    24. Function AutoFPS (Clip clip0, string afps, int fpsn, int fpsd) {
    25. rate1 = (afps == "Auto") ? (Round(Float(clip0.framerate * 1000)) / 1000) / 2 : nop()
    26. rate2 = (afps == "Auto") ? Round(clip0.framerate) / 2 : nop()
    27. rate = (afps == "Auto") ? (rate1 == rate2) ? 1 : 1001 : (afps == "Igno.") ? clip0.frameratedenominator : fpsd
    28. ratefaktor = (afps == "Auto") ? (rate == 1001) ? 1000 : 1 : nop()
    29. clip0 = (afps == "Auto") ? (rate == 1001) ? clip0.AssumeFPS(Round(clip0.Framerate) * 1000, rate) : clip0.AssumeFPS(round(clip0.framerate), rate) : (afps == "Igno.") ? clip0.AssumeFPS(clip0.frameratenumerator, rate) : clip0.AssumeFPS(fpsn, rate)
    30. Return clip0.ChangeFPS(60, 1)
    31. }
    32. Function Cropping (Clip clip0, int cl, int co, int cr, int cu) {
    33. clip0 = (clip0.IsRGB32() == True) ? clip0.ConvertToRGB24() : clip0
    34. Return (cl != 0 || co != 0 || cr != 0 || cu != 0) ? clip0.Crop(cl, co, cr, cu) : clip0
    35. }
    36. Function Resize (Clip clip1) {
    37. clip1 = (AR == 1) ? ((float(Clip1.height * breite) / clip1.width) / 2 == round((float(Clip1.height * breite) / clip1.width) / 2)) ? ((float(Clip1.width * hoehe) / clip1.height) / 2 == round((float(Clip1.width * hoehe) / clip1.height) / 2)) ? clip1 : clip1.ConvertToRGB24() : clip1.ConvertToRGB24() : clip1
    38. clip1 = (AR == 1) ? (((clip1.width * hoehe) / clip1.height > breite) ? Clip1.Spline36Resize(breite, ceil(float(Clip1.height * breite) / clip1.width)) : Clip1.Spline36Resize(ceil(float(clip1.width * hoehe) / clip1.height), hoehe)) : clip1.Spline36Resize(breite, hoehe).ConvertToYUY2(matrix = "Rec709")
    39. back = (AR == 1) ? (0 == 1) ? ImageReader("", 0, clip1.framecount - 1, clip1.framerate).ChangeFPS(Clip1.frameratenumerator, Clip1.frameratedenominator).Spline36Resize(breite, hoehe).ConvertToYUY2(matrix = "Rec709") : BlankClip(clip1, width = breite, height = hoehe, pixel_type = "YUY2").KillAudio() : clip1
    40. Return (AR == 1) ? Overlay(back, clip1, (back.width - clip1.width) / 2, (back.height - clip1.height) / 2) : clip1
    41. }
    Alles anzeigen
  • Türlich ist nur ein kleiner Fehler drin ^^ Aber ein Gravierender. Wie soll die Funktion Blende denn aufgerufen werden ohne Funktion? ^^

    Ergänzte einfach gaaanz unten im Skript:
    Skript

    Quellcode

    1. ### SagaraS Scriptmaker - Version 5.6 ###
    2. ### Lade Plugins und setze die globalen Variablen ###
    3. Global breite = 1920
    4. Global hoehe = 1080
    5. Global AR = 0
    6. ### Lade Videoquellen ###
    7. SetMTMode(3)
    8. AVIload("F:\einblendungen\SpacePerception_OPT3_SD_1.avi", 0, 0, 0, -0, -0, "Auto", "Auto", 0, 0)\
    9. ++ AVIload("D:\FalloutNV 21-02-2015 13-53-41.avi", 0, 0, 0, -0, -0, "Auto", "Auto", 0, 0)
    10. ### Filter Verarbeitungszone ###
    11. #letzten Clip in die Variable Grundvideo stecken
    12. Grundvideo = last
    13. #In Variable b den Overlay Videoclip stecken
    14. b=AVISource("F:\einblendungen\facebook.avi").AssumeFPS(60, 1)
    15. #Blende anwenden ohne Alphakanal
    16. Blende(Grundvideo, b, sframe = 50, eframe = 250, fadeinframe = 100, fadeoutframe = 10, x = (last.width-b.width)/2, y = (last.height-b.height)/2, opa = 1.0)
    17. ConvertToYV16(matrix = "Rec709")
    18. ### Funktion für Video-Laderoutine ###
    19. Function AVIload (String file, int loading, int cl, int co, int cr, int cu, string pixtype, string afps, int fpsn, int fpsd) {
    20. (loading == 1) ? FFIndex(file) : nop()
    21. clip0 = (loading == 3) ? LWLibavVideoSource(file) : (loading == 2) ? Import(file).KillAudio() : (loading == 1) ? FFVideoSource(file, threads=1) : (pixtype == "Auto") ? AVISource(file, false).KillAudio() : AVISource(file, false, pixel_type=pixtype).KillAudio()
    22. clip1 = clip0.AutoFPS(afps, fpsn, fpsd).Cropping(cl, co, cr, cu)
    23. Return (clip1.width == breite && clip1.height == hoehe) ? clip1.ConvertToYUY2(matrix = "Rec709") : Clip1.Resize()
    24. }
    25. Function AutoFPS (Clip clip0, string afps, int fpsn, int fpsd) {
    26. rate1 = (afps == "Auto") ? (Round(Float(clip0.framerate * 1000)) / 1000) / 2 : nop()
    27. rate2 = (afps == "Auto") ? Round(clip0.framerate) / 2 : nop()
    28. rate = (afps == "Auto") ? (rate1 == rate2) ? 1 : 1001 : (afps == "Igno.") ? clip0.frameratedenominator : fpsd
    29. ratefaktor = (afps == "Auto") ? (rate == 1001) ? 1000 : 1 : nop()
    30. clip0 = (afps == "Auto") ? (rate == 1001) ? clip0.AssumeFPS(Round(clip0.Framerate) * 1000, rate) : clip0.AssumeFPS(round(clip0.framerate), rate) : (afps == "Igno.") ? clip0.AssumeFPS(clip0.frameratenumerator, rate) : clip0.AssumeFPS(fpsn, rate)
    31. Return clip0.ChangeFPS(60, 1)
    32. }
    33. Function Cropping (Clip clip0, int cl, int co, int cr, int cu) {
    34. clip0 = (clip0.IsRGB32() == True) ? clip0.ConvertToRGB24() : clip0
    35. Return (cl != 0 || co != 0 || cr != 0 || cu != 0) ? clip0.Crop(cl, co, cr, cu) : clip0
    36. }
    37. Function Resize (Clip clip1) {
    38. clip1 = (AR == 1) ? ((float(Clip1.height * breite) / clip1.width) / 2 == round((float(Clip1.height * breite) / clip1.width) / 2)) ? ((float(Clip1.width * hoehe) / clip1.height) / 2 == round((float(Clip1.width * hoehe) / clip1.height) / 2)) ? clip1 : clip1.ConvertToRGB24() : clip1.ConvertToRGB24() : clip1
    39. clip1 = (AR == 1) ? (((clip1.width * hoehe) / clip1.height > breite) ? Clip1.Spline36Resize(breite, ceil(float(Clip1.height * breite) / clip1.width)) : Clip1.Spline36Resize(ceil(float(clip1.width * hoehe) / clip1.height), hoehe)) : clip1.Spline36Resize(breite, hoehe).ConvertToYUY2(matrix = "Rec709")
    40. back = (AR == 1) ? (0 == 1) ? ImageReader("", 0, clip1.framecount - 1, clip1.framerate).ChangeFPS(Clip1.frameratenumerator, Clip1.frameratedenominator).Spline36Resize(breite, hoehe).ConvertToYUY2(matrix = "Rec709") : BlankClip(clip1, width = breite, height = hoehe, pixel_type = "YUY2").KillAudio() : clip1
    41. Return (AR == 1) ? Overlay(back, clip1, (back.width - clip1.width) / 2, (back.height - clip1.height) / 2) : clip1
    42. }
    43. # ===============
    44. # Blendfunktionen
    45. # ===============
    46. # clip0 - Das Bild auf das gezeichnet wird
    47. # clip1 - Das Bild was gezeichnet werden soll
    48. # mask - Die Maske für Clip1 -> Default = White clip1 Blankclip in RGB24
    49. # sframe - Der Startframe wo das ganze anfangen soll -> Default = 0
    50. # eframe - Der Endframe wo das ganze aufhören soll -> Default = 40
    51. # fadeinframe - Die Framelänge die das Fadein benötigt -> Default = 1
    52. # fadeoutframe - Die Framelänge die das Fadeout benötigt -> Default = 1
    53. # x - Der x Wert für Clip1 in Overlay an welcher Breitenposition positioniert werden soll -> Default = 0
    54. # y - Der y Wert für Clip1 in Overlay an welcher Höhenposition positioniert werden soll -> Default = 0
    55. # opa - Transparentmaximum max=1.0 min=0.0 -> Default = 1.0
    56. Function Blende (clip clip0, clip clip1, clip "mask", int "sframe", int "eframe", int "fadeinframe", int "fadeoutframe", int "x", int "y", float "opa") {
    57. mask = (IsClip(mask) == true) ? mask : BlankClip(0, clip1.width, clip1.height, "RGB24", clip1.frameratenumerator, clip1.frameratedenominator, color = $FFFFFF).KillAudio()
    58. sframe = Default(sframe, 0)
    59. eframe = Default(eframe, 40)
    60. fadeinframe = Default(fadeinframe, 10)
    61. fadeoutframe = Default(fadeoutframe, 10)
    62. x = Default(x, 0)
    63. y = Default(y, 0)
    64. opa = Default(opa, 1.0)
    65. clip0 = ApplyRange(clip0, sframe, eframe-fadeoutframe-1, "Animate", sframe, sframe+fadeinframe, "Overlay", clip1, x, y, mask, 0.0, clip1, x, y, mask, opa)
    66. return ApplyRange(clip0, eframe-fadeoutframe, eframe, "Animate", eframe-fadeoutframe, eframe, "Overlay", clip1, x, y, mask, opa, clip1, x, y, mask, 0.0)
    67. }
    Alles anzeigen