私は、ノードの読み込みストリームから書き込みストリームにデータをポンピングまたはパイプする方法に関する多くの情報を見つけました。最新バージョンは自動停止し、あなたのために再開します。しかし、私は必要性が異なり、助けてもらいたいと思います。Node.js - 読み込み可能なストリームは、まだ書き込まれているファイルにどのように反応しますか?
私はffmpeg(書き込み可能なストリームではなくローカルファイル)を使ってビデオファイルを書いています。書き込まれるとデータを読み取るreadstreamを作成したいと思います。明らかに、読み込まれたストリームの速度は、ffmpegがファイルをどのくらい早くエンコードするかを上回ります。 ffmpegがファイルの書き込みを終了する前に、読み込みストリームがデータの終わりに達したらどうなりますか?ファイルが完全にエンコードされる前に、読み込みストリームを停止すると仮定します。
読み取りストリームを一時停止/再開し、エンコードが100%完了するまでローカルのエンコードファイルの最後に到達しないようにするには、要約すると
:
これは、人々は通常、何をすべきかです:readStream - > writeStream(.pipeを使用して)
これは私が何をしたいです。(遅い作成プロセスでの)ローカルファイル - > readStream
いつものように、stackOverflowコミュニティに感謝します。
注:ストリームをエンコードするためにffmpegを使用することができます。逆の.pipeを行う方法はありますか?同様に、writeStream - > readStream?残念ながら、writeStreamsは 'データ'リスナーを持っていません。 – agentOOjoe
'' Stream.pipe'の '' options'(http://nodejs.org/docs/latest/api/streams.html#stream.pipe)を見てください。これはフラグを渡して( '{end:false}')、宛先ストリームをオープンに保つことができます。これはあなたが調べなければならない最初のものかもしれません。 –
ありがとうDominic。しかし、このオプションは、宛先writeStreamを開いたままにします。私の状況では、readStreamに対して 'end:false'が必要です。残念ながら私のために、私は逆のストリームのようなものが必要です。パイプ...もしそれが意味をなさないならば。 – agentOOjoe