Seite 1 von 2

Video in loop abspielen

Verfasst: Freitag 11. Juli 2008, 12:51
von dirty sanchez
Hallo,
wie kann man mit Python den MPlayer oder vlc-Player starten und ein Video in loop abspielen lassen?

Verfasst: Freitag 11. Juli 2008, 12:54
von Hyperion
Am besten per Subprocess Modul. Dann musst Du "nur" noch rausfinden, wie man den Playern eine Datei zum Öffnen übergibt und ihn dazu überredet, das Video im Loop zu spielen. Ist also weniger ein Python-Problem ;-)

Verfasst: Freitag 11. Juli 2008, 12:56
von dirty sanchez
wie funktioniert das subprocess-modul?

subprocess.Popen(args, stdin = subprocess.PIPE, stdout = subprocess.PIPE, stderr = subprocess.PIPE, shell=True)

damit kann ich irgendwie nicht so viel anfangen.

Verfasst: Freitag 11. Juli 2008, 13:12
von lunar
Die Doku hält doch unter unter Replacing older functions ... genügend Beispiele bereit.

Btw, "shell=True" würde ich mir gar nicht erst angewöhnen ...

Verfasst: Freitag 11. Juli 2008, 13:41
von dirty sanchez
was haltet ihr von dieser Lösung?

os.system(r'"C:\Program Files\MPlayer for Windows\mplayer.exe" -loop 0 C:\...\video.avi')

Verfasst: Freitag 11. Juli 2008, 14:00
von lunar
dirty sanchez hat geschrieben:os.system(r'"C:\Program Files\MPlayer for Windows\mplayer.exe" -loop 0 C:\...\video.avi')
Gar nichts. Diese Lösung kommt nicht mit Sonderzeichen und Leerzeichen in Dateinamen zurecht.

Im Übrigen sollte es mit der Dokumentation ein leichtes sein, diese Zeile in einen subprocess-Aufruf zu verwandeln.

Verfasst: Freitag 11. Juli 2008, 14:24
von dirty sanchez
klar kommt sie mit leerzeichen zurecht. habs doch ausprobiert bevor ichs reingestellt hab.

Verfasst: Freitag 11. Juli 2008, 14:30
von BlackJack
Glaube ich nicht. Es sei denn `os.system()` ruft bei Dir eine eigenartige Shell auf. Womit wir auch wieder bei dem Problem wären, warum man die Finger von `os.system()` lassen sollte.

Verfasst: Freitag 11. Juli 2008, 14:30
von snafu
subprocess.call(['vlc', '-L', 'beispiel.mp3'])

Wie du siehst musst du alle Argumente, die ausgeführt werden sollen, als Liste übergeben.

Verfasst: Freitag 11. Juli 2008, 14:48
von lunar
dirty sanchez hat geschrieben:klar kommt sie mit leerzeichen zurecht. habs doch ausprobiert bevor ichs reingestellt hab.
Im Literal, welches das Kommando enthält, Anführungszeichen um den Dateinamen zu setzen, bedeutet nicht automatisch, dass das Kommando mit Leerzeichen zurecht kommt.

"system" ist von allen Möglichkeiten in der Standardbibliothek die schlechteste, und solange du nicht mal weißt, welche Probleme du dir damit ins Haus holst, kannst du dir damit prima ins eigene Bein schießen.

Nutze subprocess, snafu war sogar so freundlich, dir die Dokumentation vorzulesen ;)

Verfasst: Freitag 11. Juli 2008, 15:00
von snafu
lunar hat geschrieben:Nutze subprocess, snafu war sogar so freundlich, dir die Dokumentation vorzulesen ;)
Inklusive vlc --help ^^

Verfasst: Montag 14. Juli 2008, 07:30
von dirty sanchez
danke, aber subprocess.call sagt mir nichts, in der referenz stehts mit subprocess.Popen und das funktioniert so auch!?

Verfasst: Montag 14. Juli 2008, 08:44
von dirty sanchez
nun hab ich noch ein problem:
während ein video abgespielt wird und ich ein neues video starte läuft das alte weiter und das neue nur im hintergrund (zwei player laufen).
jetzt hätt ich aber gern das wenn ein neues video gestartet wird, das alte vorher beendet wird (nur ein Player läuft).
wie geht das (mit subprocess)?

Verfasst: Montag 14. Juli 2008, 10:06
von veers
dirty sanchez hat geschrieben:nun hab ich noch ein problem:
während ein video abgespielt wird und ich ein neues video starte läuft das alte weiter und das neue nur im hintergrund (zwei player laufen).
jetzt hätt ich aber gern das wenn ein neues video gestartet wird, das alte vorher beendet wird (nur ein Player läuft).
wie geht das (mit subprocess)?
Mit Eigeninitiative.
http://www.google.ch/search?q=python+kill+process

Verfasst: Montag 14. Juli 2008, 14:17
von dirty sanchez
wofür gibts denn das forum?
wenn jeder ewig zeit hätte, würde mal wohl irgendwann die lösung seiner probleme alleine finden. also kann mir jemand weiterhelfen?
geht das beenden eines subprocess nur über win32? ich will einfach wenn ich ein video starte das laufende video vorher beenden. mplayer macht ein neues fenster auf (zwei videos laufen) und MPUI bricht die aktion ab(kein video läuft). schonmal im voraus danke

Verfasst: Montag 14. Juli 2008, 14:26
von lunar
dirty sanchez hat geschrieben:wofür gibts denn das forum?
Ganz sicher nicht, um dir die Dokumentation vorzulesen oder Google für dich zu bedienen.
wenn jeder ewig zeit hätte, würde mal wohl irgendwann die lösung seiner probleme alleine finden. also kann mir jemand weiterhelfen?
Du erwartest also, dass andere sich die Zeit nehmen, die du nicht für Recherche in Dokumentationen oder fürs Googlen verwenden willst? Habe ich das so richtig verstanden?

Verfasst: Dienstag 15. Juli 2008, 10:58
von dirty sanchez
nein das erwarte ich nicht, aber es gibt leute die das ja schon wissen!

Verfasst: Dienstag 15. Juli 2008, 12:23
von audax
Und die haben, um ihr Wissen weiter zu geben, die Dokumentation geschrieben!

Verfasst: Dienstag 15. Juli 2008, 12:30
von dirty sanchez
alles klar

Verfasst: Dienstag 15. Juli 2008, 12:33
von HWK