Ich lese erfolgreich m3u8 und TS-Dateien extrahieren und m3u8 lesen und prüfen, ob neuer Indizes geschrieben werden (ts-Dateien) und dann mitKnoten JS Chunk-Dateien als eine Datei ohne Interrupt lesen?
res.write(chunk);
i-Stream ohne interrupting..it erhalten wird, um Dateien, um zu lesen, dass wurde in m3u8 Datei definiert und alles funktioniert einwandfrei ... aber ich habe ein großes Problem ... mit res.write ich bin, dass meine Chunk ts Dateien von HDD zu RAM gelesen werden und RAM-Auslastung wird jede Sekunde um 1MB so erhöht In ungefähr einer Stunde werde ich in den Speicher kommen ... also ist die Frage, wie kann ich vorher gelesene ts Dateien aus dem RAM löschen, so dass die Speichernutzung immer gleich bleibt?
Ich sehe, dass res.write schreibt in den Speicher, aber löscht nicht alte Daten aus dem Speicher .. und auf diese Weise ist nicht praktikabel und wird aus dem Speicher Fehler.Kann ich für res.write Puffergröße so verwenden, wenn Puffer Größe wird voll automatisch aus dem Speicher gelöscht und nächste Chunk-Daten zum RAM lesen? Hier
ist der Code:
fs.readFile('/tmp/files/'+ts[ts.length-2], function (err, data) {
res.write(data);
/* HERE I NEED TO CLEAR DATA BUFFER CHUNK FROM MEMORY */
});
So las ich 1000 Dateien in Schleife (kleine Stücke) und schreiben Sie es auf Antwort auf Client ... dies ohne Unterbrechung hervorragende funktioniert ... aber die Speichernutzung ist Datei Größe gelesen auf HDD so RAM-Nutzung wächst ... Wie kann ich Daten aus dem Speicher löschen, nachdem sie an den Client gesendet werden?
'combined-stream' könnte hier helfen: https://www.npmjs.com/package/combined-stream – TMG
danke ... aber das ist nicht, was ich brauche ... ich habe ffmpeg, das macht m3u8 Datei mit indizierten innerhalb (1_0.ts, 1_1.ts ...) und ist im laufenden Betrieb erfrischend ... ich lese m3u Datei und Holen Sie sich diese Indizes out..so ich muss stremam Datei ohne unterbrechung ... siehe apple hls streaming ... – user2631534
Wie ist 'combined-Stream' erfüllt nicht Ihre Anforderungen? – jcaron