在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道,直到以后。