我正在处理一个通过ffmpeg自定义转换视频的python脚本。pexpect.run()在结束ffmpeg之前终止,无需完成转换
我的问题是ffmpeg的执行在一个无退出代码的位转换后(通常为100mb的3-4mb)突然停止。我正在使用pexpect库。目前我不检查进度,但我会在不久的将来。对于这些问题FFMPEG and Pythons subprocess和Getting realtime output from ffmpeg to be used in progress bar (PyQt4, stdout),似乎我是正确的使用pexpect。这是我跑(我已签,这也正是这一个)
nice ffmpeg -i '/full/path' -s 640x360 -strict experimental -vcodec libx264
-f mp4 - coder 0 -bf 0 -refs 1 -flags2 -wpred-dct8x8 -level 30 -crf 26
-bufsize 4000k -maxrate 350k -preset medium -acodec libvo_aacenc
-ar 48000.0 -ab 128K -threads 2 -y '/full/path/out'
我使用不错的命令,但我自己也尝试没有它,其结果最终是相同的。
我跑Pexpect的是这样的:
output, exit = pexpect.run(self.command(), withexitstatus=True,\
logfile=logfile)
print output
print exit
当然我也试过在命令行上相同的命令,它工作正常。
任何线索可能发生什么?
为什么选择pexpect?如果从子流程使用Popen会怎么样? – Albert
@albert我会试试它知道。我不太喜欢这个解决方案,因为在“下一次迭代”中,我应该使用pexpect来检查操作的进度。但我会尝试并在 – Davisein
中发布结果。我将一直工作到转换结束,但它似乎正在工作。但我仍然不太喜欢这个解决方案,我可能会在几周内面临同样的问题... – Davisein