私はリアルタイムのビデオ変換デモアプリに取り組んでいます。ビデオ ファイルはnode-multiparty
、ファイルのpart is piped
toavconv.stdin
で解析され、処理されるとchunk pipes
toで解析されますwrite stream
。
ソースコードの一部を次に示します。
var form = new multiparty.Form(),
args = ['-i', 'pipe:0', '-f', 'webm', 'pipe:1'],
avconv = spawn('avconv', args),
output = fs.createWriteStream(filePath);
form.on('part', function (part) {
if (part.filename) {
part.pipe(avconv.stdin);
part.on('end', function() {
console.log('===== Video has been uploaded! =====');
avconv.stdin.end();
});
}
});
avconv.stdout.pipe(output);
end
ファイルの に添付されたイベントに興味がありますpart
。通常、パーツが解析されたときにイベントが発生する必要があります。これは、パーツがアップロードされたことを意味します。
テスト ビデオ ファイル (~800KB) と、テスト用の低レベルのラップトップがあります。localhost でテストを実行しているときに、変換プロセスend
の最後にイベントが発生します。これは ~15 秒間続きます。avconv
800KB のビデオ ファイルがアップロードされましたが、part
ストリームはまだ空ではなく、データが によって処理されるのを待っているようですavconv
。
私は正しいですか、それとも別のことがありますか?