我已经筋疲力尽地寻找一个c ++ mp3解码库,最好是免费的(比如lgpl)和跨平台的,或者用于windows和mac。任何人都可以建议这样的库并发布一些使用它的教程吗? ffmpeg和sdl(sdl_sound,sdl_mixer)没有编译。我无法让mpg123工作 - 它只适用于Linux世界还是什么?是否有一些关于在Windows上使用mpg123的教程? mpg123无法找到一些符号,我没有把一些dll放在正确的路径上 - 但是哪个?
总的来说,我希望能够在Windows和Mac上读取和写入所有主要的音频文件格式 - 从windows开始。
答案 0 :(得分:2)
有几种选择:
GStreamer是一个跨平台库,用于构建媒体处理组件的图形。它支持的应用范围从简单的Ogg / Vorbis播放,音频/视频流到复杂的音频(混合)和视频(非线性编辑)处理。
This page有一些关于GStreamer和MP3格式的非常有趣的信息,如果您决定选择使用GStreamer,它必须阅读:
MP3音频格式很痛苦。它受到专利保护,使得Linux发行商很难在世界各地合法地打包(或Linux用户)。与某些替代方案相比,它甚至听起来都不那么好。然而MP3很难避免;
除此之外,Gstreamer通过 gst-launch 提供命令行界面,这对于在开始编写实际代码的代码之前测试正在程序中组装的管道非常有用:
gst-launch filesrc location=/path/to/audiofile ! decodebin ! oss4sink
如果您需要build GStreamer on Windows,请查看此tutorial for Visual Studio。
PortAudio是一个免费的,跨平台的,开源的音频I / O库。它可以让你在' C'中编写简单的音频程序。或者将在许多平台上编译和运行的C ++,包括Windows,Macintosh OS X和Unix(OSS / ALSA)。
答案 1 :(得分:1)
你有没有看过LAME?此外,请注意mp3算法受专利保护,因此无论您使用哪个库,都需要谨慎使用。
答案 2 :(得分:1)
我想上次我需要使用libMAD。工作得很好,但这是一个C lib。
答案 3 :(得分:1)
您可以尝试Helix。
它具有针对嵌入式平台和手臂架构的优化版本。
答案 4 :(得分:0)
看看bass:
几年前我使用它,它易于使用,多平台,具有良好的音质,开发人员非常支持。它可以免费用于非商业用途。
答案 5 :(得分:0)
我想gstreamer是最好的选择,但你也可以使用LibVLC,它是vlc播放器的核心。