我正在使用Python plugin for XBMC (xbmc.org),我想在我的插件中执行一个程序(ffmpeg.exe),而不会出现cmd窗口。如果我使用os.system()来调用ffmpeg.exe,则可以正常工作,但xbmc会最小化,因为os.system会在几秒钟内打开一个命令窗口。因此,我尝试使用os.spawnv(),我认为这可能允许我在不出现命令窗口的情况下调用ffmpeg.exe。问题是我知道如何使用os.system,但我不知道如何使用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,因为我不能从我的插件导入模块没有安装到de S.O.和我的插件必须是便携的,我可以使用PIL,但只能制作图片的缩略图,我需要制作视频的缩略图。我知道python中的一些模块允许我在没有命令窗口的情况下调用进程,但依赖于其他模块,如win32api,我无法导入这些模块,原因与我无法使用/导入pyffmpeg...所以我试着用这个方法“坏方法”,用os.system工作,但我失去了我的插件窗口的控制。如果有人知道用python制作视频缩略图的其他方法,请告诉我。另一个问题是我的插件必须是多平台的(至少是Win和Linux ),所以这种方式不够好,但对我来说可能是一个很大的进步。
非常感谢。
发布于 2010-09-27 04:28:26
根据http://docs.python.org/library/os.html#os.spawnv,在列表中传递参数:
os.spawnv(os.P_DETACH, "path\to\program.exe", ["arg1", "arg2", "arg3"])发布于 2010-09-27 06:44:06
这样:
os.system(""C:\\Program Files (x86)\\XBMC\\scripts\\Base De Datos\\ffmpeg.exe" -y -ss 423 -i "C:\Program Files (x86)\XBMC\scripts\Base De Datos\Movie.avi" -f mjpeg -vframes 1 -s 720x320 -an "C:/Program Files (x86)/XBMC/scripts/Base De Datos/thumbnail.jpg"")工作良好,但最小化xbmc,因为弹出一个命令窗口,所以我试图做同样的使用os.spawnv,但给我一个错误。
https://stackoverflow.com/questions/3799531
复制相似问题