Bilder übers Skript speichern

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

  • Bilder übers Skript speichern

    Anzeige
    Moin
    Hab gerade ein kleines Problem mit meinem Skript.
    Ich wollte das es bevor das Video encodec wird mir schön Bilder abspeichert.

    Funktion aus der Blend.avsi
    Spoiler anzeigen

    # =============================================
    # Bildspeicherung in gleichbleibenden Abständen
    # =============================================
    # clip0 - Der Clip aus dem die Bilder erzeugt werden sollen
    # picnumber - Wieviele Bilder erzeugt werden sollen
    # filename - Bestehend aus Pfad + Dateinamen OHNE Endung
    # output - Zulässig sind "PNG", "BMP", "GIF", "JPG"
    #
    # Hinweis: Clip0 ist auch der Ausgang der Funktion

    Function SaveEveryPic(clip clip0, int "picnumber", string "filename", string "output") {
    picnumber = Default(picnumber, 30)
    filename = Default(filename, "C:\thumbnail")
    output = Default(output, "PNG")

    picnumber=(picnumber==1) ? 0 : picnumber
    frame = round(float(clip0.framecount) / picnumber) - 1
    clip1 = clip0.SelectEvery(frame).ConvertToRGB24()
    clip1 = ImageWriter(clip1, filename, 0, type=output)
    clip2 = Overlay(clip0, clip1).Trim(0, picnumber - 1)
    clip3 = Overlay(clip2, clip0).Trim(0, picnumber - 1)
    return clip3 ++ clip0.Trim(picnumber, clip0.framecount-1)
    }


    Mein Skript
    Spoiler anzeigen

    ### SagaraS Scriptmaker - Version 5.6 ###

    ### Lade Plugins und setze die globalen Variablen ###
    Import("D:\Programme\SagaraS Scriptmaker\Plugins\Blend.avsi")
    LoadPlugin("D:\Programme\SagaraS Scriptmaker\Plugins\SplineResize.dll")
    Global breite = 2080
    Global hoehe = 1170
    Global AR = 0

    ### Lade Videoquellen ###
    SetMTMode(3,4)
    AVIload("A:\2. Aufnahme\Reign Of Kings\Folge 1.avi", 0, 0, 0, -0, -0, "Auto", "Auto", 0, 0)

    ### Filter Verarbeitungszone ###
    SaveEveryPic( int 100 , string "D:\Lets Plays\Reign Of Kings\Bilder\Folge 1", string "PNG")

    ### Funktion für Video-Laderoutine ###
    Function AVIload (String file, int loading, int cl, int co, int cr, int cu, string pixtype, string afps, int fpsn, int fpsd) {
    (loading == 1) ? FFIndex(file) : nop()
    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()
    clip1 = clip0.AutoFPS(afps, fpsn, fpsd).Cropping(cl, co, cr, cu)
    Return (clip1.width == breite && clip1.height == hoehe) ? clip1.ConvertToYV24(matrix = "Rec709", ChromaResample = "Spline16") : Clip1.Resize()
    }

    Function AutoFPS (Clip clip0, string afps, int fpsn, int fpsd) {
    rate1 = (afps == "Auto") ? (Round(Float(clip0.framerate * 1000)) / 1000) / 2 : nop()
    rate2 = (afps == "Auto") ? Round(clip0.framerate) / 2 : nop()
    rate = (afps == "Auto") ? (rate1 == rate2) ? 1 : 1001 : (afps == "Igno.") ? clip0.frameratedenominator : fpsd
    ratefaktor = (afps == "Auto") ? (rate == 1001) ? 1000 : 1 : nop()
    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)
    Return clip0
    }

    Function Cropping (Clip clip0, int cl, int co, int cr, int cu) {
    clip0 = (clip0.IsRGB32() == True) ? clip0.ConvertToRGB24() : clip0
    Return (cl != 0 || co != 0 || cr != 0 || cu != 0) ? clip0.Crop(cl, co, cr, cu) : clip0
    }

    Function Resize (Clip clip1) {
    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(matrix = "Rec709") : clip1.ConvertToRGB24(matrix = "Rec709") : clip1
    clip1 = (AR == 1) ? (((clip1.width * hoehe) / clip1.height > breite) ? Clip1.Spline100Resize(breite, ceil(float(Clip1.height * breite) / clip1.width)) : Clip1.Spline100Resize(ceil(float(clip1.width * hoehe) / clip1.height), hoehe)) : clip1.Spline100Resize(breite, hoehe).ConvertToYV24(matrix = "Rec709", ChromaResample = "Spline16")
    back = (AR == 1) ? (0 == 1) ? ImageReader("", 0, clip1.framecount - 1, clip1.framerate).ChangeFPS(clip1.frameratenumerator, clip1.frameratedenominator).Spline100Resize(breite, hoehe).ConvertToYV24(matrix = "Rec709", ChromaResample = "Spline16") : BlankClip(clip1, width = breite, height = hoehe, pixel_type = "YV24").KillAudio() : clip1
    Return (AR == 1) ? Overlay(back, clip1, (back.width - clip1.width) / 2, (back.height - clip1.height) / 2).ConvertToYV24(matrix = "Rec709", ChromaResample = "Spline16") : clip1
    }


    Mit dem Befehl SaveEveryPic( int 100 , string "D:\Lets Plays\Reign Of Kings\Bilder\Folge 1", string "PNG")
    Sollte ich eigentlich die Funktion aus der Blend.avsi ansprechen, aber wenn ich es in MeGui reinladen kommt das:
    Skript error: expected a, or )
    (D:\Lets Plays\Reign Of Kings\Skripte\ Folge 1.avs, line15, column 21)
  • Ich mag nicht die große Ahnung von haben von solchen Scripten, aber mein Gefühl sagt mir, dass der Typ nicht mit im Aufruf stehen sollte.
    Verglichen mit den Aufrufen der anderen Funktionen, sieht das für mich nach dem Fehler aus.
    Statt SaveEveryPic( int 100 , string "D:\Lets Plays\Reign Of Kings\Bilder\Folge 1", string "PNG")
    dann SaveEveryPic( 100 , "D:\Lets Plays\Reign Of Kings\Bilder\Folge 1", "PNG").

    Ist nur eine Idee, ich kenn mich wie gesagt nicht damit aus. ^^
  • @Kayten : Ja richtig. int darf natürlich bei der Anwendung nicht drin stehen^^
    Aktuelle Projekte/Videos




    Seit etlichen Monaten komplett veraltete Signatur, wie ihr sicherlich schon bemerkt habt. Habe mittlerweile mehr als 4 Projekte, weshalb die Signatur leider momentan gesprengt ist xD
    Notdürftig die Liste was aktuell läuft: Unreal | Complex DooM (LPT) | DooM 2016 | Need For Speed III: Hot Pursuit | Dirt Rally | Dirt 4 | WRC 7