我尝试在一个子目录中加载图像,文件名为:
运行代码时:
print os.path.exists('.\\images\\image0.png')
cmd = "ffmpeg -f image2 -r 20 -i .\\images\\image%01d.png -c:v libx264 -r 20 .\\images\\output.mp4"
os.system(cmd)
其结果是:
^{pr2}$我甚至检查过:
os.getcwd()
是正确的道路。在
有人能解释一下我的问题吗? 我很确定我的ffmpeg命令是正确的(它在过去对我有效)。我想知道是不是有什么原因导致ffmpeg无法识别我当前的工作目录?(不会因此而走上相对的道路吗?)在
谢谢!我们将非常感谢您的建议。在
问题是,您已经设置了系统,以便每个新的
cmd.exe
shell都立即cd到您的Documents目录,所以ffmpeg
正试图在那里运行。在显而易见的方法是只给出
^{1}$ffmpeg
绝对路径,而不是相对路径:或者,您可以始终将
^{pr2}$cd
命令粘贴到发送给system
函数的内容中:但是,最好的解决方案是完全停止使用
system
,正如system
的文档所建议的那样,并将shell排除在外:(总有人会在评论中建议,除非
shell=True
,否则不能使用带有subprocess
的字符串。在Unix上是这样,但在Windows上不行。事实上,在Windows上,如果传递一个参数列表,subprocess
将把它们连接成一个字符串传递给CreateProcess
。如果您不知道如何在Windows中正确地转义参数,列表仍然是一个好主意,但是如果您有一个非常好的命令行,就使用它。)相关问题 更多 >
编程相关推荐