Open3
WebRTC Audioの調査
メモ
-
基本的にはOfferを生成する前にMediaChannelの設定を済ませておくと良い
-
Offer作成後にAudio等を使う場合は、再交渉 (negotiation) が必要
-
音声は Real-time Transport Protocol (RTP) の形式で送られる。
これは、Opusの圧縮形式である。 -
RTPパケットには、音声のPayloadと、送信順序を保証するためのシーケンス番号とタイムスタンプがある。
-
Defaultの設定では、
sample_rate = 48000
channels = 2
bit_depth = 2
である。
OpusのEncoding Decoding
Encoding
pion/opusはEncodingがない
hraban/opusを使うとよさそう
Decoding
pion/opusのDecodingでは、Opusデータをサポートしていないかも
hraban/opus の方を使っていたが、
NewDecoderがundefinedになっていた
Windowsだとinstallが大変なため、linuxを使用するとよい
sudo apt-get install pkg-config libopus-dev libopusfile-dev
音声の受け取り
細かく送られてくるRTPパケットを、連続した音声サンプルにまとめる必要がある
sampleBuilderを使うとよい
"github.com/pion/webrtc/v4/pkg/media/samplebuilder"