2017-12-01 36 views
0

私の目的は、Icecastサーバーからのラジオストリームを録音することです。NodeJSを使用してオーディオストリームをwavファイルとして保存する方法

icecastノードモジュールを使用してラジオストリームを取得し、wavモジュールを介してストリームをパイプしてウェーブファイルを書き込んでいます。ここで

は、私のコードの例です:

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); 

ストリームは期待と私はVLCでファイルを聞くことができていますようsuccessully私のディスクに記録されますが、wavファイル自体はしていないようです正しく形成される。

ファイルを編集するために別のツールを使用しようとすると、そのたびにエラーが表示されます。 たとえば、オーディオの速度をthis siteに変更しようとしていて、ファイルを認識できません。

また、私はソックスのCLIを使用してファイル情報を表示しようとした場合、それが表示されます。

ソックスの形式をFAIL:オープン入力ファイル `recording.wav 'をすることはできません。申し訳ありませんが、.WAVを理解していませんサイズ

私はディスクにwavファイルを書き込むプロセスで足りないことを誰かが知っていますか?

答えて

1

ストリームURLに基​​づいて、ストリームはAAC形式であり、そのデータをWAVファイルに直接書き込むため、WAVヘッダーがAACオーディオデータのファイルになります。

ストリームをディスクにAACとして書き込んだ後、ファイルを変換するか、ストリームをオンザフライでトランスコードしてディスクに書き込む必要があります。

関連する問題