2011-12-19 51 views
3

我发现了很多关于如何在节点中将数据从读流中传输到写流的信息。最新版本甚至会自动暂停,并为您恢复。但是,我有不同的需求,希望得到一些帮助。Node.js - 可读流如何对正在写入的文件做出反应?

我正在使用ffmpeg(对本地文件,而不是可写入的流)编写视频文件,并且我想创建一个读取数据的读取流,因为它会被写入。显然,读取流的速度将超过ffmpeg编码文件的速度。当读取流在ffmpeg完成写入文件之前达到数据末尾时会发生什么?我假设它会在文件完全编码之前停止读取流。

任何人有任何建议暂停/恢复读取流的最佳方式,以便它不会达到本地编码文件的末尾,直到编码完成100%?

总结:

这就是人们常做的事:readStream - > writeStream(使用.pipe)

这就是我想做的事:本地文件(在缓慢的创建过程) - > readStream

一如既往,感谢stackoverflow社区。

+0

注意:如果使它更容易,我可以使用ffmpeg编码为流。有没有办法做一个反向.pipe?像,writeStream - > readStream?不幸的是,writeStreams没有'数据'监听器。 – agentOOjoe 2011-12-19 20:01:51

+0

查看[Stream.pipe的''选项]](http://nodejs.org/docs/latest/api/streams.html#stream.pipe)。它允许你传递一个标志('{end:false}')来保持目标流打开。这可能是你应该考虑的第一件事。 – 2011-12-19 20:43:15

+0

感谢Dominic。然而,这个选项保持目标writeStream处于打开状态,在我的情况下,对于readStream,我需要'end:false'。不幸的是,对于我来说,我需要类似反向stream.pipe ...如果这是有道理的。 – agentOOjoe 2011-12-19 23:39:04

回答

6

growing-file模块是你想要的。

+0

DeaDEnD再次袭击!该模块正是我正在寻找的。我会尽快实施它,并会在稍后回复。谢谢! – agentOOjoe 2011-12-20 00:14:29

相关问题