FFMPEG在image2pipe模式下等待图像

我正在创build一个Node JS应用程序,它需要一个m-jpeg图像stream,并在运行中构build一个MPEG-1stream。 目前我正在利用fluent-ffmpeg。 蒸汽意欲是连续和长寿的。 图像以恒定的帧率自由stream动。

不幸的是,使用image2pipe和input-vcodec mjpeg ,似乎ffmpeg需要等待,直到所有的图像准备好,然后再开始处理。

当图像到达时,是否有任何方法可以立即将ffmpegpipe道插入并排出?

这是我目前的节点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/ 

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

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

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

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