信不信由你, mpg123 是一款开源的命令行音乐播放软件,能够解码和播放MPEG Audio Layer 1,2和3文件,这些文件通常被称为MP3,设计用于完全在Linux控制台中运行。
功能一目了然
主要功能包括用于MPEG音频层1,2和3的音频解码库,用于MPEG 1.0,2.0和2.5格式的实时音频播放器,浮点和整数数学支持,高质量和快速音频播放,以及对各种类似Linux和UNIX的操作系统的支持。
命令行选项
在应用程序的内置命令行选项中,我们可以提到将输出写入WAV文件,跳过前n帧,下采样1:2(22 kHz),仅播放每n帧,混合的能力两个通道(单声道),启用控制键,随机播放(使用通配符),读取URL,仅解码通道0(左),使用HTTP身份验证,设置输出缓冲区,设置或强制采样率,以及检查范围违规。
引擎盖和可用性
虽然应用程序完全使用C编程语言编写,但它使用了几种特殊的优化,如SSE,3DNow或ARM,并支持GNU / Linux,BSD,Solaris,AIX,OS / 2,HP-UX,SGI Irix, Mac OS X,Microsoft Windows操作系统。
可以作为源存档下载,这意味着用户必须通过Linux / UNIX命令行配置,编译和安装应用程序。但是,它可以从许多Linux操作系统的默认软件存储库中轻松安装。
底线
总结一下,我们不知道在充满现代图形用户界面的世界中这个命令行音频播放器是谁,但我们非常肯定mpg123提供了非常好的音频质量,即使你很容易使用讨厌Linux终端。
这个版本中的新内容:
- libout123:修复从OUT123_ARG_ERROR开始的错误消息(bug 261 )。
- mpg123:修复-icy-interval处理以使用来自stdin的流。 (curl | mpg123 --icy-interval = n - )
- libmpg123:使用part2_3_length == 0修复损坏(模糊)文件的另一个无效读取和段错误(设置maxband = 1,从即将到来的1.26.0中提取)。
版本1.25.3中的新功能:
- 如果不存在artsc-config的静音测试。
- 确保来自LDFLAGS的-static-libgcc通过libtool,修复32位Windows版本(否则依赖于libgcc DLL)。
- 在libout123 / modules makefile片段中使用普通的rm -f而不是愚蠢的$(RM)来修复使用非GNU make的构建。
- 在iOS上进行构建工作,包括coreaudio后端。
- libmpg123:
- 最后为x86提供与位置无关的代码,并进行程序集优化。由于Won Kyu Park和Taihei Momma,文本已经消失。
- 澄清源自原始MMX优化的文件中的某些许可语言。
- 修复MPG123_BUFFERFILL的返回值溢出检查。
- 引入了mpg123_getformat2()以启用通用控件的FORMAT命令,而不是从主回放循环中窃取MPG123_NEW_FORMAT。 LOADPAUSED-FORMAT-PAUSE(播放)序列现在可以正常工作。
- 默认情况下也会在* BSD上启用aarch64优化。无论如何,您总是可以使用--with-optimization覆盖那个愚蠢的操作系统白名单。
- 在配置输出中,现在不鼓励使用i486解码器。
- out123:使用详细模式和音调生成修复愚蠢的崩溃(如果指针为非空,则打印字符串,如果为空,则打印字符串。)
- libout123:动态和传统(内置)模块的更一致的错误消息。也就是说,如果您为静态libout123选择与内置模块不同的模块,您会得到一个提示。
版本1.25.0中的新功能:
- 如果不存在artsc-config的静音测试。
- 确保来自LDFLAGS的-static-libgcc通过libtool,修复32位Windows版本(否则依赖于libgcc DLL)。
- 在libout123 / modules makefile片段中使用普通的rm -f而不是愚蠢的$(RM)来修复使用非GNU make的构建。
- 在iOS上进行构建工作,包括coreaudio后端。
- libmpg123:
- 最后为x86提供与位置无关的代码,并进行程序集优化。由于Won Kyu Park和Taihei Momma,文本已经消失。
- 澄清源自原始MMX优化的文件中的某些许可语言。
- 修复MPG123_BUFFERFILL的返回值溢出检查。
- 引入了mpg123_getformat2()以启用通用控件的FORMAT命令,而不是从主回放循环中窃取MPG123_NEW_FORMAT。 LOADPAUSED-FORMAT-PAUSE(播放)序列现在可以正常工作。
- 默认情况下也会在* BSD上启用aarch64优化。无论如何,您总是可以使用--with-optimization覆盖那个愚蠢的操作系统白名单。
- 在配置输出中,现在不鼓励使用i486解码器。
- out123:使用详细模式和音调生成修复愚蠢的崩溃(如果指针为非空,则打印字符串,如果为空,则打印字符串。)
- libout123:动态和传统(内置)模块的更一致的错误消息。也就是说,如果您为静态libout123选择与内置模块不同的模块,您会得到一个提示。
版本1.23.6中的新功能:
- 调用out123_pause()而不是out123_stop()远程控制STOP命令,修复1.23.x中无法用另一个LOAD恢复播放的回归,除非新音轨具有不同的音频格式(错误234)
版本1.23.5中的新功能:
- libout123:
- 在win32上修复了portaudio和SDL的构建(太多括号,感谢Sandro Cumerlato指出它)
- make out123_errcode()返回OUT123_BAD_HANDLE文件(将该值添加到错误枚举中,记录但遗漏),再次感谢Sandro
- 修复windows-builds.sh(在复制阶段引用shell)并向发送的标头添加一些位以使其直接在MSVC中使用(定义ssize_t,bug 232)
- 在Makefile中没有覆盖LIBS(在1.23中构建系统回归,感谢Peter Korsgaard报告的那个)
- 没有打印消息以响应SIGPIPE,因为如果stderr本身是管道传播的罪魁祸首(从1.22回归,错误233),可能会触发挂起。
版本1.23.3中的新功能:
- 这是一个包含修复的止损版本对于错误216,避免在ID3v2数据中使用UTF-16进行虚假代理检测。
- 等待发布的主干有一些有趣的变化,下一个功能版本应包括libout123和一般构建系统修正(非递归make)。
版本1.22.3中的新功能:
- 这是一个止损版本,包括针对错误216的修复,避免在ID3v2数据中使用UTF-16进行虚假代理检测。
- 等待发布的主干有一些有趣的变化,下一个功能版本应包括libout123和一般构建系统修正(非递归make)。
版本1.22.1中的新内容:
- 修复mpg123-id3dump时使用搞笑(操纵的)MIME类型。如果指针大小小于64位,则后备文件扩展的长度计算中的愚蠢错误会导致内存中的垃圾被附加到文件名。对于64位指针(或更长),它是偶然的。
- 通过清理out123源来修复迂腐构建,现在也真正在--longhelp中显示编码列表,而不是再次从内存中写入垃圾。
- 不再将libmpg123与libltdl链接(错误215)。
- 稍微更新MSVC ++端口以使它们再次工作。
版本1.21.0中的新功能:
- 使用LL作为LOADLIST远程命令的快捷方式,L已被采取(错误210)。
- 较少的命名空间污染(标题中的MPG123_EXPORT而不是EXPORT,错误212)。
什么是新的:
- 最新版本通过尽早丢弃数据来跳过垃圾邮件时提高了订阅源阅读器的效率缓冲区以避免重新解析。之前的行为与某些输入相互影响很严重(参见gentoo bug 465744)。
版本1.20.0中的新功能:
- 为AArch64添加了NEON优化解码器(ARM 64位环境) ):
- 启用--with-cpu = neon64(仅限NEON)或--with-cpu = aarch64(在neon和generic_fpu之间运行时切换,如arm_fpu)配置
- 与aarch64-linux-gnu工具链兼容(来自Ubuntu,debian)和Xcode 5
- 仅使用mpg123的音频输出部分添加了新的二进制文件out123。这是将所述代码分离成简单音频输出库的先驱。它还允许在输入输出之前插入管道中的某些处理。
- 列出模块时防止未知模块目录的opendir(NULL)。
- 在Windows上修复mpg123-id3dump的修补程序
版本1.18.1中的新功能:
- 不要用mpg123 -R关闭缓冲区两次(删除control_generic()中过时的代码),修复bug 207。
- 不要乱用第一个命令行参数来提取程序名称,改为使用副本,修复bug 205。
- 防止在播放列表中打开曲目失败的时间过早退出,并且用户想跳过它(错误206)。
- 修复HTTP套接字乱码,同时避免不必要的FILE对象(bug 204,Rajeev V. Pillai补丁)。
- 修复慢速HTTP流上的播放列表行为,从第一首曲目跳回('d'键)停留在第一首曲目(再次感谢Rajeev,错误206的子bug)。
- 修复Frankenstein检查不要偶然发现ID3v1标签。我很抱歉。作为奖励,解析器中相关代码的位置现在更合乎逻辑。
版本1.17.0中的新功能:
- mpg123-id3dump --no-scan;加速
- 隐藏-C参数来自mpg123 - 不支持时支持
- 添加了tinyalsa输出(由Jarno Lehtinen提供)
- 构建系统调整
- 关注修复Cygwin版本
版本1.16.0中的新功能:
- 新的霍夫曼解码方案(可配置,默认开启)为mpg123带来了很好的提升,使其成为现代CPU上最快的解码器。
- 新AVX解码器
- 用于SSE和AVX的装配优化DCT36
- 使用装配DCT36为老式3DNow(分机)CPU(AMD K6)添加配置
- 使用C DCT36 为老式SSE CPU(Pentium M)添加了配置
- 将FORMAT命令添加到通用控件
- 添加了对ID3v2 APIC帧的支持
- 添加了mpg123-id3dump作为官方伴侣提取元数据(包括将专辑封面从APIC写入文件)
- 添加了mpg123-strip作为剥离MPEG流(包括元数据)的污垢的官方伴侣
- 在通用控件中打印后不立即删除ID3数据
- 模块加载器与相对MPG123_MODDIR 相比更加灵活
- 使用pulseaudio输出修复斩波播放:关闭时立即消耗输出。
- SDL输出修正,a)不切断结束和b)非致命欠载
- 修复win32输出中的明显错误...它现在播放曲目的结尾吗?需要有人来测试这个。
- 使用--title添加了对屏幕和iris-ansi终端的支持(来自sf.net用户canavan的补丁提示)
- 修复/增强了sgi音频输出
- libmpg123:适当系统的正确大文件别名(FreeBSD只有一个off_t
- 这使得客户端软件能够坚持定义无意义的_FILE_OFFSET_BITS。
- 包装脚本src / mpg123-with-modules,以减轻使用未安装模块运行mpg123的痛苦(设置MPG123_MODDIR)
- 删除了ALSA 0.5代码(长时间未用,最后一个GPL位)
版本1.14.2中的新功能:
- 使用1.14系列,试图更好处理磁盘外情况,WAV写入代码发生了变化,并且将WAV写入标准输出(前面有一个WAV标头的原始数据)。这将与当前版本再次一起使用。
版本1.14.1中的新功能:
- 这个修复了一个未被发现的错误(适度)重组解析器代码。使用馈线API,可能错过(损坏的)流中的格式变化,分配的输出缓冲器太小(从每帧576个样本到每帧1152个样本从MPEG层3切换)更可怕的结果。
版本1.14.0中的新功能:
- libmpg123 API版本36(见NEWS.libmpg123)
- 添加--ignore-streamlength。
- 但也处理连接(弗兰肯斯坦)流:一旦我们超过宣布的帧数,就不应用无间隙切割。
- 添加歌词的打印输出(来自USLT in ID3v2)。
- 将SIGUSR1和SIGUSER2的处理添加到终端控制代码,可通过--ctrlusr1和--ctrlusr2进行配置。
- 添加了一些低级API(mpg123_framedata(),mpg123_framepos(),缓冲和重采样控制)。
- 添加了有关输入缓冲区填充的信息到mpg123_getstate()。
- ReplayGain:尝试检测低于3.95的LAME,以获得83 dB的不同参考电平(增加前置放大器为6 dB)。版本3.95本身(不是3.95.1)我无法检测到。不触及用户设置的增益值。
- 忽略帧时,保持沉默的缺失位库。这就是重点(主要是; - )。
- 从MPlayer添加新的/旧的WRITE_SAMPLE变体,使旧的CPU(至少x86)上的通用解码器更快。但不是在x86-64上(默认情况下它没有启用)。
- 处理文件编写器中的磁盘不足(有点,请参阅http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=67259)
- 在Mac OS和iOS上添加了Xcode项目文件以构建libmpg123
- sndio输出的32位输出(Brad Smith补丁)。
- 远程控制接口现在知道LOADLIST命令。
- 现在在打印输出后释放元数据内存。
- 一些文档清理,包括quadrispro的手册页修复。
- 在Windows上重新启用通配符扩展(已被unicode文件名支持破坏)。
- 修复MMX tabinit语法(感谢Marcel Muller指出这一点)。
- 修复SGI音频输出(自更改模块后已损坏)。
- 修复一些条纹行为(mpg123_getformat()触发下一帧的不必要的读取,可能是伪造MPG123_NEED_MORE)。
- 重新同步限制现在也可用于增加开始时跳过的垃圾量。
- 更好地分离流结束和读取错误(如果没有流打开,甚至)。
- 不要总是抱怨自由格式标题搜索失败(只有详细级别为3)。
评论没有发现