1

非常に単純なオーディオのみの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バイトのサイズのオーディオパケットを受信し続けます(他のサイズはまだ見つかりません)。

私の質問は次のとおりです。

  1. (SPEEXエンコーディングから)43バイトまたは11バイトのサイズを取得するのはなぜですか?
  2. 43バイト=1ヘッドバイト+42データバイトですか?
  3. 11バイトのサイズはどれくらいですか?
  4. サーバー側のアプリがこのオーディオデータを使用できるようにするには、SPEEXをどのように処理または生データに変換する必要がありますか?私の現在の実装:
    • 43バイトのパケットをすべてピックアップします(11バイトのパケットをすべてドロップします)。
    • 最初の1バイトをスキップします。
    • Speexライブラリを使用して左側の42バイトをデコードします。
  5. 生データをSPEEXオーディオデータに戻すにはどうすればよいですか?

ありがとう。

4

1 に答える 1

0

私はそれを自分で理解したと思います。

見る:

http://forums.adobe.com/message/3671858#3671858

于 2011-05-12T00:04:31.660 に答える