FFMPEG在image2pipe模式下等待图像

时间:2014-06-03 23:38:54

标签: node.js ffmpeg

我正在创建一个Node JS应用程序,该应用程序采用m-jpeg图像流,并动态构建MPEG-1流。我现在正在利用流利的ffmpeg。蒸汽旨在连续且长寿命。图像以恒定的帧速率自由流动。

不幸的是,使用image2pipe并输入-vcodec mjpeg,似乎ffmpeg需要等到处理开始前所有图像都准备就绪。

当图像到达时,有没有办法让ffmpeg管道输入并立即输出?

这是我目前的Node JS代码:

var proc = new ffmpeg({ source: 'http://localhost:8082/', logger: winston, timeout: 0 })
  .fromFormat('image2pipe')
  .addInputOption('-vcodec', 'mjpeg')
  .toFormat('mpeg1video')
  .withVideoBitrate('800k')
  .withFps(24)
  .writeToStream(outStream);

它生成的ffmpeg调用:

ffmpeg -f image2pipe -vcodec mjpeg -i - -f mpeg1video -b:v 800k -r 24 -y http://127.0.0.1:8082/

1 个答案:

答案 0 :(得分:0)

要获得直播,请尝试切换image2pipe rawvideo

.fromFormat('rawvideo')
.addInputOption('-pixel_format', 'argb')
.addInputOption('-video_size', STREAM_WIDTH + 'x' + STREAM_HEIGHT)

这将立即以非常低的延迟对视频进行编码。

您可以删除.fromFormat('image2pipe').addInputOption('-vcodec', 'mjpeg')