ブラウザからユーザーのオーディオ入力をキャプチャしようとしています。私は WAV でそれをやったが、ファイルは本当に大きいです。私の友人は、OGG ファイルの方がはるかに小さいと教えてくれました。WAVをOGGに変換する方法を知っている人はいますか? 私は生データバッファも持っています。実際に変換する必要はありません。しかし、OGG エンコーダーが必要なだけです。
Matt Diamond の RecorderJSの WAV エンコーダーは次のとおりです。
function encodeWAV(samples){
var buffer = new ArrayBuffer(44 + samples.length * 2);
var view = new DataView(buffer);
/* RIFF identifier */
writeString(view, 0, 'RIFF');
/* file length */
view.setUint32(4, 32 + samples.length * 2, true);
/* RIFF type */
writeString(view, 8, 'WAVE');
/* format chunk identifier */
writeString(view, 12, 'fmt ');
/* format chunk length */
view.setUint32(16, 16, true);
/* sample format (raw) */
view.setUint16(20, 1, true);
/* channel count */
view.setUint16(22, 2, true);
/* sample rate */
view.setUint32(24, sampleRate, true);
/* byte rate (sample rate * block align) */
view.setUint32(28, sampleRate * 4, true);
/* block align (channel count * bytes per sample) */
view.setUint16(32, 4, true);
/* bits per sample */
view.setUint16(34, 16, true);
/* data chunk identifier */
writeString(view, 36, 'data');
/* data chunk length */
view.setUint32(40, samples.length * 2, true);
floatTo16BitPCM(view, 44, samples);
return view;
}
OGG用のものはありますか?