在node.js / express中缓冲一个stream到res的stream

我有一个命令,我正在通过ffmpeg进行videostream传输,基本上是将响应内容传递给express中的res

例如:

 var args = ['-re','-i','/video.mkv','-loglevel','quiet','-r',24,'-threads',7,'-b:v','512k','-b:a','96k','-c:v','libx264','-c:a','libfdk_aac','-ar',22050,'-f','flv','pipe:1'] , command = spawn('ffmpeg', args); command.stdout.pipe(res); 

我想要做的就是在输出传送到res之前“缓冲”这个数秒。 我试着创build一个new stream.Writeable() ,它采用了stdout ,然后使用setTimeout 3秒,但这似乎并没有工作。

有什么build议么?

谢谢!

只要你是节点>=0.10你可以做

 var args = ['-re','-i','/video.mkv','-loglevel','quiet','-r',24,'-threads',7,'-b:v','512k','-b:a','96k','-c:v','libx264','-c:a','libfdk_aac','-ar',22050,'-f','flv','pipe:1'] , command = spawn('ffmpeg', args); setTimeout(function(){ command.stdout.pipe(res); }, 3000); 

在默认情况下,stream缓冲区,所以你只是等待pipe道,直到以后。