Hallo *,
es ist mal wieder zum verzweifeln.
Hintergrund: Ich habe ein kleines Pythonscript, was die Audiokonvertierung von Videofiles nach MP3 parallelisiert. Das klappt soweit auch wunderbar. Jetzt wollte ich allerdings eine kleine Prüfung einbauen, wo die Abspiellänge von Quelldatei und Zieldatei verglichen wird um bei Abweichungen ein Fehlermeldung auszugeben.
Die Abspielzeit einer Mediendatei bekommt man wunderbar über MediaInfo mit diesem Aufruf:
1 | mediainfo --Inform="Audio;%Duration%" <mediafile> |
Verpacke ich das Ganze aber in eine Pythonfunktion und rufe das Kommando aus einem Pythonscript raus auf (os.popen, os.system, subprocess.popen, usw), dann kriege ich es in keinster Weise hin das "Standardout" von MediaInfo zu capturen und weiterzuverarbeiten. Das Umlenken von StdOut in der Commandline produziert leere Dateien und die Nutzung der Textausgabe von MediaInfo klappt ebenso nicht.
Ich habe auch schon mit verschiedenen Varianten im Script versucht das Mediainfo Kommando zu "quoten" um zu verhindern, dass irgendwelche Sonderzeichen beim Aufruf in der Shell gecastet werden, aber nix bringt Besserung. Es ist zum Mäusemelken....hat einer von euch schonmal etwas Ähnliches automatisiert ?
Ich bin schon kurz davor die Aufrufe jeweils von Python raus in eine Shelldatei zu verpacken und dann aufzurufen, aber kann doch nicht des Pudels Kern sein, oder ?
Danke & Gruß, Holger