我发现了很多关于如何在Node中将数据从读取流传输或导出到写入流的信息。新版本甚至会自动暂停和恢复。然而,我的需求有所不同,我需要一些帮助。
我正在使用ffmpeg将视频文件写入本地文件(而不是可写流),并希望创建一个读取流,在文件写入时读取数据。显然,读取流的速度将超过ffmpeg编码文件的速度。当读取流在ffmpeg完成文件编码之前达到数据结尾时,会发生什么?我假设它会在文件完全编码之前停止读取流
有没有任何建议可以暂停/恢复读取流的最佳方法,以便它不会在编码100%完成之前到达本地编码文件的末尾?
总之:
这是人们通常做的事情:readStream --> writeStream(使用.pipe)
这是我的要求:本地文件(缓慢创建过程中)--> readStream
感谢 stackOverflow 社区的支持。
Stream.pipe
的选项。它允许您传递一个标志({ end: false }
)来保持目标流的打开状态。这可能是您应该首先了解的事情。 - Dominic BarnesffmpegEncodeWriteStream.pipe(throughStream).pipe(file)
。这样,您可以获得与从文件流式传输相同的所有数据,但是您不需要考虑文件创建实际完成的时间。 - Shawn