非常に単純なオーディオのみのRTMPサーバーを実装しています。
私は次のようなクライアントコードを持っています:
// get the default mic
var mic:Microphone= Microphone.getMicrophone();
// best quality (picks up all sounds, no transmission interruptions)
mic.setSilenceLevel(0);
// Using SPEEX codec with quality of 5
mic.codec = SoundCodec.SPEEX;
mic.encodeQuality = 5; // Required bit rate: 16.8 kbits/s,
// Rate is automatically set to 16K Hz if SPEEX codec is set
//mic.rate = 16;
mic.framesPerPacket = 1;
// Attach the mic to the NetStream
ns.attachAudio(mic);
ns.publish("SpeexAudioData", "record");
次に、サーバー上で、43バイトまたは11バイトのサイズのオーディオパケットを受信し続けます(他のサイズはまだ見つかりません)。
私の質問は次のとおりです。
- (SPEEXエンコーディングから)43バイトまたは11バイトのサイズを取得するのはなぜですか?
- 43バイト=1ヘッドバイト+42データバイトですか?
- 11バイトのサイズはどれくらいですか?
- サーバー側のアプリがこのオーディオデータを使用できるようにするには、SPEEXをどのように処理または生データに変換する必要がありますか?私の現在の実装:
- 43バイトのパケットをすべてピックアップします(11バイトのパケットをすべてドロップします)。
- 最初の1バイトをスキップします。
- Speexライブラリを使用して左側の42バイトをデコードします。
- 生データをSPEEXオーディオデータに戻すにはどうすればよいですか?
ありがとう。