在节点中缓冲通过管道传输到 res 的流。js/express
Buffer a stream piped to res in node.js/express
我有一个命令,我是 运行,用于通过 ffmpeg 进行视频流传输,它基本上将响应通过管道传输到 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);
我想做的是 "buffer" 这几秒钟,然后将输出通过管道传输到 res。我试过创建一个 new stream.Writeable()
,它接受 stdout
,然后使用 setTimeout
3 秒,但这似乎不起作用。
有什么建议吗?
谢谢!
只要你是node>=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);
默认情况下是流缓冲区,因此您只需等到稍后再通过管道传输它即可。
我有一个命令,我是 运行,用于通过 ffmpeg 进行视频流传输,它基本上将响应通过管道传输到 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);
我想做的是 "buffer" 这几秒钟,然后将输出通过管道传输到 res。我试过创建一个 new stream.Writeable()
,它接受 stdout
,然后使用 setTimeout
3 秒,但这似乎不起作用。
有什么建议吗?
谢谢!
只要你是node>=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);
默认情况下是流缓冲区,因此您只需等到稍后再通过管道传输它即可。