2015-01-20 5 views
1

윈도우 7 (파이썬 2.7)에서 ffmpeg 명령을 실행하려고하는데, 이는 Popenenv이 작동하지 않습니다.파이썬 Popen - env ​​- ffmpeg 크래시

ffreport = "level=48:file={}".format(self.logFilePath) + " && " 
startupinfo = subprocess.STARTUPINFO() 
startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW 
self.process1 = Popen(command, startupinfo=startupinfo, shell=False, env={'SET FFREPORT':ffreport}) 

이보고 창 결과 "는 FFmpeg 작동이 중지되었습니다"여기

SET FFREPORT=level=48:file=C\:\\temp\\TESTFFMPEGOUTPUT.txt && C:\Temp\ffmpeg\ffmpeg.exe -i “I:\somefolder\testInput.mov" "I:\somefolder\testOutput.mov" 

그리고 내 현재 파이썬 코드입니다 : 다음은 작업 명령 줄입니다. 수정 방법을 잘 모릅니다.

답변

0
command = r"C:\Temp\ffmpeg\ffmpeg.exe -i I:\somefolder\testInput.mov I:\somefolder\testOutput.mov" 

self.process1 = Popen(
     shlex.split(command), shell=False, 
     env=dict(FFREPORT="level=48:file=C\:\\temp\\TESTFFMPEGOUTPUT.txt")) 
+0

이것은 오류를 제공합니다 - WindowsError : [오류 2] 지정한 파일을 찾을 수 없습니다. 나는 여전히 Popen 명령을 그대로 사용하고 env를 고치는 방법을 찾고 싶다. – speedyrazor

+0

그게 ..'command = r "C : \ Temp' – agaust

+1

Windows'CreateProcess'는 명령 행 문자열을 사용하기 때문에'shlex.split (command)'로리스트를 만들지는 않습니다. (self.logFilePath);''self.process1 = Popen (''현재 환경 :''환경 변수''환경 변수''환경 변수''환경 변수' command, startupinfo = startupinfo, env = environ)'.defaults는'shell = False'입니다. – eryksun