当前目录所有mp3转wav,需要安装mpg123
for mp3file in `ls *.mp3`; do mpg123 -w $mp3file.wav $mp3file; done;
如果要转成16KHZ的
for mp3file in `ls *.mp3`; do mpg123 -r 16000 -w $mp3file.wav $mp3file; done;
重命名
rename .mp3.wav .wav *.mp3.wav
wav批量转spx,需要安装speexenc
for wavfile in `ls *.wav`; do speexenc $wavfile $wavfile.spx; done;
重命名
rename .wav.spx .spx *.wav.spx
MPG123 简介
MPG123 是一个快速、开源的命令行 MPEG Audio Player(MP1/MP2/MP3 播放器),支持实时解码和播放 MP3 音频文件。它最初由 Michael Hipp 开发,现在由开源社区维护。
主要特点
-
跨平台支持
- 可在 Linux、Windows、macOS、BSD、Solaris 等系统上运行。
- 适用于嵌入式设备(如树莓派)和服务器环境。
-
高性能解码
- 采用优化的 MPEG-1/2/2.5 Layer I/II/III(MP1/MP2/MP3)解码器。
- 支持多种采样率(8kHz–48kHz)和比特率(8kbps–320kbps)。
-
多种输出模式
- ALSA(Linux)、OSS(Unix)、Core Audio(macOS)、DirectSound/WASAPI(Windows)。
- PulseAudio、JACK、sndio、OpenAL、SDL 等音频后端支持。
- 可输出到文件(如 WAV、RAW PCM),适用于音频转换。
-
命令行工具 & API
mpg123
:命令行播放器(支持播放列表、网络流媒体)。libmpg123
:C/C++ API,可集成到其他程序(如音乐播放器、游戏)。
-
网络流媒体支持
- 可播放 HTTP、ICY(Shoutcast/Icecast)流媒体。
- 支持 ID3v1/ID3v2 标签解析。
-
低延迟 & 低 CPU 占用
- 适用于嵌入式设备或低功耗系统(如树莓派)。
-
开源 & 自由软件
- 基于 GPL/LGPL 许可证发布。
基本用法
1. 播放本地 MP3
mpg123 audio.mp3
2. 播放多个文件
mpg123 song1.mp3 song2.mp3
3. 播放网络流
mpg123 http://example.com/stream.mp3
4. 输出到 WAV(格式转换)
mpg123 -w output.wav input.mp3
5. 批量播放目录下的 MP3
mpg123 \~/Music/*.mp3
6. 静音模式(仅解码不播放)
mpg123 -s input.mp3 > /dev/null
7. 调整音量
mpg123 -g 50 audio.mp3 # -g = gain (0-100)
常见应用场景
- 终端音乐播放器(结合
ncmpcpp
、cmus
)。 - 脚本自动化处理音频(如批量转码)。
- 嵌入式设备音频播放(如树莓派音乐盒)。
- 网络电台播放器(支持 Shoutcast/Icecast)。
- 游戏或应用程序的 MP3 解码库(通过
libmpg123
)。
对比其他 MP3 播放器
Player | CLI/GUI | Streaming | API | Low CPU | Cross-Platform |
---|---|---|---|---|---|
mpg123 | CLI | ✅ | ✅ | ✅ | ✅ |
VLC | GUI/CLI | ✅ | ❌ | ❌ | ✅ |
FFmpeg | CLI | ✅ | ✅ | ❌ | ✅ |
MPlayer | CLI/GUI | ✅ | ❌ | ❌ | ✅ |
总结
MPG123 是一个轻量级、高效的 MP3 解码器和播放器,适用于终端用户、开发者和嵌入式系统。它的核心优势在于:
- 速度快、低 CPU 占用
- 支持流媒体和 API(libmpg123)
- 跨平台兼容性好
如果你需要一个命令行 MP3 播放器或解码库,MPG123 是一个极佳的选择
作者:帅得不敢出门 程序员群:31843264