我正在處理一個通過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