【问题标题】:Encode AAC file from stream从流中编码 AAC 文件
【发布时间】:2014-01-26 09:27:01
【问题描述】:

我希望能够使用 C# 从流(通过 WCF)保存 AAC 音频文件。 NAudio 目前只允许读取 AAC 文件而不是流,无论如何要这样做?

谢谢

【问题讨论】:

    标签: c# naudio aac


    【解决方案1】:

    目前(从 NAudio 1.7 开始),最好的方法是保存 WAV,然后转换为 AAC。如果您的 Windows 版本具有 AAC Media Foundation 编码器,那么您可以使用 NAudio 的 MediaFoundationEncoder 类来执行此操作。

    如果您想要流支持,一种方法是使用NAudio.SharpMediaFoundation,它利用 SharpDX 允许对流进行编码。

    【讨论】:

    • 马克,整个问题是通过 WAV 录音对我们不利,因为文件太大了。我们希望能够保存 AAC 或其他一些支持 Apple 的声音格式,并让我们的网络服务在服务器端接收它。
    • 您可以采取的一种方法是找到一个命令行 AAC 编码器,它允许您将 PCM 传递到标准输入。使用 lame.exe 制作 MP3 文件时,我取得了很好的效果。
    • 命令行编码器不方便退出。您可以将 CSCore 与 NAudio 结合使用(CSCore 支持流)。
    • 扩展@FlorianR。您可以使用 CSCore 执行以下操作:using (var decoder = new MediaFoundationDecoder(inStream)) { using (var encoder = MediaFoundationEncoder.CreateAACEncoder(decoder.WaveFormat, outStream)) { MediaFoundationEncoder.EncodeWholeSource(encoder, decoder); } }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-04
    • 2020-05-01
    • 2013-02-22
    • 1970-01-01
    • 2013-09-24
    • 1970-01-01
    相关资源
    最近更新 更多