2008-10-14 53 views
4

我正在寻找一个好的.NET音频压缩库。任何使用MP3的东西都没有了(因为许可问题)。基本上我只需要能够将普通的WAV音频数据压缩成某种格式,然后解压缩回WAV。代码最好是.NET(C#或VB.NET),但我认为这不太可能。它应该是无损的或相对无损的(最好是192个MP3),压缩比至少可以达到4:1。我更喜欢基于缓冲区的API,但基于文件的API也可以。什么是最好的.NET音频压缩库?

有没有人知道这样的事情?

回答

3

你有没有想过使用WMA?如果您使用托管C++或C++/CLI,则可以非常容易地在Windows Media Format SDK中编写托管包装。这个程序集可以被更高级别的VB.Net或C#程序集轻松使用。只要你安装了WMP,它甚至具有不需要任何附加依赖的优点。

0

您可能会看看OGG编解码器。我不确定是否有任何使用.NET编写的软件,但它是开源的,所以如果这对你很重要,你应该能够轻松移植一个。

OGG Vorbis codec

+0

定义“很容易”。 :) – MusiGenesis 2008-10-15 00:45:49

+0

够正确。与写作/设计你自己的相比,“简单”? – 2008-10-15 00:57:50

+0

我写了我自己的(非FFT)算法,但它只能得到2:1。我至少从概念上理解MP3风格的压缩是如何工作的,比我理解OGG Vorbis代码的结构更好。 – MusiGenesis 2008-10-15 01:06:42

1

你已经想到了.OGG格式吗?我不知道.net库是否可用,但libogg和libvorbis C库不是火箭科学,并且经过了充分测试。对于一个简单的压缩/解压缩作业,您可以使用一个处理所有细节的两个函数包装器。

应该很容易在它们周围编写一个.net包装。

优点:

  • 专利免费
  • 使用甚至封闭源代码的许可项目
  • 非常良好的压缩比
  • 跨平台(因为你的目标是.NET也许不是那么重要,但但很高兴有)。
  • 最后但并非最不重要的一个非常成熟的图书馆没有已知的错误和良好的支持。
0

看看FMod。具有良好的音频压缩,播放以及3D效果功能。它支持很多音频格式。它是用C语言编写的,但有一个很好的C#包装器。

[[http://www.fmod.org/]]