2

node.js 内で avconv プロセスを生成しようとしています。データを受信しstdin、変換されたデータをに出力する必要がありますstdout

コマンドはシェルで機能しますが、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」の終了コードを取得します。ここで何が問題なのか誰か教えてもらえますか?

4

1 に答える 1

3

引数配列を自分で区切る必要があります。

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

コマンドライン作業で慣れているスペース区切りは、シェル (bash、zsh...) によって提供されます。シェルは、スペースを使用してコマンドを引数に分割し、引用符を追加して「これを単一の引数として使用したい」と言うことができます。

于 2014-05-08T12:23:37.423 に答える