Estoy intentando escribir una interfaz gráfica de usuario para FFMPEG
. Estoy usando el subproceso de pitones para crear un proceso ffmpeg para cada conversión que deseo. Esto funciona bien, pero también me gustaría una manera de conseguir el progreso de la conversión, si no lo hizo o no, etc. pensé que podría hacerlo accediendo a la salida estándar del proceso de esta manera:Subproceso FFMPEG y Python
Calling 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.
Y leyendo 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()
Esto funciona, pero, estado de ffmpeg no muestra. Supongo que tiene algo que ver con la forma en que ffmpeg lo actualiza. ¿Hay alguna forma de acceder a ella?
Ambos enlaces están muertos, por favor, corríjalos. – slhck