【问题标题】:Audio (MP3) codecs for embedded application用于嵌入式应用的音频 (MP3) 编解码器
【发布时间】:2009-03-15 13:53:13
【问题描述】:

我正在寻找用于嵌入式应用程序 (C/C++) 的基于软件的编解码器库。我对商业和免费编解码器库都感兴趣。任何建议都将受到欢迎。

此外,如果您对OpenSL ES 有任何经验并知道哪些软件/硬件解决方案兼容,我将很高兴听到。

我需要支持流行的编解码器。 MP3是必须的。我正在为一个嵌入式应用程序实现一个媒体播放器参考,不能只告诉用户:“嘿,把你所有的音乐库都转换成 Vorbis;它好多了。”强制支持 MP3 编解码器,但我很高兴找到一个更高级的库来处理更多编解码器(更多音频编解码器、视频编解码器等)

【问题讨论】:

  • 能否请您粗略估计一下嵌入式设备的能力。例如。 Atmel Mega 微控制器和 Intel Atom 处理器之间是有区别的 :-)
  • 它将至少有 ARM 9 处理器。
  • 您需要什么编解码器?你提到MP3……你想要的就这些吗?您是否还想支持现代编解码器,如 Vorbis/AAC/FLAC?
  • mp3 是必须的,其他都是不错的插件

标签: c audio embedded mp3 codec


【解决方案1】:

看看libvorbis,一个相当不错的开源BSD音频编解码器。还有一个名为 Tremor 的 vorbis 参考解码器,它只使用整数运算,因此可以用于没有浮点的架构。

【讨论】:

    【解决方案2】:

    免责声明、全面披露等:我目前作为承包商在那里工作。

    首先,您是只对解码器感兴趣还是对完整的编解码器(解码器+编码器)感兴趣?

    我想答案取决于您的具体情况。如果您正在为您的嵌入式平台寻找完整的播放器,NXP Software 可能是一个解决方案。它们还提供其他应用程序,例如记录器。

    【讨论】:

    • 嗯,我知道恩智浦软件甚至会拜访他们。好点,他们可能有我需要的东西。谢谢,我会在这里更新我的联系方式...
    【解决方案3】:

    Vorbis 编解码器是开源的,是 MP3 的良好替代品。

    快速浏览 OpenSL ES API 后,似乎已经定义了一些编解码器:

    #define SL_AUDIOCODEC_PCM         ((SLuint32) 0x00000001)
    #define SL_AUDIOCODEC_MP3         ((SLuint32) 0x00000002)
    #define SL_AUDIOCODEC_AMR         ((SLuint32) 0x00000003)
    #define SL_AUDIOCODEC_AMRWB       ((SLuint32) 0x00000004)
    #define SL_AUDIOCODEC_AMRWBPLUS   ((SLuint32) 0x00000005)
    #define SL_AUDIOCODEC_AAC         ((SLuint32) 0x00000006)
    #define SL_AUDIOCODEC_WMA         ((SLuint32) 0x00000007)
    #define SL_AUDIOCODEC_REAL        ((SLuint32) 0x00000008)
    

    您可能应该了解您是否仅限于这些。

    【讨论】:

    • 据我了解,OpenSL 是一个框架,一个接口定义而不是实际的编解码器实现,所以这是一个好的开始,但并不完全是我所需要的。
    【解决方案4】:

    编码还是解码?

    LAME (mp3) 和 FFmpeg(几乎所有其他内容,音频和视频)应该可以解决问题,尽管我认为带有 FFmpeg 的 Vorbis 编码器质量很差,您应该尽可能使用单独的编码器。 (我不知道这个建议是否仍然有效。)

    免责声明:我最近读了很多关于编解码器的文章,但我还没有对它们做任何事情,所以我还不知道我在说什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多