C# AAC中的流编码器/解码器#

C# AAC中的流编码器/解码器#,c#,audio,encoding,stream,aac,C#,Audio,Encoding,Stream,Aac,我正在用C#编码一个媒体流系统,它首先需要流式传输音频,源是作为字节流的原始PCM数据,但它需要将其编码为AAC(不接受其他格式),而不是作为字节流转发,然后再次解码为原始PCM数据 我就是找不到任何有用的解决办法 我尝试过NAudio,但它不支持编码流读取,除非使用MediaFoundationReader(URL\u STRING)作为源,但它只接受URL的文件路径。在本地创建TCP HTTP流服务器不是一个选项,因为从既不能读取也不能读取的流创建文件,并且PCM->AAC编码仍然不能以这种

我正在用C#编码一个媒体流系统,它首先需要流式传输音频,源是作为字节流的原始PCM数据,但它需要将其编码为AAC(不接受其他格式),而不是作为字节流转发,然后再次解码为原始PCM数据

我就是找不到任何有用的解决办法

我尝试过NAudio,但它不支持编码流读取,除非使用
MediaFoundationReader(URL\u STRING)
作为源,但它只接受URL的文件路径。在本地创建TCP HTTP流服务器不是一个选项,因为从既不能读取也不能读取的流创建文件,并且PCM->AAC编码仍然不能以这种方式解决

我尝试过SharpDX,但没有找到任何有用的从流到流的转换示例

我为NAudio编写了一个缓冲区,作为缓冲PCM数据流的
接口,从技术上讲,它可以从字节数组中读取,可以用作编码器/解码器的输入和/或输出对象

我也尝试过使用MFLib来使用MediaFoundation库,但缺少示例或有用的文档并没有使我的工作变得更容易,事实上,对于那些希望在旧Windows操作系统上使用该应用程序的用户来说,这不是最好的,因为MF只在Win7+上工作

是否有任何有用的库,我可以相对简单地使用这些转换,或者我必须完全弄清楚如何解决这个看起来很简单的问题

由于NAudio和SharpDX都是开源的,所以可以接受对类的一些修改

稍后,该系统还需要支持MP4中的视频流,因此能够同时提供AAC和MP4音频/视频编码/解码的解决方案将是最好的


如果有任何提示和/或来源/例子能给我提供接近目标的线索,我将不胜感激。谢谢。

Libav/ffmpeg可以做到这一点,尽管我不会说它们简单。您还必须包装它们,因为它们是用c编写的。也许可以看看libfdk#u aac。节奏Fistman:谢谢你,libfdk#u aac帮了大忙,我使用了windows二进制dll-s,将它们包装在C#中并进行封送处理,工作得非常完美和快速。处理缓冲区有点痛苦,但效果很好!它还可以在linux和mono下使用libfdk aac so文件工作。