Schulische Videoplayer-Projekt

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
dibujo
User
Beiträge: 13
Registriert: Donnerstag 16. Oktober 2014, 12:43

Hallo, liebes Forum,

ich bin Python-Anfänger, allerdings mit reichlich Vorerfahrungen in Sachen Programmierung. Kurz meine Hard- und Software: Ich habe ein Apple Macbook mit 10.7. sowie Python 2.7 und Pygame installiert.

Zusammen mit einem Kollegen möchte ich in einem Jahrgang 7 ein Video-Projekt durchführen. Die Einheit hat die Überschrift "Sinn des Lebens". Die Schülerinnen und Schüler videographieren Interviews mit Menschen aus ihrem persönlichen Umfeld. Diese Videos sollen ähnlich dem 7-Milliarden-andere-Projekt dargestellt werden (siehe http://www.7billionothers.org/frankfurt, 2. Bild links). Natürlich werden wir nicht so viele Videos haben, aber es soll schon recht ähnlich ausschauen.
D.h.: Die Interview-Videos werden als Kacheln auf dem Bildschirm dargestellt. Sie laufen tonlos. Nach einem Zufallsprinzip wird einer der Interview-Videos ausgesucht, vergrößert dargestellt und mit Ton abgespielt. Nach Ende wird ein neues ausgesucht, u.s.w.
Ich habe ein paar Tutorials gesichtet und auch schon ein paar Ideen, erhoffe mir aber aus dem Forum gezielt Tipps, wie wir dieses Projekt umsetzen können.

Was habe ich inzwischen herausgefunden:
- Für die GUI-Erstellung sollte ich auf die pygame-Bibliothek zurückgreifen. Ich habe auch ein Beispiel mit "pygame2" gefunden, erhalte jedoch eine Fehlermeldung. Ich habe keine nutzerfreundlichen Installationshinweise für pygame2 auf Mac OS X 10.7 im Netz gefunden.
- "tkinter" scheint nicht so geeignet zu sein, da ich keine Vorschrift für das Abspielen von Videos gefunden habe.
- Was ich ebenfalls suche, ist eine Beschreibung der Objekte und Funktionen einer Bibliothek, also so eine Art "Hilfe", damit ich weiß, was mir für jedes Modul überhaupt zur Verfügung steht.

Wäre schön, wenn ihr mir da weiterhelfen könntet, auch mit Literatur, Tutorials, …

Viele Grüße
dibujo
BlackJack

dibujo:Muss das Video denn ”live” sein? So auf Anhieb hätte ich jetzt gesagt das ist ein Job für eine Videoschnittsoftware um aus den Einzelvideos *eins* zu machen, das man dann mit jedem beliebigen Videoplayer abspielen kann.

Die Module und deren Inhalte sind üblicherweise in der Dokumentation des jeweiligen Projekts beschrieben. Die von Pygame erschien mir dabei eigentlich immer recht vollständig zu sein.

Pygame kann wohl nur MPEG-1-Videos abspielen. Und laut Doku braucht der Player die Audio-Wiedergabe komplett für sich, das das abspielen von mehr als einem Video fast ausschliesst. Das wäre auf jeden Fall das erste was ich ausprobieren würde bevor ich da mehr Zeit investieren würde.

Multimedialösungen sind auch in der Regel sehr plattformspezifisch. Man sollte also auf dem System entwickeln was auch später für die Präsentation verwendet wird, oder zumindest regelmässig testen ob das Programm dort auch läuft.

Wenn ich vor dieser Aufgabe stünde, würde ich mir wohl die Multimediamöglichkeiten vom Qt-GUI-Rahmenwerk anschauen, oder GStreamer. Bei GStreamer weiss ich aber nicht ob das auch auf anderen Systemen als Linux benutzbar und einfach installierbar ist.
dibujo
User
Beiträge: 13
Registriert: Donnerstag 16. Oktober 2014, 12:43

Hallo, lieber Moderator,
danke für diese Tipps. Z.Z. kämpfe ich noch damit, QT und wxpython überhaupt auf meinem mac so abzulegen, dass ich die Module importieren kann. Momentan funzt das noch nicht …
Insbesondere deine Hinweise zur Reihenfolge, wie ich mein Projektmanagement angehen sollte, sowie das Ausprobieren auf dem System, das hinterher auch "abspielt", werde ich berücksichtigen.
Noch eine Frage: Im Netz habe ich einen Mediaplayer gefunden, der auf dem wxpython-Modul aufbaut. Ein Kommentar zu diesem Modul wäre nett.
Außerdem habe ich in viele Forumsbeiträge hineininterpretiert, dass ich besser mit Python 2.7 entwickeln sollte, korrekt?
Vielen Dank und
viele Grüße
dibujo
dibujo
User
Beiträge: 13
Registriert: Donnerstag 16. Oktober 2014, 12:43

Hallo,
noch was: Die Schüler_innen sollen die Videos aufnehmen - die werden nicht live eingespielt!
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

dibujo hat geschrieben:danke für diese Tipps. Z.Z. kämpfe ich noch damit, QT und wxpython überhaupt auf meinem mac so abzulegen, dass ich die Module importieren kann. Momentan funzt das noch nicht …
"Funktioniert nicht" ist keine vernünftige Fehlerbeschreibung. Was funktioniert denn nicht? Was erwartest du? Was passiert? Gibt es eine Fehlermeldung und wenn ja, welche?
dibujo hat geschrieben:Noch eine Frage: Im Netz habe ich einen Mediaplayer gefunden, der auf dem wxpython-Modul aufbaut. Ein Kommentar zu diesem Modul wäre nett.
Wir können nicht wissen was du gefunden hast, da musst du schon konkreter werden.
dibujo hat geschrieben:Außerdem habe ich in viele Forumsbeiträge hineininterpretiert, dass ich besser mit Python 2.7 entwickeln sollte, korrekt?
Das hängt von den verwendeten Modulen ab.
dibujo hat geschrieben:noch was: Die Schüler_innen sollen die Videos aufnehmen - die werden nicht live eingespielt!
Das war mit live nicht gemeint. Die Frage ist, ob wirklich per Zufall entschieden werden soll, welches Video gerade abgespielt wird oder ob es nicht vollkommen ausreichend ist, wenn man die Videos vorher zusammenschneidet. Das würde vieles nämlich deutlich einfacher machen.
Das Leben ist wie ein Tennisball.
dibujo
User
Beiträge: 13
Registriert: Donnerstag 16. Oktober 2014, 12:43

Hallo BlackJack und andere Foren-TN,
es ist jetzt ein bisschen her, dass ich meinen Beitrag hier eingestellt hatte.
Auf die Hinweise, die ich von euch erhalten hatte, habe ich mich entschieden, erstmal ein paar Tutorials durchzuarbeiten. Hängen geblieben bin ich bei Python-2.7, QT-Designer und PySide-PyQt4. Ich bin noch weiter am Einarbeiten, habe keine neuen Programmierfragen, eher zwei allgemeine?
- Bin ich mit den aufgeführten Tools auf dem richtigen Weg, d.h. für mich auch nicht auf dem kompliziertesten Weg …
- Wenn dies der Fall ist, würde ich den Thread hier schließen und im PyQt-Forum mit meinen Fragen weitermachen.
Vielen Dank für eure Unterstützung,
dibujo
BlackJack

@dibujo: Die Frage ist halt immer noch ob das zusammenfügen der Einzelvideos tatsächlich live passieren muss oder ob man nicht *ein* Video erstellen kann welches dann einfach abgespielt wird. Das würde es auch ermöglichen das am Ende jeder Schüler eine Kopie von dem Video haben könnte.

Ich könnte mir auch vorstellen dass das gleichzeitige abspielen von x Einzelvideos den Rechner ganz schon belasten könnte und das auch von System zu System deutlich unterschiedlich ausfallen kann, je nach dem was für Grafikhardware zum Einsatz kommt und was die Treiber so unterstützen.

Ansonsten würde ich erst einmal schauen ob es nicht eine einfacherere Möglichkeit gibt als sich so etwas selbst zu programmieren. Irgendein Autorensystem für Video(kunst)projekte oder so.
nezzcarth
User
Beiträge: 1633
Registriert: Samstag 16. April 2011, 12:47

BlackJack hat geschrieben:Ansonsten würde ich erst einmal schauen ob es nicht eine einfacherere Möglichkeit gibt als sich so etwas selbst zu programmieren. Irgendein Autorensystem für Video(kunst)projekte oder so.
Ich wollte eigentlich nicht schon wieder in einem Python Forum was anderes empfehlen, aber da du es ansprichst: ich würde mal schauen, ob man das nicht vielleicht mit vvvv oder ggf. puredata leichter lösen kann. Ich kenne mich da kaum aus, hatte aber den Eindruck, dass das so die üblichen Verdächtigen in der Soarte sind.
EmaNymton
User
Beiträge: 174
Registriert: Sonntag 30. Mai 2010, 14:07

Ich persönlich würde hier wohl QML für die Darstellung verwenden, gerade wenn es nachher in einer Präsentation enden soll und man das ganze durch Animationen aufhübschen kann, was imho mit PyQt/PySide alleine nicht geht.
QML bringt auch ein Mediaplayer-Element bereits mit, so dass du eigentlich nicht mehr viel machen musst.
Allerdings ist BlackJacks Einwand mit der schlechten Perfomance zutreffend. Ich habe gerade mal ein Grid mit 6 Filmen versucht gleichzeitig laufen zu lassen und es ist da schon grenzwertig. Alternativ könntest du aus den Filmen auch kurze Sequenzen z.B. als animierte Gifs produzieren (automatisiert z.B. mit ffmpeg/convert) und zunächst diese in einem Grid darstellen. Dann wird zufällig ein Video ausgewählt, animiert vergrößert und abgespielt. Nach dem Ende wird es wieder animiert verkleinert und das nächste Video kommt an die Reihe. Das Ganze kannst du auch mit Python verknüpfen, so dass du auch die Logik in Python programmierst. Wenn du willst, kann ich gerne nachher mal einen kleinen Prototypen basteln, den du als Grundlage verwenden kannst.
dibujo
User
Beiträge: 13
Registriert: Donnerstag 16. Oktober 2014, 12:43

Hallo EmaNymton,
vielen Dank für dein Angebot. Ich bin immer noch dabei, mich in die Python-/PySide-Programmierung einzufuchsen. Die Idee mit dem ffmpeg-Converter (den es ja auch für Mac gibt) in animierte Gifs zu verwandeln, werde ich bedenken.
Ich gebe mir noch eine Woche Zeit und dann melde ich mich ggf. wieder! Wäre trotzdem nett, wenn du mir deinen Code einmal zur Verfügung stellen könntest. Derzeit programmiere ich mit PyCharm und dem Qt-Designer,
vielen Dank und viele Grüße
dibujo
EmaNymton
User
Beiträge: 174
Registriert: Sonntag 30. Mai 2010, 14:07

Habe gerade mal angefangen, das schön zu machen ;)
Ein erstes Ergebnis siehst du hier (mit eigenen Filmchen ;)):

https://www.youtube.com/watch?v=2ExJ3O9o4Y8

Die Filme liegen alle in einem Verzeichnis, sowie die dazugehörigen mit ffmpeg generierten Preview-Bilder, kann man alternativ halt auch mit animierten gifs machen.
Im Moment werden die Filme noch durch anklicken gestartet und gestoppt, das lässt sich aber noch ändern. Ich bin auch noch nicht wirklich zufrieden, da man bei der Animation zum Teil die anderen Vorschaubilder zuerst sieht. Das sollte nicht sein. Ist aber ein nettes Projekt ;)

Allerdings habe ich jetzt ganz auf Python verzichtet und es nur mit QML gemacht, deswegen wird das hier vielleicht ein wenig OT. Schick mir mal eine PN mit Kontaktinformationen (Mail, Jabber?), wenn du nähere Infos/Quelltext willst.
Antworten