當我從Win7中的python使用ffmpeg從movie.avi生成動畫gif時,出現問題。 如果我打開一個cmd窗口,執行這條線:Python:與ffmpeg生成.gif的罕見問題
"C:\ffmpeg\ffmpeg.exe" -i "C:\ffmpeg\video.avi" -pix_fmt rgb24 -r 10.0 -loop_output 0 -ss 5 -t 10 -s 352x288 -f gif "C:\ffmpeg\video.gif"
ffmpeg.exe從視頻完美生成GIF。我想用ffmpeg.exe從我的代碼的Python爲做相同的,但,當我從我的Python程序執行此代碼:
argList = ["-i", "C:\\ffmpeg\\video.avi", "-pix_fmt", "rgb24", "-r", "10.0", "-loop_output", "0", "-ss", "5", "-t", "10", "-s", "352x288", "-f", "gif", "C:\\ffmpeg\\video.gif"]
os.spawnv(os.P_DETACH, "C:\\ffmpeg\\ffmpeg.exe", argList)
東西真是難得happends:我video.avi失去其所有的大小,現在是一個0字節的空白文件,而movie.gif也是一個0字節的空白文件,所以,在cmd窗口中的相同代碼工作正常,並進入我的python程序modifiques我的movie.avi文件並擦除其所有內容(但文件movie.avi不dessapear,該文件仍然存在,但現在是一個空白文件)並生成一個空白的movie.gif文件。有人知道爲什麼發生這種情況?提前致謝。
非常感謝!問題在那裏,現在工作正常。但我嘗試argList沒有「C:\\ ffmpeg \\ ffmpeg.exe」,因爲工作正常,生成一個簡單的縮略圖。 – GerarLM 2010-10-03 23:28:22
+1。另外考慮使用'subprocess',而不需要這種重複。 – bobince 2010-10-03 23:34:26
使用子進程的正確語法是什麼?我嘗試使用子進程,但對我來說這是不可能的! – GerarLM 2010-10-03 23:42:54