Mein Ziel ist es, einen Radio-Stream von einem Icecast-Server aufzunehmen.So speichern Sie einen Audio-Stream als WAV-Datei mit NodeJS
Ich verwende das Knotenmodul icecast, um den Radiostream abzurufen und dann die Wave-Datei zu schreiben, indem der Stream durch das wav-Modul geleitet wird. Hier
ist ein Beispiel für meinen Code:
const icecast = require('icecast');
const url = 'http://87.118.104.139/radiogibsonaac';
var wav = require('wav');
let ice, fileWriter;
ice = icecast.get(url, res => {
fileWriter = new wav.FileWriter(__dirname+'/recording.wav', {
channels: 1,
sampleRate: 16000,
bitDepth: 128
});
res.pipe(fileWriter);
});
setTimeout(()=>{
fileWriter.end();
ice.end();
},5000);
Der Strom successully auf meine Festplatte aufgezeichnet wird, wie erwartet, und ich bin in der Lage auf die Datei in VLC zu hören, aber die WAV-Datei selbst scheint nicht zu richtig gebildet sein.
Wenn ich versuche, ein anderes Tool zum Bearbeiten der Datei zu verwenden, wird jedes Mal ein Fehler angezeigt. Zum Beispiel versuche ich, die Geschwindigkeit des Audios auf this site zu ändern, und es erkennt die Datei nicht.
Auch wenn ich versuche, die Datei-Info mit dem Sox CLI anzuzeigen es zeigt:
SOx FAIL-Formate: kann nicht geöffnet Eingabedatei `recording.wav ': Sorry, nicht verstehen, .wav Größe
Weiß jemand, wenn ich einen Schritt beim Schreiben der WAV-Datei auf die Festplatte vermisse?