Kameraschwenk skripten

  • häng mich mal eben dran:

    hab hier ein bild von elephant dreams,1920*1080.
    daraus möchte ich z.b. 50 einzelbilder machen (720*576).und zwar von oben links nach unten rechts. die maske soll also langsam diagonal wandern ,soll nachher aussehen wie ein kameraschwenk.

    wie würde ein mögliches avs aussehen?
    kann man in avs auch auschnitte von bildern definieren?

    g/l

    md "%date%_%time:~0,2%.%time:~3,2%.%time:~6,2%"
    ...........................................................................................
    [X] <---- hier bitte bohren für neuen monitor.

  • Uff, k.A. ob es so ne Funktion gibt, aber eventuell kann man sowas erzeugen, indem man eine Maske erzeugt mit dem entsprechen Loch, diese Maske dann über das Bild schiebt (mittels Overlay oder Layer Filter) und dann automatisch croppt, so dass alles außer dem 'Loch' weg geht,...

    Cu Selur

  • Code
    XYZSource("pfad\zu\1920x1080.source")
    
    
    frame = 1234  #  Nummer des Zielframes
    steps = 50    #  Anzahl der Frames für den Schwenk
    
    
    freezeframe( frame, frame+steps, frame )
    trim( frame, frame+steps )
    animate( 0,steps, "lanczosresize", 720,576,0.0,0.0,720.0,576.0, 720,576,1920.0-720,1080.0-576,720.0,576.0 )
  • Selur ,didee

    besten dank für die info,das bringt mich weiter.kommen die nächsten wochen sicher noch mehr so fragen ... :D

    g/l

    md "%date%_%time:~0,2%.%time:~3,2%.%time:~6,2%"
    ...........................................................................................
    [X] <---- hier bitte bohren für neuen monitor.

  • Ich habs mal geteilt

    Es gibt eine Theorie, die besagt, dass das Universum sofort verschwinden und etwas noch Unerklärlicheres und Bizarres an seine Stelle treten wird, sobald jemand herausfindet, wofür es gut ist und warum es existiert.

    Es gibt eine andere Theorie, die besagt, dass das bereits geschehen ist.

  • Und ich das Script korrigiert. :)
    Eigentlich wäre trim+loop hier auch eleganter als freezeframe+trim, aber is' wohl nicht so schlimm ...
    Start- und Zielkoordinaten als Parameter wären auch noch ganz hübsch. Aber das lassen wir mal als Übung für die ambitionierten Avisynth-Einsteiger. ;)

  • @didee
    ich hab dein ersten vorschlag noch nicht getestet!
    wenn du sicher bist dass dein neues avs besser ist lass mich bitte nicht doof sterben.

    elegant wäre mir erstmal egal.sowas brauch ich bestimmt nicht des öfteren.brauch das halt nur für einige hundert elaphants, wenn das nachher schneller codet hätte das aber nix mit elegant zu tun. :D

    besten dank nochmal..

    l

    ps:"Start- und Zielkoordinaten als Parameter" ....,öhm ,wie ?
    das wäre genial.start und zielparas,anzahl der frames...

    edit/
    wenn man von start-ziel redet meint das eine gerade oder? gehen auch (halb)kreise oder parabeln?

    md "%date%_%time:~0,2%.%time:~3,2%.%time:~6,2%"
    ...........................................................................................
    [X] <---- hier bitte bohren für neuen monitor.

  • Kreise gehen, parabeln auch, es gehen sogar alle wege, die sich durch splines beschreiben lassen.

    Insbesondere für Kreise hatten wir hier mal einen Thread:

    http://forum.gleitz.info/showthread.php…ighlight=Spline

    Damals war die Frage aber andersherum, die Skripte musst du halt von Hand zusammenpfriemeln...:)

    Es gibt eine Theorie, die besagt, dass das Universum sofort verschwinden und etwas noch Unerklärlicheres und Bizarres an seine Stelle treten wird, sobald jemand herausfindet, wofür es gut ist und warum es existiert.

    Es gibt eine andere Theorie, die besagt, dass das bereits geschehen ist.

  • ich merk schon,ich bin hier mit meiner virtuellen kamera gut aufgehoben...,danke :)

    g/l

    md "%date%_%time:~0,2%.%time:~3,2%.%time:~6,2%"
    ...........................................................................................
    [X] <---- hier bitte bohren für neuen monitor.

  • Das mit Kreis-, Spiral- und Schrauben-Bahnen ist ne feine Sache. (Den Thread hatte ich eigentlich schon wieder vergessen, hrmpf!) Aber, ob das mit den Splines so ohne weiteres geht? Zumindest kriegt man damit doch keine "konstante Geschwindigkeit" hin, oder? Man füttert Spline() doch, in Veranschaulichung des kartesischen Koordinatensystems, einfach nur mit "x-Koordinaten", und kriegt "y-Koordinaten" raus. Wenn man das verwendet, ändert sich die Geschwindigkeit, sowie sich die "Steigung" der Kurve ändert. Man müsste dem Richtungsvektor der Kurve folgen können, aber das geht ja wohl nicht. Nix gut für diesen Fall hier ...

    PROBLEM, kann das vllt. mal jemand mit Avisynth v2.5.7 testen:
    Habe die Funktion von oben mal auf volle Parametrierung aufgeblasen. Sie *sollte* eigentlich funktionieren, steigt mir aber manchmal aus, mit dem Fehler "Crop: YUV images can only be cropped by even numbers". Das dürfte eigentlich nicht sein - das ist ja gerade der Witz an dem Resizer-Cropping, dass die Beschränkungen des Crop()-Befehles wegfallen. Fehler im Script, oder ein Bug von AS v2.5.6a, das ich immer noch verwende?

    Edit: Is'n Bug in Avisynth :) - Script mit kleinem Workaround modifiziert.

  • Tatsächlich, du hast recht was Spline angeht.

    Ich hatte das damals nur kurz überflogen und dachte aus irgendwelchen Gründen, man fütterte spline mit einem Parameter t und er spuckt einem x(t) und y(t) aus, aber da habe ich mich wohl getäuscht.

    Wenn ich nachher oder morgen noch Zeit finde, schreibe ich eine solche Funktion für Splines oder Bèzier Kurven, dann kann man fast alles machen was man will. Kennt Avisynth funktionen mit variabler Anzahl an Eingabeparametern?

    Es gibt eine Theorie, die besagt, dass das Universum sofort verschwinden und etwas noch Unerklärlicheres und Bizarres an seine Stelle treten wird, sobald jemand herausfindet, wofür es gut ist und warum es existiert.

    Es gibt eine andere Theorie, die besagt, dass das bereits geschehen ist.

  • Funktionen mit variabler Anzahl von Parametern? Nö, wüsste nicht, wie das gehen sollte. Höchstens ... Richard Berg hat doch mal so'n Monster-Script geschrieben, mit dem man Arrays variabler Größe definieren kann. Falls das irgendwie weiterhilft.

  • Na, dann gibts halt nur bis Splines und Bèziers bis zu einer festen Ordnung.

    Edith:

    hmmm, in avisynth skript wird das sooo häßlich (animate mit 22 Paramtern und so), das will ich nicht.

    Vielleicht schreibe ich einen "richtigen" Filter. Aber wenn dann erst morgen...

    Es gibt eine Theorie, die besagt, dass das Universum sofort verschwinden und etwas noch Unerklärlicheres und Bizarres an seine Stelle treten wird, sobald jemand herausfindet, wofür es gut ist und warum es existiert.

    Es gibt eine andere Theorie, die besagt, dass das bereits geschehen ist.

  • @didee

    dein erstes script funzt,zuppelt aber vor sich hin.das ruckeln kann ich so nicht lassen.was läuft verkehrt?
    muss da noch fps mit rein?
    oder hat das was mit fliesskomma umwandeln zu tun wie von dir beschrieben?

    das zweite script bekomm ich nicht zum laufen.habe dort nur ImageSource("C:\00931.png") drübergeschrieben und bei nummer des zielframes 00931 eingetragen.

    script error:expected "val","bool","int","float","string", or "clip"
    in line 4,das ist die zeile die mit 'function ZoomedTravel' anfängt.

    brauch ich dafür noch avslib?,konnte dort aber die funktion nicht finden oder ist die schon in avs drin?
    version:avisynth 2.57 build apr 22

    nächste frage:
    dein erstes script bezieht sich ja auf ein frame. z.b. 1.png
    wie sieht es aus,wenn die 'maske' diagonal runterläuft,sich aber bei 2von50 auf eine andere imagesource beziehen soll,z.b. 5.png?

    g/l

    md "%date%_%time:~0,2%.%time:~3,2%.%time:~6,2%"
    ...........................................................................................
    [X] <---- hier bitte bohren für neuen monitor.

  • Erstes Script:
    Bei mir hat da nix geruckelt (hab's ja vor dem Posten ausprobiert), man muss ganz bestimmt nichts mit fps machen, und die Fließkommavariablen passen so, wie sie sind. Kommt vermutlich, weil Du nur einen einzigen Frame lädtst ... probier' mal mit ImageSource("C:\00931.png").loop(1000)
    zu laden. Im Zweifelsfall, zum Testen das ganze mal mit einem normal geladenen Video probieren.

    Zweites Script:
    Da kannst Du nicht einfach Deine ImageSource "drüberschreiben", und gut is', nein-nein. Das ist eine *Funktion*. Und die musst Du erst einmal *anwenden*. (Das was da steht ist ja nur die Deklaration der Funktion.)

    Also z.B. so:

    Import ("path\to\ZoomedTravel.avs")
    ImageSource("bliblablu.bmp") .loop(1000)
    ZoomedTravel( 720,576, 1,75, 0,88, 1200,416)


    Warum arbeitest Du eigentlich mit ImageSource, wenn Du einen Trailer hast?

  • moin,
    ich habe kein trailer.ich habe einen ordner mit 15600 png´s in 1920*1080
    den ordner gibts online hier:
    http://media.xiph.org/ED/1080-png/

    bei http://www.elephantsdream.org/ kann man natürlich auch den fertig film saugen,in verschiedenen auflösungen.

    ich will mir aber den film umbauen.dafür brauch ich die einzelbilder.da ich nicht alle szenen verwende kann ich mir die aber trotzdem mit avisynth anschauen,ohne vorher zu coden.

    wenn ich jetzt das sript umbaue auf mehrere bilder kann ich quasi ein kameraschwenk machen wobei sich der hintergrund dann auch noch bewegt.
    weil wenn ich den schwenk nur über ein bild mache ist das zwar ein schöner effekt,den ich auch verwenden werde aber nicht zu oft.sieht zu statisch sonst aus.

    deshalb teste ich jetzt erstmal folgendes: wenn der schwenk z.b. 50 frames haben soll nehm ich dafür auch 50 verschiedene einzelimages.so bekomm ich den schwenk hin und habe innerhalb des schwenks trotzdem bewegung.

    das mit dem zweiten script werde ich auch testen,besten dank.

    g/l

    edit/
    nochmal zur verdeutlichung:
    ich könnte zwar mit dem hochaufgelösten film arbeiten,dann müsste ich aber wie ein irrer schneiden.und müsste an szenen rummachen,die ich gar nicht brauche.mittels avisynth kann ich direkt mit dem blender-output arbeiten und brauch nur das script ändern wenn nötig.und das geht ja viel schneller als schneiden.da ich nachher als zielformat mpeg2 haben will brauch ich ja die zwischenstufe in avi net.

    ist im übrigen nicht auf meinem mist gewachsen,den film umzubauen.auf die idee bin ich erst durch http://orange.blender.org/blog/creative-commons-remix/ gekommen.
    z.b. http://www.spokenring.com/numa-numa-english.php .

    md "%date%_%time:~0,2%.%time:~3,2%.%time:~6,2%"
    ...........................................................................................
    [X] <---- hier bitte bohren für neuen monitor.

  • Du lässt einfach

    clp.duplicateframe(0).trim(frame+1,frame+1).loop(steps)

    weg. Diese Zeile nimmt das framete Bild des Clips und wiederholt es steps mal.

    Dann sollte aber steps gleich der länge des Clips sein, oder man müsste noch etwas aufwand treiben.

    Didée:

    Hat clp.duplicateframe(0).trim(frame+1,frame+1).loop(steps) einen besonderen Zweck?

    Intuitiv sollte das doch das gleiche sein wie clp.trim(frame,frame).loop(steps), oder?

    Es gibt eine Theorie, die besagt, dass das Universum sofort verschwinden und etwas noch Unerklärlicheres und Bizarres an seine Stelle treten wird, sobald jemand herausfindet, wofür es gut ist und warum es existiert.

    Es gibt eine andere Theorie, die besagt, dass das bereits geschehen ist.

  • Kopernikus
    danke für den tip,ich werds versuchen.
    speziellen dank auch an alle wegen eurer avs-dau-abwärtskompatibilität.. :D

    g/l

    edit/schreibfehler

    md "%date%_%time:~0,2%.%time:~3,2%.%time:~6,2%"
    ...........................................................................................
    [X] <---- hier bitte bohren für neuen monitor.

Jetzt mitmachen!

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