从ffmpeg导出python中的实时进度输出

时间:2014-09-22 20:57:25

标签: python windows ffmpeg popen

我有一个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)

0 个答案:

没有答案