Seite 1 von 1

mplayer stoppt nach 2m

Verfasst: Dienstag 5. Januar 2016, 20:32
von wasserflo
Hi,

ich rufe aus einem Python prg den mplayer auf.
Dummerweise hören alle aufgerufenen MP3s nach ca. 2m auf.
Das heißt der mplayer Prozess wird beendet.
Aufgerufen wird das ganze mit

player = subprocess.Popen(["mplayer", "start.mp3"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

Hat jemand eine Idee, warum das so ist und wie man das ändert?
Starte ich den mplayer von der Kommandozeile, läuft das MP3 bis zum Ende.

Gruß
Florian

Re: mplayer stoppt nach 2m

Verfasst: Dienstag 5. Januar 2016, 20:52
von BlackJack
@wasserflo: Was machst Du denn danach mit den umgeleiteten Ausgaben? Wenn das Programm da Daten schreibt und Du die nicht ausliest, sind irgendwann die Puffer voll und der externe Prozess blockiert.

Re: mplayer stoppt nach 2m

Verfasst: Donnerstag 7. Januar 2016, 21:04
von wasserflo
Da ich den Output nicht brauche, mach ich da auch nichts mit.
Sollte die Output Pipe dann eventuell NULL sein?

Gruß
Florian

Re: mplayer stoppt nach 2m

Verfasst: Donnerstag 7. Januar 2016, 21:08
von Dav1d
Es sollte funktionieren wenn du nach devnull umleitest

Code: Alles auswählen

with open(os.devnull) as nul:
     p = Popen(..., stdout=nul, stderr=nul)

Re: mplayer stoppt nach 2m

Verfasst: Donnerstag 7. Januar 2016, 21:21
von wasserflo
Hab's gerade mal damit probiert:

devnull = open('/dev/null', 'w')
player = subprocess.Popen(["mplayer", "r1.mp3"], stdin=subprocess.PIPE, stdout=devnull, stderr=subprocess.PIPE)

Hat aber nicht geholfen.
Geht immer noch nach 2 min aus.

Florian

Re: mplayer stoppt nach 2m

Verfasst: Donnerstag 7. Januar 2016, 21:29
von wasserflo
Nach deinem Tipp sieht das ganze Testprg jetzt so aus:

Code: Alles auswählen

#!/usr/bin/env python

import subprocess
import time
import os

with open(os.devnull) as nul:
    p = subprocess.Popen(["mplayer", "r1.mp3"], stdin=subprocess.PIPE, stdout=nul, stderr=nul)

while 1:
    time.sleep(1)



Damit klappt es dann auch.

Vielen Dank
Florian

Re: mplayer stoppt nach 2m

Verfasst: Freitag 8. Januar 2016, 00:00
von cofi
AFAIR schreibst mplayer vor allem auf STDERR, also solltest du auch das umleiten.
Daneben: Bitte benutze eine Codebox um Code zu schreiben. Listbox "Code auswählen" und nach python suchen. Sonst ist der ganze Code wertlos.

Re: mplayer stoppt nach 2m

Verfasst: Freitag 8. Januar 2016, 11:42
von Dav1d
Interessant, dass dein Code funktioniert, du öffnest `devnull` nämlich nicht zum schreiben (`wb`).
Ansonsten gibt es auch Mplayer flags die den Output reduizeren bzw. komplett unterdrücken `-msglevel` und `-quiet`.