在node.js中产生的进程立即退出
我正在尝试在node.js中产生一个avconv进程。 它应该接收stdin
数据并将转换后的数据输出到stdout
当命令在shell中工作时,它会立即在node.js中closures,我不知道为什么:
avconv -v quiet -i pipe:0 -vn -f s16le -acodec pcm_s16le pipe:1
这只是工作,并在节点:
var a = spawn('avconv', ['-v quiet -i pipe:0 -vn -f s16le -acodec pcm_s16le pipe:1']); a.on('exit', function(code) { pr(code, true); })
我立即得到一个'1'退出代码。 谁能告诉我这里有什么问题?
你需要自己分开参数数组:
var a = spawn('avconv', ['-v', 'quiet', '-i', 'pipe:0', '-vn', '-f', 's16le', '-acodec', 'pcm_s16le', 'pipe:1']);
您从命令行工作中习惯的空间分隔由shell(bash,zsh …)提供。 shell将您的命令分解为使用空格的参数,并让您通过添加引号来说“我希望将其作为单个参数”。