【发布时间】:2010-11-30 03:27:01
【问题描述】:
我正在尝试为FFMPEG 编写一个 gui。我正在使用 pythons 子进程为我想要的每个转换创建一个 ffmpeg 进程。这工作正常,但我也想要一种方法来获取转换的进度,无论它是否失败等等。我想我可以通过访问进程的标准输出来做到这一点,如下所示:
致电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.
阅读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()
这可行,但是 ffmpeg 的状态不显示。我假设它与 ffmpeg 刷新它的方式有关。有没有办法访问它?
【问题讨论】:
标签: python ffmpeg subprocess