【发布时间】:2013-08-09 11:03:41
【问题描述】:
问题
我正在尝试将图像加载到具有以下文件的子目录中:
- .\images\image0.png
- .\images\image1.png
- .\images\image2.png
- .\images\image3.png
- ...等...
- .\images\image8.png
- .\images\image9.png
当我运行代码时:
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)
结果:
True
//blah blah blah ffmpeg start up stuff blah blah blah
[image2 @ 00000000026ceda0] Could find no file with with path '.\images\image%01
d.png' and index in the range 0-4
.\images\image%01d.png: No such file or directory
我什至检查过:
os.getcwd()
是正确的道路。
有人能解释一下我的问题吗? 我很确定我的 ffmpeg 命令是正确的(过去它对我有用)。我想知道 ffmpeg 是否有可能无法识别我当前的工作目录? (因此不会采用该相对路径?)
谢谢!建议/建议将不胜感激。
【问题讨论】:
-
如何在运行 Python 脚本的同一个 DOS 提示符会话中实际运行相同的 ffmpeg 命令并 100% 确定它可以工作,而不仅仅是“非常确定”?
-
您也可以通过调用
os.path.abspath('.\\images')并在您的cmd字符串中使用它代替'.\\images'来排除相对路径问题。 -
这就是我的意思。它只是在这种情况下不起作用。我会试试的。
-
另一种排除相对路径问题的方法是运行
echo %cd% && ffmpeg …而不仅仅是ffmpeg,这将使它打印出ffmpeg将看到的当前工作目录。 -
@abarnert 我的路径不正确 - 它不使用我的 cwd。它路由到我的文档文件夹。我认为这是因为我为命令提示符编辑了注册表以自动打开我的文档。显然,这会影响 os.system 调用命令的方式。无论如何,您是否知道如何将我的 cmd 设置为在特定目录中打开而不会产生这种影响? (顺便说一句。感谢您的帮助!如果您将此作为答案发布,我很乐意接受。)
标签: python windows file python-2.7 ffmpeg