【问题标题】:Buffer a stream piped to res in node.js/express在 node.js/express 中缓冲通过管道传输到 res 的流
【发布时间】:2015-07-23 16:30:16
【问题描述】:

我有一个通过 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);

我想做的是“缓冲”几秒钟,然后将输出通过管道传输到 res。我尝试创建一个new stream.Writeable(),它接收stdout,然后使用setTimeout 3 秒,但这似乎不起作用。

有什么建议吗?

谢谢!

【问题讨论】:

    标签: node.js ffmpeg streaming


    【解决方案1】:

    只要你是节点>=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);
    

    默认情况下流缓冲区,因此您只需等到稍后再通过管道传输。

    【讨论】:

      猜你喜欢
      • 2017-12-27
      • 2012-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-16
      • 2016-09-17
      相关资源
      最近更新 更多