オーディオデータがデバイスにストリーミングされるプロジェクトに取り組んでいます。オーディオデータはオーパス経由でエンコードされ、一度に20 msのペイロードでストリーミングされます。パケット損失を完全に回避するために、ストリーミングはTCP経由で行われます。ストリーミングの目的は、オーディオの損失やジッターを発生させずに、ライブオーディオストリーミングにできる限り近づけることです。
現在、遅いインターネット接続で何が起こるか、オーディオが少しジッターすることがあります。私は現在バッファを使用していませんが、目標はできるだけ「ライブストリーミング」に近づけることができると同時にジッターを排除することです。
私はジッターバッファーを調べましたが、ジッターバッファーも両端で遅延を処理して、両端が可能な限り同期するようになっているようです。静的なバッファサイズを作成した場合、必要がなければ、ライブストリーミングの側面からそれを取り除くことになると思います。
だから、これはいくつかの質問を私に残します、それらはすべて何らかの形で関連しています。
- バッファー長を検出するための適切な方法またはアルゴリズムは何ですか?
- 受信側のデコーダーにデータを送り始めるための最良の方法は何ですか?バッファが一定のミリ秒に達すると、20ミリ秒のペイロードでデータの供給を開始しますか?
- バッファーがいっぱいになった場合、再生を遅らせますか?
- バッファはバイトまたは時間の長さになりますか?
本当にありがとう!