image image


Tutorial: Videos abspielen mit Processing.py

Ich überarbeite gerade meine gesammelten Beiträge zu Processing.py, dem Python-Mode von Processing. Dabei fiel mir auf, daß ich bisher wenig bis gar nichts zu den Video-Fähigkeiten von Processing geschrieben hatte. Vermutlich lag es daran, daß bei den aktuellen Versionen von Processing die Video-Bibliothek nicht mehr Bestandteil der Standard-Distribution ist, sondern daß man diese gesondert herunterladen muß. Und hier lag auch schon der erste Hase im Pfeffer.

image

Denn meine Versuche, die Bibliothek über das Tools-Menü zu installieren, endeten jedesmal mit einem Timeout: Gefühlt einhundert Mal hatte ich es probiert und jedesmal endete der Versuch mit der Fehlermeldung: »Verbindungs-Wartezeit beim Download von Video überschritten«, also einem Timeout. Nachdem ich es beinahe aufgegeben hatte, klappte es beim Versuch 101 dann doch – die Bibliothek war endlich installiert.

Der Rest war einfach (dabei half mir auch eine schöne Video-Tutorial-Reihe von Daniel Shiffman):

image

Wie hier schon einmal beschrieben, bindet man die Bibliothek in seinen Sketch ein und kann dann einfach loslegen:

add_library('video')

def setup():
    global movie
    size(560, 315)
    movie = Movie(this, "confettisystem.mp4")
    movie.loop()

def movieEvent(movie):
    movie.read()

def draw():
    global movie
    image(movie, 0, 0)

Diese paar Zeilen reichen wirklich aus, um einen Video-Player in Processing.py zu schreiben. Natürlich hat die Video-Bibliothek noch ein paar weitere Methoden, die am häufigsten benötigten sind (in meinen Augen):

  • play() – spielt das Video nur einmal ab (statt loop())
  • pause() – stoppt das Video an der aktuellen Stelle
  • jump() – springt zu einer bestimmten Stelle im Video (Angaben in Sekunden (als Fließkommazahl – also auch 3,57 Sekunden geht))
  • duration() – gibt die Länge des Films zurück (ebenfalls in Sekunden).

Wichtig ist auch noch die Funktion movieEvent() im obigen Sketch. Sie setzt erst die Event-Schleife in Gang, mit der das Video jedesmal, wenn ein neuer Frame bereit ist, diesenim Processing-Fenster anzeigt. Ohne diese seht Ihr nichts.

Aber am Interessantesten ist: Ist der Frame einmal geladen, ist er ein Bild (image). Alle Filter und Bildverarbeitungsfuntkionen, die es in Processing gibt, könnt Ihr daher auch auf Videos anwenden. Ich werde – sobald ich auf Archive.org ein nettes Video gefunden habe – in den nächsten Tagen damit ein wenig experimentieren und dann hier berichten. Still digging!

Die Video-Bibliothek besitzt zusätzlich noch Klassen und Methoden, um auch Live-Videos von einer Kamera direkt zu verarbeiten (Capture()). Aber da die integrierte Kamera meines betagten MacBook Pro nicht funktioniert (sie hatte nie wirklich funktioniert, aber ich hatte sie auch nie benötigt (ich skype aus Datenschutzgründen nie)), konnte ich diese nicht testen. Aber sie funktionieren im Prinzip genauso wie die Video-Funktionen mit gespeicherten Videos. Was die Unterschiede sind, kann man auch in der oben verlinkten Video-Playlist von Daniel Shiffman sehen, der intensiv damit experimentierte.

Das Beispielvideo im Screenshot oben habe ich übrigens mit der NodeBox 1 ersellt. So wächst zusammen, was zusammengehört 😜 , auch wenn es von den Machern sicher nicht so geplant war.


(Kommentieren) 

image image



Über …

Der Schockwellenreiter ist seit dem 24. April 2000 das Weblog digitale Kritzelheft von Jörg Kantel (Neuköllner, EDV-Leiter, Autor, Netzaktivist und Hundesportler — Reihenfolge rein zufällig). Hier steht, was mir gefällt. Wem es nicht gefällt, der braucht ja nicht mitzulesen. Wer aber mitliest, ist herzlich willkommen und eingeladen, mitzudiskutieren!

Alle eigenen Inhalte des Schockwellenreiters stehen unter einer Creative-Commons-Lizenz, jedoch können fremde Inhalte (speziell Videos, Photos und sonstige Bilder) unter einer anderen Lizenz stehen.

Der Besuch dieser Webseite wird aktuell von der Piwik Webanalyse erfaßt. Hier können Sie der Erfassung widersprechen.

Diese Seite verwendet keine Cookies. Warum auch? Was allerdings die iframes von Amazon, YouTube und Co. machen, entzieht sich meiner Kenntnis.


Werbung


Werbung


image  image  image
image  image  image


image