J'essaye d'écrire un GUI pour FFMPEG
. J'utilise le sous-processus pythons pour créer un processus ffmpeg pour chaque conversion que je veux. Cela fonctionne très bien, mais je voudrais aussi comme un moyen d'obtenir les progrès de la conversion, si elle a échoué ou non, etc. Je me suis dit que je pouvais le faire en accédant à stdout du processus comme ceci:Sous-processus FFMPEG et Pythons
Appel subprocess.Popen()
# Convert - Calls FFMPEG with current settings. (in a seperate
# thread.)
def convert(self):
# Check if options are valid
if self.input == "" or self.output == "":
return False
# Make the command string
ffmpegString = self.makeString()
# Try to open with these settings
try:
self.ffmpeg = subprocess.Popen(ffmpegString, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
except OSError:
self.error.append("OSError: ")
except ValueError:
self.error.append("ValueError: Couldn't call FFMPEG with these parameters")
# Convert process should be running now.
Et la lecture stdout
:
convert = Convert()
convert.input = "test.ogv"
convert.output = "test.mp4"
convert.output_size = (0, 0)
convert.convert()
while 1:
print convert.ffmpeg.stdout.readline()
Cela fonctionne, mais le statut de ffmpeg ne montre pas. Je suppose que cela a quelque chose à voir avec la façon dont ffmpeg le rafraîchit. Y a-t-il un moyen d'y accéder?
vos deux liens sont morts, s'il vous plaît les corriger – slhck