저는 ffmpeg를 통해 비디오를 사용자 정의 변환하는 python 스크립트에서 작업하고 있습니다.변환을 끝내지 않고 ffmpeg를 끝내기 전에 pexpect.run()이 종료됩니다.
내 문제는 ffmpeg의 실행이 None 종료 코드로 약간의 변환 (일반적으로 100MB에서 3-4MB) 후에 갑자기 멈추는 것입니다.
나는 pexpect 라이브러리를 사용하고 있습니다. 현재 진행 상황을 확인하지는 않지만 가까운 장래에 진행할 것입니다. 나는이 질문들에 대해 pexpect를 사용하는 것이 맞을 것 같다. FFMPEG and Pythons subprocess과 Getting realtime output from ffmpeg to be used in progress bar (PyQt4, stdout). 이것은 내가 좋은를 사용하고 (내가이 하나가 정확히 것을 확인했다)
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