从subprocess.run调用ffmpeg并引用特定目录

时间:2018-12-26 16:15:35

标签: python ffmpeg

我正在尝试将给定目录D中包含的图像从python脚本编译成mp4视频。我决定使用ffmpeg,因此通过 subprocess.run()

当我从D以外的其他目录发出以下命令时:

ffmpeg -framerate 30 -pattern_type glob -i 'path/to/D/*.jpg' -vcodec libx264 -y movie.mp4

它工作正常。

当我使用shell=True选项从python脚本发出命令时,会发生同样的事情:

subprocess.run(" ".join(["ffmpeg", "-framerate", "30", "-pattern_type", "glob", "-i", "'path/to/D/*.jpg'", "-vcodec", "libx264", "-y", "movie.mp4"]), shell=True)

但是我知道不建议依赖shell=True。我尝试使用不带该选项的subprocess.run

subprocess.run(["ffmpeg", "-framerate", "30", "-pattern_type", "glob", "-i", "'path/to/D/*.jpg'", "-vcodec", "libx264", "-y", "movie.mp4"])

但是它导致了以下错误:

'path/to/D/*.jpg': No such file or directory.


为什么通过subprocess.run选项通过shell=False调用ffmpeg失败?

0 个答案:

没有答案