我正在实现一个非常简单的纯音频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音频数据?

  • 谢谢。

    最佳答案

    我想我自己想通了。

    看到:

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

    10-08 06:57