【发布时间】:2010-03-03 01:35:14
【问题描述】:
我应该为我的 C# 软件开发项目选择哪种音频编解码器,其中要转码/传输/使用的原始音频基于以下条件:
- 仅用于编码语音
- 音频可以是立体声或单声道
- 能够支持直播
- 文件大小和质量之间的良好权衡
- 以编码形式通过 TCP/IP 传输
- 无需进一步处理即可由现成的免费播放器播放
请注意,无需考虑是否有现成的免费编解码器库用于执行转码。
【问题讨论】:
我应该为我的 C# 软件开发项目选择哪种音频编解码器,其中要转码/传输/使用的原始音频基于以下条件:
请注意,无需考虑是否有现成的免费编解码器库用于执行转码。
【问题讨论】:
Opus Codec 是更新和更好的替代方案。
查看comparison 和其他编解码器,看看它的性能如何。
【讨论】:
Speex 是免费的开源编解码器,专为在需要低延迟的实时解决方案中编码语音而设计。 WMA 或 MP3 等通用压缩方案可能会导致更多延迟,并且它们也可能无法在非常低的比特率下正常运行。 http://www.speex.org/
【讨论】:
您可以使用带有“语音”预设的 LAME 进行 MP3 编码。我会建议测试不同的,because of issues like this。
MP3 是 KPFA.org(我认为现在是 KQED)都用于直播的。效果很好。不过不知道用的是什么服务器软件。
【讨论】:
鉴于您选择的语言,如果可以安全地假设您使用的是 Windows,我实际上会推荐 WMA,即 Windows 格式。这些库都将内置,并且,考虑到所有因素,它是一个非常可靠的编解码器。支持您的所有要求等等。
但是,如果您要推送到 Flash 端点,请使用 .fla、Flash 音频。 Flash 肯定会针对使用它进行优化,虽然它在 C# 中使用起来并不那么容易,但您肯定会欣赏另一端的易用性。
【讨论】:
如果您只针对 Windows,则 GSM 编解码器可能是低带宽应用程序的不错选择。它通常被认为比 Speex 质量低,但使用的带宽也少得多。
Windows Media Player 可以播放 GSM,并且编码器是 Vista 及更高版本中 Media Foundation 的一部分(可能是 XP 及更低版本中的一些 Win32 API?)
【讨论】: