Python Video abspielen?
welchen Befehl brauche ich um mit ein Video abzuspiel wenn ich ein Button klicke. Ich möchte auch Pause, stop und exit funktinen?
danke
1 Antwort
![](https://images.gutefrage.net/media/default/user/15_nmmslarge.png?v=1551279448000)
Dazu benötigt man zuerst ein Multimedia-Framework. Zum Beispiel das freie Gstreamer. Das kann man in Python einbinden. Man muss dann im Python-Programm die Gstreamer-API Befehle aufrufen. Gstreamer ist plattformunabhängig, das geht auch unter Mac und Linux. Hier der Download für Windows: (beides muss installiert sein):
- Gstreamer Entwicklungsversion: https://gstreamer.freedesktop.org/data/pkg/windows/1.14.4/gstreamer-1.0-devel-x86_64-1.14.4.msi
- Gstreamer Laufzeitversion: https://gstreamer.freedesktop.org/data/pkg/windows/1.14.4/gstreamer-1.0-x86_64-1.14.4.msi
Ausserdem muss man noch das python-gstreamer und das python-gobject Modul in Python installieren.
Hier ein Beispielcode:
import os
import sys
import Tkinter as tkinter
import gobject
import gst
def on_sync_message(bus, message, window_id):
if not message.structure is None:
if message.structure.get_name() == 'prepare-xwindow-id':
image_sink = message.src
image_sink.set_property('force-aspect-ratio', True)
image_sink.set_xwindow_id(window_id)
gobject.threads_init()
window = tkinter.Tk()
window.geometry('500x400')
video = tkinter.Frame(window, bg='#000000')
video.pack(side=tkinter.BOTTOM,anchor=tkinter.S,expand=tkinter.YES,fill=tkinter.BOTH)
window_id = video.winfo_id()
player = gst.element_factory_make('playbin2', 'player')
player.set_property('video-sink', None)
player.set_property('uri', 'file://%s' % (os.path.abspath(sys.argv[1])))
player.set_state(gst.STATE_PLAYING)
bus = player.get_bus()
bus.add_signal_watch()
bus.enable_sync_message_emission()
bus.connect('sync-message::element', on_sync_message, window_id)
window.mainloop()
![](https://images.gutefrage.net/media/default/user/15_nmmslarge.png?v=1551279448000)
Danke für deine Antwort, leider klappt das nicht ich bekomme immer den Fehler Modul gst nicht gefunden und den bekomme ich nicht gelöst, was muss ich da tun?
![](https://images.gutefrage.net/media/default/user/15_nmmslarge.png?v=1551279448000)
Probiere mal GStreamer (Entwicklungsversion und Laufzeitversion) zur Windows PATH Umgebungsvariable hinzufügen. Das geht so: http://techmixx.de/windows-10-umgebungsvariablen-bearbeiten/
![](https://images.gutefrage.net/media/default/user/15_nmmslarge.png?v=1551279448000)
Hier ein Youtube-Video das es erklärt. Das erklärt wie man die Umgebungsvariable für JAVA setzt, für Gstreamer muss man dann den Pfad von Gstreamer eintragen: https://www.youtube.com/watch?v=owKnjT5MXzA
ich habe das versucht, aber es klappt nicht welche daten muss ich da hinzufügen?