当我在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文件。有人知道为什么会这样吗?提前谢谢。
答案 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"
的情况下工作正常,我的困惑来自于此。非常感谢。