【发布时间】:2014-07-01 19:09:09
【问题描述】:
我有一个 python 脚本,它通过子进程调用 ffmpeg 来执行一些 mp3 操作。它在前台运行良好,但如果我在后台运行它,它会到达 ffmpeg 命令,它本身可以将其配置转储到 stderr。此时,一切都停止了,并且父任务报告为已停止,而不会在任何地方引发异常。我已经尝试了一些其他简单的命令来代替 ffmpeg,它们在前台或后台正常执行。
这是问题的最小示例:
import subprocess
inf = "3HTOSD.mp3"
outf = "out.mp3"
args = [ "ffmpeg",
"-y",
"-i", inf,
"-ss", "0",
"-t", "20",
outf
]
print "About to do"
result = subprocess.call(args)
print "Done"
我真的无法弄清楚包装进程为什么或如何导致父进程终止而至少不会引发错误,以及它如何仅在如此利基的情况下发生。怎么回事?
另外,我知道 ffmpeg 不是最好的软件包,但我正在与使用 ffmpeg 编译到其中的东西进行交互,因此再次使用它似乎是明智的。
【问题讨论】:
标签: python ffmpeg subprocess