我应该使用哪种音频编解码器?

5

在我的C#软件开发项目中,我应该选择哪种音频编解码器,其中原始音频需要进行转码/传输/使用,具体如下:

  1. 仅用于编码语音
  2. 音频可以是立体声或单声道
  3. 能够支持实时流媒体
  4. 在文件大小和质量之间取得良好的平衡
  5. 以其编码形式通过TCP/IP进行传输
  6. 可以通过现成的免费播放器直接播放,无需进一步处理

请注意,不需要考虑是否有现成的免费编解码库来执行转码。

5个回答

7

一种更为新颖和更好的选择是Opus编解码器

请查看与其他编解码器的比较,以了解其表现如何。


是的,随着Opus的到来,Speex现在已经过时了! - Kevin Vuilleumier

5

Speex是一种免费的开源编解码器,专门用于实时解决方案中对语音进行编码,需要低延迟。通用的压缩方案,如WMA或MP3,可能会导致更多的延迟,并且它们也可能无法在非常低的比特率下运行良好。http://www.speex.org/


0

你可以使用LAME进行MP3编码,使用“voice”预设。不过我建议尝试不同的预设,因为可能会出现类似这样的问题

MP3是KPFA.org(现在可能还包括KQED)用于实时流媒体的格式。效果很好。但我不知道使用了什么服务器软件。


0

根据你选择的语言,如果可以假设你正在使用Windows操作系统,我实际上会推荐使用WMA(Windows格式)。所有的库都将内置,并且总体而言,这是一个非常稳定的编解码器。支持你的所有需求以及更多。

然而,如果你要推送到Flash端点,请使用.fla,即Flash音频。Flash确实针对消费这种格式进行了优化,虽然在C#中使用起来不太容易,但你肯定会欣赏其在另一端的易用性。


0
如果您只针对Windows平台,GSM编解码器可能是低带宽应用的不错选择。与Speex相比,它通常被认为质量较低,但同时也使用了较少的带宽。
Windows Media Player能够播放GSM音频,而在Vista及更高版本中它的编码器是Media Foundation的一部分(在XP及以下版本中似乎是Win32 API实现的?)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接