node.js中的spawned进程立即退出

时间:2014-05-08 11:32:19

标签: node.js spawn avconv

我正在尝试在node.js中生成一个avconv进程。 它应该在stdin上接收数据并将转换后的数据输出到stdout

虽然命令在shell中有效,但它会立即在node.js中关闭,我不知道原因:

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'退出代码。 谁能告诉我这里出了什么问题?

1 个答案:

答案 0 :(得分:3)

您需要自己分离参数数组:

var a = spawn('avconv', ['-v', 'quiet', '-i', 'pipe:0', '-vn', '-f', 's16le', '-acodec', 'pcm_s16le', 'pipe:1']);

您从命令行工作中习惯的空间分隔由shell提供(bash,zsh ...)。 shell使用空格将你的命令分解为参数,让你说"我想把它作为一个参数"加上引号。