c++ mp3 library

c++ mp3 library

本文关键字:library mp3 c++      更新时间:2023-10-16

我已经筋疲力尽地在寻找一个c++mp3解码库,最好是免费的(比如lgpl)和跨平台的,或者是windows和mac的。有人能推荐这样的库并发布一些使用教程吗?ffmpeg和sdl(sdl_sound、sdl_mixer)没有编译。我无法让mpg123正常工作——它只适用于linux世界还是什么?有关于在windows上使用mpg123的教程吗?mpg123找不到一些符号,这就是我没有把一些dll放在正确的路径上,但是哪个?

总的来说,我希望能够在windows和mac上读写所有主要的音频文件格式——从windows开始。

有几个选项:

  • GStreamer

GStreamer是一个跨平台库,用于构建媒体处理组件的图形。它支持的应用程序从简单的Ogg/Vorbis播放、音频/视频流到复杂的音频(混合)和视频(非线性编辑)处理。

这个页面有一些关于GStreamer和MP3格式的非常有趣的信息,如果你决定使用GStreamer,这是必读的:

MP3音频格式让人头疼。它受到专利保护,使得Linux分销商很难在世界各地合法打包(或Linux用户使用)。与一些替代品相比,它听起来甚至没有那么好。然而MP3是很难避免的;

除此之外,Gstreamer通过gst-inlaunch提供了一个命令行界面,这对于在您开始编写代码之前测试您在程序中组装的管道非常有用——实际代码:

gst-launch filesrc location=/path/to/audiofile ! decodebin ! oss4sink

如果您需要在Windows上构建GStreamer,请查看本教程中的Visual Studio。

  • 端口音频

PortAudio是一个免费的、跨平台的、开源的音频I/O库。它允许您用"C"或C++编写简单的音频程序,这些程序将在许多平台上编译和运行,包括Windows、Macintosh OS X和Unix(OSS/ALSA)。

MP3支持来自libmad。有一些教程可以帮助构建和使用库。

您调查过LAME吗?此外,请注意,mp3算法受专利保护,因此无论使用哪个库,都需要小心操作。

我想上次我需要使用libMAD。工作得很好,但这是一个C库。

您可以尝试Helix。

它有一个针对嵌入式平台和arm架构的优化版本。

看看低音:

我几年前就使用过它,它易于使用,多平台,音质良好,开发人员非常支持。非商业用途是免费的。

我想gstreamer是最好的选择,但你也可以使用LibVLC,它是vlc播放器的核心。