Python:使用ffmpeg生成.gif的罕见问题

时间:2010-10-03 23:14:42

标签: python cmd thumbnails gif

当我在Win7中使用python中的ffmpeg从movie.avi生成动画gif时出现问题。 如果我打开一个cmd窗口并执行以下行:

"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。我想在python中使用我的代码中的ffmpeg.exe来做同样的事情但是,当我从我的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)

一些非常罕见的事情:我的video.avi丢失了它的所有大小,现在是一个0字节的空白文件,movie.gif是一个空白文件,也是0字节,cmd窗口中的相同代码工作正常我的python程序修改了我的movie.avi文件并删除了它的所有内容(但是文件movie.avi没有dessapear,文件仍然存在,但现在是一个空白文件)并生成一个空白的movie.gif文件。有人知道为什么会这样吗?提前谢谢。

2 个答案:

答案 0 :(得分:1)

您的spawnv arglist需要以"C:\\ffmpeg\\ffmpeg.exe"开头。试一试,看看它是怎么回事。

argList = ["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"]  
os.spawnv(os.P_DETACH, "C:\\ffmpeg\\ffmpeg.exe", argList)

答案 1 :(得分:0)

@JoshD

argList = ["-y", "-ss", "750", "-i", "C:\\ffmpeg\\video.avi", "-f", "mjpeg", "-vframes", "1", "-s", "1280x720", "-an", "C:\\ffmpeg\\thumbnail.jpg"]
os.spawnv(os.P_DETACH, "C:\\ffmpeg\\ffmpeg.exe", argList)

在spawnv开头没有"C:\\ffmpeg\\ffmpeg.exe"的情况下工作正常,我的困惑来自于此。非常感谢。