我有一个wx python应用程序,它将任何视频文件作为输入,并将每个音频轨道导出为单独的wav文件,同时在状态栏中提供实时输出信息。我使用pexpect在OSX上完美运行,但是无法在Windows上运行,我没有成功尝试过wexpect。我使用下面的代码,作为Windows上的一个例子,这当前给了我输出,但是当它到达我感兴趣的位时暂停,文件导出进度,然后我在导出完成后再次输出。有人有什么建议吗?
command = 'ffmpeg\ffmpeg.exe -i "E:\source.mov" -map 0:1 -acodec pcm_s24le -y "E:\source_01.wav" -map 0:2 -acodec pcm_s24le -y "E:\source_02.wav" -map 0:3 -acodec pcm_s24le -y "E:\source_03.wav" -map 0:4 -acodec pcm_s24le -y "E:\source_04.wav" -map 0:5 -acodec pcm_s24le -y "E:\source_05.wav" -map 0:6 -acodec pcm_s24le -y "E:\source_06.wav" -map 0:7 -acodec pcm_s24le -y "E:\source_07.wav" -map 0:8 -acodec pcm_s24le -y "E:\source_08.wav"'
startupinfo = subprocess.STARTUPINFO()
startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
p = Popen(command, startupinfo=startupinfo, shell=False, stdout=PIPE, stderr=PIPE, stdin=PIPE)
while True:
line = p.stderr.readline()
if line == '':
break
print line
self.SetStatusText(line)