【发布时间】:2013-02-02 10:39:54
【问题描述】:
我一直在尝试在命令行中围绕 ffmpeg 的 "concat:file1|file2" 参数传递一个仅使用文字双引号的命令。
但是,我无法使用 subprocess.Popen() 在 python 中完成这项工作。任何人都知道如何将引号传递给 subprocess.Popen?
代码如下:
command = "ffmpeg -i "concat:1.ts|2.ts" -vcodec copy -acodec copy temp.mp4"
output,error = subprocess.Popen(command, universal_newlines=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE).communicate()
当我这样做时,ffmpeg 除了在 concat 段周围加上引号外,不会采取任何其他方式。有没有办法成功地将这一行传递给 subprocess.Popen 命令?
【问题讨论】:
-
不只是在你的命令周围使用“单引号”吗?如果您在终端上完全按照您所写的方式输入命令,那么处理这些引号的将是 shell,而不是 ffmpeg!
-
那是真的代码吗?当我在 Python 终端中输入
command = "ffmpeg -i "concat:1.ts|2.ts" -vcodec copy -acodec copy temp.mp4"时,我得到SyntaxError: invalid syntax...为什么,有趣...似乎子进程即使没有调用它也会做坏事... -
您的 Python 代码有一个简单的语法错误,您可以使用如下的单引号进行纠正:
command = 'ffmpeg -i "concat:1.ts|2.ts" -vcode copy -acodec copy temp.mp4'
标签: python subprocess