Open3

WebRTC Audioの調査

fogfog

メモ

  • 基本的にはOfferを生成する前にMediaChannelの設定を済ませておくと良い

  • Offer作成後にAudio等を使う場合は、再交渉 (negotiation) が必要

  • 音声は Real-time Transport Protocol (RTP) の形式で送られる。
    これは、Opusの圧縮形式である。

  • RTPパケットには、音声のPayloadと、送信順序を保証するためのシーケンス番号とタイムスタンプがある。

  • Defaultの設定では、
    sample_rate = 48000
    channels = 2
    bit_depth = 2
    である。

fogfog

OpusのEncoding Decoding

Encoding

https://github.com/pion/opus

pion/opusはEncodingがない
https://github.com/pion/opus/issues/34

hraban/opusを使うとよさそう
https://github.com/hraban/opus

Decoding

pion/opusのDecodingでは、Opusデータをサポートしていないかも
https://github.com/pion/opus/issues/36

hraban/opus の方を使っていたが、
NewDecoderがundefinedになっていた
Windowsだとinstallが大変なため、linuxを使用するとよい

sudo apt-get install pkg-config libopus-dev libopusfile-dev
fogfog

音声の受け取り

細かく送られてくるRTPパケットを、連続した音声サンプルにまとめる必要がある
sampleBuilderを使うとよい
"github.com/pion/webrtc/v4/pkg/media/samplebuilder"