在我的C#软件开发项目中,我应该选择哪种音频编解码器,其中原始音频需要进行转码/传输/使用,具体如下:
- 仅用于编码语音
- 音频可以是立体声或单声道
- 能够支持实时流媒体
- 在文件大小和质量之间取得良好的平衡
- 以其编码形式通过TCP/IP进行传输
- 可以通过现成的免费播放器直接播放,无需进一步处理
请注意,不需要考虑是否有现成的免费编解码库来执行转码。
Speex是一种免费的开源编解码器,专门用于实时解决方案中对语音进行编码,需要低延迟。通用的压缩方案,如WMA或MP3,可能会导致更多的延迟,并且它们也可能无法在非常低的比特率下运行良好。http://www.speex.org/
你可以使用LAME进行MP3编码,使用“voice”预设。不过我建议尝试不同的预设,因为可能会出现类似这样的问题。
MP3是KPFA.org(现在可能还包括KQED)用于实时流媒体的格式。效果很好。但我不知道使用了什么服务器软件。
根据你选择的语言,如果可以假设你正在使用Windows操作系统,我实际上会推荐使用WMA(Windows格式)。所有的库都将内置,并且总体而言,这是一个非常稳定的编解码器。支持你的所有需求以及更多。
然而,如果你要推送到Flash端点,请使用.fla,即Flash音频。Flash确实针对消费这种格式进行了优化,虽然在C#中使用起来不太容易,但你肯定会欣赏其在另一端的易用性。