Video Strecken durch frame-interpolation

  • Hey.
    Ich suche eine (kostenlose) möglichkeit, einen video zu strecken, also länger zu machen. dazu möchte ich aber nicht die framerate senken, sondern zusätzliche bilder einfügen. diese zwischenbilder sollen aus den vorhandenen berechnet werden.
    wir haben für ein uni-projekt eine kurze videosequenz gedreht, die unserem betreuer ein wenig zu kurz geraten ist. da der aufwand, das neu zu drehen und zu bearbeiten zu groß wäre, möchte ich den video ohne neuaufnahmen "länger" machen. angeblich gibt es diese möglichkeit in diversen video-tools (die ne menge geld kosten).

    wer weis eine möglichkeit? gibts da einen schicken avisynth-filter?

    gruß,

    freak

    freak

  • tach auch !

    Sicherlich geht da was mit Avisynth.
    Aber was hälts Du davon, wenn Du uns mehr über das Video sagst.
    Auflösung, Codec, Quelle, Interlaced, Progressiv etc.

    Wenn Du das nicht weißt , dann lass einfach mal GSPOT (Das Programm heißt wirklich so) sagen was Du hast.
    Ein Report als TXT ausgegeben und hierhinein Copy&Pasted wäre das beste.

    Gruss BergH

  • Oder MediaInfo. :D

    "Diejenigen, die grundlegende Freiheiten aufgeben würden, um geringe vorübergehende Sicherheit zu erkaufen, verdienen weder Freiheit noch Sicherheit."
    Benjamin Franklin (1706-1790)

    Meine Erfahrungen in der Open Source-Welt: blog.bugie.de

  • das video( bzw es sind 6 stück, jedes muss einzeln gestreckt werden) hat folgende eckdaten:

    108x248 px (breite x höhe)
    25 fps
    ca 50 frames lang (ja wirklich)
    uncompressed - entstanden durch virtualdub

    ich hab das video deinterlaced und anderweitig gefiltert (weisabgleich, denoise etc). es stammt von einer dv-cam. quellmaterial ist auch noch verfügbar (also interlaced und größer).

    ton gibts keinen, deswegen ist das schonmal völlig egal.

    fehlen noch angaben? ;)
    es geht nur darum, das video so lang wie möglich zu strecken. es würde schon genügen, wenn man auf ca 1,5 mal so viele frames kommt.

    gruß,

    freak


    edit: was mir gerade noch einfällt: statt zu deinterlacen könnte man doch sicher die beiden halbbilder einzeln verwenden, da ich doch sowieso weniger als die hälfte der vertikalen auflösung benötige. kann mir da jemand ein script schreiben, das die fields entsprechend verschränkt, dass die immer abwechselnd kommen? wie muss ich da resizen, dass die seitenverhältnisse wieder passen?

    freak

  • 108 Breite x 248 Höhe - und interlaced?! Na viel Spaß damit...
    __

    Die Fields separieren kann man in AvISynth mit "SeparateFields()". Das dabei entstehende Video sollte halb so hoch sein, und doppelt so viele fps haben. Um sicher zu stellen, dass man die richtige Reihenfolge hat, sollte man einmal "AssumeTFF()" und einmal "AssumeBFF" davor schreiben, und nachschauen, wann das Video flüssig aussieht.

    Zur Interpolation von Frames ... im Allgemeinen sollte eine Kombination aus "AssumeFPS()" und "ConvertFPS()" helfen. Ab AviSynth 2.56 kann man dafür per "zone"-Parameter festlegen. Wenn man unsinnig große Werte dafür einsetzt, zeigt einem eine Fehlermeldung, welches Maximum für dieses gerade vorhandene Video möglich wäre.

    http://www.avisynth.org/FPS

  • Auf doppelt so viele Frames kommst du recht bequem, wenn du einen Bob zum Deinterlacen verwendest, am besten eine der schlauen Varianten von Scharfi, mit MotionCompensation und so.

    Den Rest musst du mit AssumeFPS/ChangeFPS hinbiegen.

    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.

  • Zitat

    108 Breite x 248 Höhe - und interlaced?! Na viel Spaß damit...

    das quellmaterial (= 720x576) ist interlaced. das resultierende=fertige video muss deinterlaced sein, das es für die monitor-präsentation ausgelegt ist.

    edit:

    Zitat

    Die Fields separieren kann man in AvISynth mit "SeparateFields()". Das dabei entstehende Video sollte halb so hoch sein, und doppelt so viele fps haben. Um sicher zu stellen, dass man die richtige Reihenfolge hat, sollte man einmal "AssumeTFF()" und einmal "AssumeBFF" davor schreiben, und nachschauen, wann das Video flüssig aussieht.

    hab das video separated. assumeTFF sieht blöd aus, AssumeBFF sieht genauso aus wie ohne eins der kommandos.
    mein problem ist jetzt, das das video auf und ab springt, da die fields ja eigentlich nicht auf "gleicher höhe" liegen, wie es bei mir jetzt der fall ist. kann ich je nach field oben oder unten noch eine pixelreihe hinzufügen? oder das ganze anders kompensieren?

    edit2:

    Zitat

    Auf doppelt so viele Frames kommst du recht bequem, wenn du einen Bob zum Deinterlacen verwendest, am besten eine der schlauen Varianten von Scharfi, mit MotionCompensation und so.


    könnte mir da jemand ein beispiel zeigen, ich hab auf die schnelle nix konkretes dazu gefunden.
    edit3: ok, bei avisyth.org hab ich was, könnte echt gut sein. ich probiers gerade (22.50h)

    freak

  • so. ich hab mit diesem skript recht gute erfolge erzielt. jetzt ist der clip schonmal doppelt so lang. sehr gut, vielen dank an euch!

    Code
    AviSource("source.avi")
    Bob(1/3,1/3,288)
    BilinearResize(384,288)
    AssumeFPS(25)

    allerdings erkennt man am "horizont" ein flackern. das hätte ich gern noch weg. wie funktioniert das mit dem motion compensation? hier ist ja keine wirkliche bewegung da, sondern ein flakern in sehr kleinen bereichen des bildes.

    freak

  • Der avisynth Bob ist ziemlich schlecht
    such mal hier im Board oder im englischen nach "Bob" und "scharfi"

    Oder nach "mvbob"

    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.

  • danke für den hinweis. ich hab mir jetzt mal den "deinterlace - smooth" von gunnar thalin genommen, der macht das um welten besser.
    das interlacing wäre somit ausgeschöpft (zum strecken).

    freak

  • tach auch !

    Und vielleicht solltest Du das resizen nochmal RICHTIG machen.

    Aus 720*576 kann man auch schöne Auflösungen machen.

    Welche ?
    Sagt Dir FitCD ein Programm von SHH

    Z.B.
    304*176
    272*160
    240*144

    Deine Auflösung ist Murks.

    Gruss BergH

  • du weist ja nciht, was ich damit machen möchte. ;D
    es werden 6 videos nebeneinander gebastelt, die der user einer interaktiven bedienoberfläche anklicken kann, um sie abzuspielen. das ganze muss entsprechenden designkriterien entsprechen, und entsprechend unserem entwurf insgesammt 650x250 pixel haben. da 650 nicht mal 4 als teiler hat, ist das video später 648x248px groß.

    ich kann einfach keine anderen auflösungen nehmen, besonders deshalb nciht, da das video später auf keinen fall "on the fly" skaliert werden darf.

    das video ist jetzt nach meiner zufriedenheit. ich danke nochmal allen, die mir weitergeholfen haben. ihr habs echt drauf!
    gruß,

    freak

    freak

Jetzt mitmachen!

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