私は、ブラウザからオーディオ入力を受け取り、それを複数のリスナーにストリーミングしようとしています。意図された使用は音楽のためのものなので、品質はmp3規格またはその近くでなければならない。HTML5&Web audio api:ブラウザからサーバーへのマイクデータのストリーミング。理想的なトランスポートとデータ圧縮
私は二つの方法、両方失敗した結果をもたらす試みた:直接ブラウザ間のオーディオストリーミングが正常に動作しますが、オーディオ品質は私が持っているものもののカスタマイズできないように思わ
- を
のWebRTC
を見た。 (私はOpusオーディオコーデックを使用しているのを見たことがありますが、コントロールを公開していないようです)。 - 誰もWebRTCストリームのオーディオ品質を向上させる方法についての洞察はありますか?
WebSocketを
問題は、サーバーへのブラウザからの輸送です。以下の方法で取得できるPCMオーディオデータは、大きすぎると判明し、ウェブソケット経由でサーバーに繰り返しストリームすることができませんでした。このストリームは高速インターネット環境では完全に機能しますが、低速のWi-Fiでは使用できません。
var context = new webkitAudioContext() navigator.webkitGetUserMedia({audio:true}, gotStream) function gotStream (stream) { var source = context.createMediaStreamSource(stream) var proc = context.createScriptProcessor(2048, 2, 2) source.connect(proc) proc.connect(context.destination) proc.onaudioprocess = function(event) { var audio_data = event.inputBuffer.getChannelData(0)|| new Float32Array(2048) console.log(audio_data) // send audio_data to server } }
だから、メインの質問は、それが簡単にサーバーにストリーミングできるようにするためにPCMデータを圧縮する方法はありますか?あるいは、これについてもっと簡単な方法がありますか?
lyadAssaf:websocketでオーディオをストリーミングするサンプルコードはありますか?はいの場合は、sample.thnxを提供することができます。 – Pradeep