Video-Wiedergabe in Python realisieren

Hier werden alle anderen GUI-Toolkits sowie Spezial-Toolkits wie Spiele-Engines behandelt.
Antworten
Timtam
User
Beiträge: 5
Registriert: Freitag 18. Januar 2013, 18:58

Hallo Python-Community,
Als erstes mal bitte euch darum mir zu sagen, falls dieses Thema hier falsch ist. Mir schien dieses Forum an sinnvollsten. Anschließend komme ich direkt zum Thema.
Ich versuche, eine Video-Wiedergabe auf meinem Windows System zu realisieren. Diese Wiedergabemöglichkeit soll auch ausschließlich auf Windows möglich sein - auf anderen Systemen wäre es natürlich toll, nötig ist es jedoch ausschließlich auf Windows. Dies liegt einfach daran, dass ich mithilfe von Python eine Art Hilfsmodul in Form eines COM Servers für eines meiner Projekte in einer anderen Programmiersprache erstellen möchte, welche ausschließlich unter Windows läuft. Aber das ist hier eher irelevant.
Nun, ich habe zich Methoden der Video-Wiedergabe ausprobiert - alle sind nicht effektiv oder veraltet. Hier diejenigen, die ich schon ausprobiert habe mit den Problemen, die auftraten. Vielleicht könnt ihr mir auch schon in der Hinsicht helfen:
PyMedia - Einfach zu alt. 2006... mag ja funktionieren, jedoch arbeite ich unter Python 2.7.3 und dafür gibt es einfach keine fertige Windows-Distribution. Das ganze mit der setup.py zu kompilieren/installieren habe ich nicht versucht, jedoch schien es mir einfach zu veraltet, um dies zu versuchen.
Pyffmpeg - zwar von 2011, trotzdem noch kein Python 2.7 support. Trotz alledem versuchte ich es unter einer Python 2.6 Distribution, erhielt allerdings nur Dll-Fehler. Wer weiß warum. Ob dieses Modul mit den neuesten FFMpeg Version auch noch einwandfrei funktionieren würde ist ebenfalls fragwürdig...
PyGlet - Nunja, ich habe eine Wiedergabe zu starten versucht, jedoch kam einfach kein Ton... frag mich einer warum. Die Wiedergabe hat einfach nicht richtig funktioniert.
DirectPython - nunja, da ich eine alternative für alle Windows-Versionen suchte schien mir dies am besten zu sein. Tatsächlich ging es auch ganz gut, jedenfalls was Audio anging, jedoch spielt dieses Modul mit Videos verrückt. Die beschränkte Funktionalität ist auch ein Manko (die die vom User nötige Berechnung für Spieldauer der Tracks etc), auch sind einige Features der Bibliothek gar nicht nutzbar (die Funktion/das Attribut "isPlaying" gibt es gar nicht). Wie gesagt, bei Video-Sachen hat es vollständig versagt.
DirectPython 11 - Dies hat mich mehr oder weniger überzeugt, auch wenn ich es mit Videos noch nicht versucht habe. Aber das interface ist gegenüber dem alten DirectPython schon viel besser geworden, auch wenn mir hasAudio() konstant False anzeigt, auch wenn ich eine Audio-Datei geladen habe und diese schon abspielbar ist/gerade abspielt...^^ Das einzige ist, wie der Name schon sagt: nur für DX 10 und höher. Da mein Programm aber auch auf Windows XP laufen soll, also keine Lösung... Vielleicht teilweise (ich kann ja beispielsweise DirectPython 11 für Windows Vista und darüber nutzen), aber dann fehlt mir immernoch eine alternative für Windows XP und darunter...

Ja, mehr habe ich einfach nicht gefunden... Alles, was die Bibliothek/en können sollten, ist eine möglichst große Sammlung von Video-Formaten abspielen können (ich möchte gern einen Mediaplayer mit diesem Feature erstellen). Am schönsten wäre es natürlich, wenn die Bibliothek als Fenster, wo das Video hin gerendert werden soll, ein Windwos Handle akzeptieren würde, allerdings wäre es auch realisierbar, ein Moduleigenes Fenster zu erstellen und dann in meine Anwendung einzubetten.
So, nun habe ich euch genug mit meinen Details erschlagen. Vielleicht könnt ihr mir ja helfen? Ich bin hier schier am verzweifeln...
Danke euch schon mal im Voraus - sowohl fürs Lesen, als auch fürs Beantworten...
mfg.
Timtam
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Hallo und willkommen im Forum!

Ich würde Qt oder Wx verwenden, für beides findest du Python-Bindings und Beispiele zum Abspielen von Multimediadaten. Wenn du eine vernünftige GUI willst, dann wirst du eh nicht um eines der beiden herum kommen.
Das Leben ist wie ein Tennisball.
Timtam
User
Beiträge: 5
Registriert: Freitag 18. Januar 2013, 18:58

Hallo,
Danke erstmal für deine Antwort.
Sind diese beiden Frameworks denn so flexibel Einsetzbar bzw. so multifunktional, was die verschiedenen Video-Formate angeht?
Denn so ein ganzes GUI-Framework brauche ich eigentlich gar nicht. Wie gesagt, ich möchte eigentlich nur einen simplen Server gestalten, welcher standardfunktionen wie Wiedergabe, Pausieren, Stopp. Position (inkl. seeking), Lautstärke etc unterstützt und das Video einigermaßen korrekt ausgibt. Das dazugehörige GUI müsste nicht unbedingt stylisch ausfallen, mein bisheriger Code für den Mediaplayer umfallst ca. 2500 Zeilen und ist in Autoit3 geschrieben. Ich möchte die Video-Unterstützung eigentlich nur anbinden, da das re-writing in Python eine Menge mehr Zeit in Anspruch nehmen würde... Daher wäre eine "kleine" und "simple" Lösung eigentlich praktischer... Ich meine, wenn es nicht anders geht werde ich auf sie zurückgreifen müssen, aber es wäre doch schön, wenn ich dafür eine einfachere Lösung finden könnte... Das ganze GUI-Design ist übrigens schon in Autoit3 fertig, ich bräuchte eigentlich nur ein simples Fenster mit dem Video drin, was ich dann in mein bereits funktionales Programm-GUI einbetten kann.
mfg.
Timtam
PS: Danke für die Begrüßung. :).
Antworten