信不信由你, 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)。
評論沒有發現