我在XBMC(xbmc.org)的Python插件中工作,我想從我的插件執行程序(ffmpeg.exe)而不顯示cmd窗口。 如果我使用os.system()來調用ffmpeg.exe工作正常,但xbmc會最小化,因爲os.system會在幾秒鐘內打開一個cmd窗口。 所以,我嘗試使用os.spawnv(),我認爲它可能允許我調用ffmpeg.exe沒有cmd窗口出現。 問題是我知道如何使用os.system,但我不知道如何使用os.spawnv。 我試着這一點,但不工作:Python:如何用很多參數使用os.spawnv?
os.spawnv(os.P_DETACH,'"C:\Program Files (x86)\XBMC\scripts\Base De Datos\ffmpeg.exe" -y -ss 30 -i "C:\Program Files (x86)\XBMC\scripts\Base De Datos\Movie.avi" -f mjpeg -vframes 1 -s 720x400 -an "C:\Program Files (x86)\XBMC\scripts\Base De Datos\thumbnail.jpg"')
"C:\Program Files (x86)\XBMC\scripts\Base De Datos\ffmpeg.exe" = The path of the ffmpeg.exe
-y -ss 30 -i = Arguments for ffmpeg.exe
"C:\Program Files (x86)\XBMC\scripts\Base De Datos\Movie.avi" = The path of the movie I want to use with ffmpeg.exe to make a thumbnail (argument for ffmpeg.exe)
-f mjpeg -vframes 1 -s 720x400 = More arguments for ffmpeg.exe
"C:\Program Files (x86)\XBMC\scripts\Base De Datos\thumbnail.jpg" = The path for save the thumbnail.
我嘗試了很多的方法,使一個縮略圖,但它似乎對我有非常複雜的XBMC插件,我不能使用pyffmpeg因爲我不能導入模塊從我的插件沒有安裝到德SO而且我的插件必須是便攜式的,我可以使用PIL,但只能製作圖片縮略圖,而且我需要製作視頻縮略圖。 我知道python中的一些模塊允許我調用進程沒有cmd窗口出現,但取決於其他模塊,如win32api,我不能導入出於同樣的原因我不能使用/導入pyffmpeg ...所以我試圖使用「壞道」使用這種方法,與os.system工程,但我鬆散控制我的插件窗口。 如果有人知道使用python製作視頻縮略圖的其他方式,請告訴我。 另一件事是我的插件必須是multiplataform(至少是Win和Linux),所以這種方式不夠好,但對我來說可能是一大步。
非常感謝。
你使用的是什麼版本的python?對於最近的版本,鼓勵的方法是使用'subprocess'模塊。 – llasram 2010-09-27 18:02:27