我正在编写一个 UDP 局域网视频聊天系统,并让视频和音频流正常工作。但是,我在音频中遇到了一点延迟(大约半秒),并且想知道哪种编解码器可以提供最少的延迟。我正在使用 NAudio ( http://naudio.codeplex.com/ ),它使我可以访问以下编解码器以进行流式传输;
- Speex 窄带 (VBR)
- Speex 宽带 (16kHz)(VBR)
- Speex 超宽带 (32kHz)(VBR)
- DSP 组 TrueSpeech (8.5kbps)
- GSM 6.10 (13kbps)
- 微软 ADPCM (32.8kbps)
- G.711 a-law (64kbps)
- G.722 16kHz (64kbps)
- G.711 mu-law (64kbps)
- PCM 8kHz 16 位未压缩 (128kbps)
我已经尝试过它们,但我没有注意到太大的不同。还有其他我应该下载并尝试减少延迟的吗?我只会通过连接发送语音,但我并不太担心质量或背景噪音。
更新
我正在像这样以块的形式发送音频;
waveIn = new WaveIn();
waveIn.BufferMilliseconds = 50;
waveIn.DeviceNumber = inputDeviceNumber;
waveIn.WaveFormat = codec.RecordFormat;
waveIn.DataAvailable += waveIn_DataAvailable;
void waveIn_DataAvailable(object sender, WaveInEventArgs e)
{
if (connected)
{
byte[] encoded = codec.Encode(e.Buffer, 0, e.BytesRecorded);
udpSender.Send(encoded, encoded.Length);
}
}