Naniniwala ito o hindi, ang mpg123 ay isang open source software ng pag-playback ng command-line na musika na may kakayahang mag-decode at maglaro ng mga MPEG Audio Layer 1, 2 at 3 na mga file, na popular na kilala bilang MP3s, na idinisenyo upang tumakbo nang buo sa isang console ng Linux.
Mga tampok sa isang sulyap
Kabilang sa mga pangunahing tampok ang audio decoding library para sa MPEG Audio Layer 1, 2 at 3, real time audio player para sa MPEG 1.0, 2.0 at 2.5 na mga format, lumulutang na punto at suporta sa integer na matematika, mataas na kalidad at mabilis na pag-playback ng audio, pati na rin ang suporta para sa isang malawak na hanay ng Linux at UNIX-tulad ng mga operating system.
Mga pagpipilian sa command line
Kabilang sa mga built-in na command-line na pagpipilian ng application, maaari naming banggitin ang kakayahang magsulat ng output sa isang WAV file, laktawan ang unang n frame, downsample 1: 2 (22 kHz), i-play ang bawat n'th frame lamang, ihalo ang parehong mga channel (mono), paganahin ang mga control key, shuffle play (kasama ang mga wildcard), basahin ang mga URL, i-decode ang channel 0 (kaliwa) lamang, gamitin ang HTTP na pagpapatunay, itakda ang output buffer, itakda o pilitin ang samplerate, p>
Sa ilalim ng hood at availability
Habang ang aplikasyon ay ganap na nakasulat sa wikang C programming, gumagamit ito ng ilang mga espesyal na pag-optimize tulad ng SSE, 3DNow o ARM, at sumusuporta sa GNU / Linux, BSD, Solaris, AIX, OS / 2, HP-UX, SGI Irix, Mac OS X, operating system ng Microsoft Windows.
Ito ay magagamit para sa pag-download bilang isang archive ng pinagmulan, na nangangahulugan na ang user ay dapat na i-configure, itala at i-install ang application sa pamamagitan ng Linux / UNIX command-line. Gayunpaman, maaari itong madaling mai-install mula sa mga default na repository ng software ng maraming Linux OS.
Ibabang linya
Summing up, wala kaming ideya kung sino ang audio player ng command-line na ito sa isang mundo na puno ng mga modernong graphical na interface ng gumagamit, ngunit kami ay tiyak na ang mpg123 ay nag-aalok ng isang napakahusay na kalidad ng audio at napakadali itong gamitin kahit na mapoot ang Linux Terminal.
Ano ang bago sa paglabas na ito:
- libout123: Ayusin ang mga mensahe ng error na nagsisimula mula sa OUT123_ARG_ERROR (bug 261 ).
- mpg123: Ayusin ang pag-aayos ng interyor na katamtaman upang gumana gamit ang stream mula sa stdin. (curl | mpg123 --icy-interval = n -)
- libmpg123: Ayusin ang isa pang hindi balidong pagbasa at segfault sa mga nasira (fuzzed) na mga file na may part2_3_length == 0 (itakda ang maxband = 1, nakuha mula sa paparating na 1.26.0).
Ano ang bago sa bersyon 1.25.3:
- Subukan ang katahimikan para sa artsc-config kung wala ito.
- Tiyaking -static-libgcc mula sa LDFLAGS ay nakakakuha sa pamamagitan ng libtool, pag-aayos ng 32 bit na Windows builds (depende sa libgcc DLL kung hindi man).
- Ayusin ang pagtatayo gamit ang di-GNU na gumawa sa pamamagitan ng paggamit ng plain rm -f sa halip ng nakakatawa $ (RM) sa libout123 / modules makefile fragment.
- Gumawa ng pagtatayo ng trabaho sa iOS, kabilang ang backend ng coreaudio.
- libmpg123:
- Panghuli magbigay ng posisyong independiyenteng code para sa x86 sa pag-optimize ng pagpupulong. Ang mga textrels ay wala na salamat sa Won Kyu Park at Taihei Momma.
- Linawin ang ilang wika ng lisensya sa mga file na bumababa mula sa orihinal na pag-optimize ng MMX.
- Ayusin ang check ng overflow na halaga ng return para sa MPG123_BUFFERFILL.
- Ipinakilala mpg123_getformat2 () upang paganahin ang command FORMAT para sa pangkaraniwang kontrol na hindi pagnanakaw ang MPG123_NEW_FORMAT mula sa pangunahing loop ng pag-playback. Ang pagkakasunud-sunod na LOADPAUSED-FORMAT-PAUSE (play) ay dapat na magtrabaho ngayon.
- Paganahin ang pag-optimize ng aarch64 sa * BSD bilang default, masyadong. Maaari mong palaging i-override ang nakababagod OS whitelist na gamit ang - may-optimize, gayon pa man.
- Ang paggamit ng i486 decoder ay mas pinipigilan na ngayon, sa pag-configure ng output.
- out123: Ayusin ang nakababagod na pag-crash gamit ang mode na lapis at henerasyon ng tono (i-print ang string kung ang pointer ay di-null, hindi kung null).
- libout123: Mas kumpletong mga mensahe ng error para sa mga dynamic at legacy (built-in) na mga module. Sa ganitong paraan, makakakuha ka ng pahiwatig kung paano pipiliin mo ang ibang module kaysa sa mga built-in para sa isang static libout123.
Ano ang bago sa bersyon 1.25.0:
- Subukan ang katahimikan para sa artsc-config kung wala ito.
- Tiyaking -static-libgcc mula sa LDFLAGS ay nakakakuha sa pamamagitan ng libtool, pag-aayos ng 32 bit na Windows builds (depende sa libgcc DLL kung hindi man).
- Ayusin ang pagtatayo gamit ang di-GNU na gumawa sa pamamagitan ng paggamit ng plain rm -f sa halip ng nakakatawa $ (RM) sa libout123 / modules makefile fragment.
- Gumawa ng pagtatayo ng trabaho sa iOS, kabilang ang backend ng coreaudio.
- libmpg123:
- Panghuli magbigay ng posisyong independiyenteng code para sa x86 sa pag-optimize ng pagpupulong. Ang mga textrels ay wala na salamat sa Won Kyu Park at Taihei Momma.
- Linawin ang ilang wika ng lisensya sa mga file na bumababa mula sa orihinal na pag-optimize ng MMX.
- Ayusin ang check ng overflow na halaga ng return para sa MPG123_BUFFERFILL.
- Ipinakilala mpg123_getformat2 () upang paganahin ang command FORMAT para sa pangkaraniwang kontrol na hindi pagnanakaw ang MPG123_NEW_FORMAT mula sa pangunahing loop ng pag-playback. Ang pagkakasunud-sunod na LOADPAUSED-FORMAT-PAUSE (play) ay dapat na magtrabaho ngayon.
- Paganahin ang pag-optimize ng aarch64 sa * BSD bilang default, masyadong. Maaari mong palaging i-override ang nakababagod OS whitelist na gamit ang - may-optimize, gayon pa man.
- Ang paggamit ng i486 decoder ay mas pinipigilan na ngayon, sa pag-configure ng output.
- out123: Ayusin ang nakababagod na pag-crash gamit ang mode na lapis at henerasyon ng tono (i-print ang string kung ang pointer ay di-null, hindi kung null).
- libout123: Mas kumpletong mga mensahe ng error para sa mga dynamic at legacy (built-in) na mga module. Sa ganitong paraan, makakakuha ka ng pahiwatig kung paano pipiliin mo ang ibang module kaysa sa mga built-in para sa isang static libout123.
Ano ang bago sa bersyon 1.23.6:
- tumawag out123_pause () sa halip ng out123_stop () remote control STOP command, pag-aayos ng pagbabalik sa 1.23.x ng hindi ma-ipagpatuloy ang pag-playback sa isa pang LOAD maliban kung ang bagong track ay magkakaiba ang format ng audio (bug 234)
Ano ang bago sa bersyon 1.23.5:
- libout123:
- ayusin ang pagtatayo ng portaudio at SDL sa win32 (masyadong maraming mga panaklong, salamat kay Sandro Cumerlato para sa pagturo nito)
- gumawa ng out123_errcode () bumalik OUT123_BAD_HANDLE bilang dokumentado (idinagdag ang halaga sa error enum, ay dokumentado ngunit nawawala), muli salamat kay Sandro
- ayusin ang windows-builds.sh (pagsipi ng shell sa yugto ng pagkopya) at magdagdag ng ilang mga piraso sa naipadala na header upang gawin itong direkta na magagamit sa MSVC (tukuyin ang ssize_t, bug 232)
- walang overwriting ng LIBS sa Makefile (build system regression sa 1.23, salamat kay Peter Korsgaard para sa pag-uulat ng isa)
- walang pagpi-print ng mensahe bilang tugon sa SIGPIPE, na maaaring mag-trigger ng hang kung ang stderr mismo ay ang piped culprit (pagbabalik mula sa 1.22, bug 233)
Ano ang bago sa bersyon 1.23.3:
- Ito ay isang stop-gap release kasama ang fix para sa bug 216, pag-iwas sa hindi totoo pagkakita ng kahalili sa UTF-16 sa data ng ID3v2.
- Mayroong ilang mga kagiliw-giliw na pagbabago sa puno na naghihintay ng release kasama ang susunod na bersyon ng tampok, na dapat kasama ang libout123 at general build system fixup (non-recursive make).
Ano ang bago sa bersyon 1.22.3:
- Ito ay isang pagpapalabas ng stop-gap kasama na ang pag-aayos para sa bug 216, pag-iwas sa hindi totoo na pagtukoy ng pangalawa sa UTF-16 sa data ng ID3v2.
- Mayroong ilang mga kagiliw-giliw na pagbabago sa puno na naghihintay ng release kasama ang susunod na bersyon ng tampok, na dapat kasama ang libout123 at general build system fixup (non-recursive make).
Ano ang bago sa bersyon 1.22.1:
- Ayusin ang mpg123-id3dump manipulahin) uri ng MIME. Ang nakamamatay na pagkakamali sa haba ng pagtutuos ng extension ng file ng fallback ay nagdulot ng basura mula sa memorya na nakadugtong sa filename kung ang laki ng pointer ay mas mababa sa 64 bit. Para sa 64 bit na mga payo (o mas mahaba) ito ay tama sa aksidente.
- Ayusin ang patent na pagtatayo sa pamamagitan ng paglilinis ng pinagmulan, at ngayon ay tunay na nagpapakita ng listahan ng encoding sa - matagal na sa halip ng posibleng, muli, pagsusulat ng basura mula sa memorya doon.
- Hindi naka-link ang libmpg123 laban sa libltdl (bug 215).
- I-update ang MSVC ++ na mga port nang kaunti upang magtrabaho muli.
Ano ang bago sa bersyon 1.21.0:
- Gamitin ang LL bilang shortcut para sa LOADLIST remote command, L ay nakuha na (bug 210).
- Mas kaunting mga namespace polusyon (MPG123_EXPORT sa header sa halip ng EXPORT, bug 212).
Ang pinakabagong release ay ginagawang mas epektibo ang feed reader kapag nilaktawan ang junk sa pamamagitan ng maagang pag-discard ng data mula sa buffer upang maiwasan ang muling pag-parse. Ang nakaraang pag-uugali ay nakipag-ugnayan nang masama sa ilang input (tingnan ang gentoo bug 465744).
Ano ang bago sa bersyon 1.20.0:
- Nagdagdag ng optimize na neon na NEON para sa AArch64 (ARM 64bit na kapaligiran ):
- pinagana para sa --with-cpu = neon64 (NEON lamang) o --with-cpu = aarch64 (runtime switch sa pagitan ng neon at generic_fpu, tulad ng arm_fpu) configuration
- katugma sa aarch64-linux-gnu toolchains (mula sa Ubuntu, debian) at Xcode 5
- Nagdagdag ng bagong binary out123 lamang sa audio output na bahagi ng mpg123. Ito ay isang pauna sa paghihiwalay ng sinabi code sa isang simpleng audio output library. Pinapayagan din nito ang plugging sa ilang pagproseso sa isang pipe bago pagpapakain sa output.
- Pigilan ang opendir (NULL) para sa hindi kilalang module na direktoryo kapag naglilista ng mga module.
- magtayo ng ilang mga pag-aayos, kabilang sa mga pag-aayos ng mpg123-id3dump sa Windows
Ano ang bago sa bersyon 1.18.1:
- Huwag isara ulit ang buffer sa mpg123 -R (tanggalin ang outdated code sa control_generic ()), pag-aayos ng bug 207.
- Huwag gumulo sa argumento ng unang command line upang kunin ang pangalan ng programa, gumamit ng kopya sa halip, pag-aayos ng bug 205.
- Pigilan ang napaaga na exit sa tiyempo ng kabiguan na magbukas ng track sa playlist at ang gumagamit na gustong laktawan ito (bug 206).
- Pag-aayos ng gulo ng socket ng HTTP, iiwasan din ang mga hindi kinakailangang bagay FILE (bug 204, patch ni Rajeev V. Pillai).
- Mag-ayos ng pag-uugali ng playlist sa mabagal na mga stream ng HTTP, tumatalon pabalik ('d' key) mula sa unang track ay nananatili sa unang track (salamat sa Rajeev muli, sub-bug ng bug 206).
- Ayusin ang Frankenstein suriin na huwag madapa sa mga tag ng ID3v1. Ang aking pasensiya. Bilang isang bonus, ang posisyon ng nababahaging code sa parser ay ngayon mas lohikal.
Ano ang bago sa bersyon 1.17.0:
- mpg123-id3dump --no-scan; para sa speedup
- itago -C parameter mula sa mpg123 - tulong kapag hindi ito sinusuportahan
- idinagdag ang tinyalsa Output (sa pamamagitan ng Jarno Lehtinen)
- bumuo ng pag-aayos ng system
- ilang pag-aalaga para sa pag-aayos ng Cygwin builds
Ano ang bago sa bersyon 1.16.0:
- Ang bagong pag-decode ng scheme ng Huffman (maisasaayos, sa pamamagitan ng default) ay nagdudulot ng magandang tulong sa mpg123 upang gawin itong muli ang pinakamabilis na decoder sa mga modernong CPU.
- bagong AVX decoder
- na-optimize na assembly na DCT36 para sa SSE at AVX
- idinagdag configs para sa vintage 3DNow (ext) CPUs (AMD K6) gamit ang pagpupulong DCT36
- Nagdagdag ng configs para sa mga vintage SSE CPU (Pentium M), gamit ang C DCT36
- Nagdagdag ng command na FORMAT sa generic control
- Nagdagdag ng suporta para sa ID3v2 APIC frame
- idinagdag mpg123-id3dump bilang opisyal na kasamang upang kunin ang data ng meta (kabilang ang pagsulat ng album art mula sa APIC sa mga file)
- Nagdagdag ng mpg123-strip bilang opisyal na kasamang upang i-strip ang dumi mula sa mga stream ng MPEG (kabilang ang meta data)
- hindi pagtanggal ng data ng ID3 pagkatapos ng pag-print sa generic na kontrol
- module loader ng kaunti pang kakayahang umangkop sa kamag-anak MPG123_MODDIR
- Ayusin ang tinadtad na pag-playback sa pulseaudio output: draining ang output ngayon sa pagsasara.
- pag-aayos ng SDL output, a) hindi pagpuputol ng dulo at b) di-nakamamatay na underrun
- Ayusin ang mga halatang mali sa output ng win32 ... ngayon ay nilalaro ba ang dulo ng mga track? Kailangan mo ng isang tao upang subukan ito.
- Nagdagdag ng suporta para sa screen at iris-ansi terminal na may -title (gaya ng sinenyasan ng patch mula sa sf.net user canavan)
- mga pag-aayos / pagpapahusay para sa sgi audio output
- libmpg123: tamang largefile alias para sa wastong mga system (FreeBSD na may isang one-and-only off_t
- Nagbibigay ito ng software ng client na nagpipilit sa pagtukoy ng walang kabuluhan _FILE_OFFSET_BITS.
- wrapper script src / mpg123-with-modules upang mabawasan ang sakit ng pagpapatakbo ng mpg123 gamit ang mga module na walang pag-install (setting MPG123_MODDIR)
- inalis ALSA 0.5 code (hindi ginagamit para sa matagal, huling GPL-lamang na bit)
Ano ang bago sa bersyon 1.14.2:
- Gamit ang 1.14 na serye, pangasiwaan ang mga sitwasyon sa labas ng disk, ang WAV writing code ay nabago at na sinira pagsulat ng WAVs sa karaniwang output (raw data na may isang solong WAV header sa harap). Ito ay gagana muli gamit ang kasalukuyang release.
Ano ang bago sa bersyon 1.14.1:
- Pinagbabatas ng isang ito ang isang bug na nakuha na walang natuklasan sa (katamtaman) muling pagbubuo ng parser code. Sa feeder API, posibleng makaligtaan ang isang pagbabago sa format sa (nasira) na stream, ang mas katakut-takot na resulta ay ang inilaan na output buffer na masyadong maliit (lumipat mula sa MPEG layer 3 sa 576 na sample sa bawat frame sa 1152 sample bawat frame).
Ano ang bago sa bersyon 1.14.0:
- libmpg123 API version 36 (tingnan ang NEWS.libmpg123)
- Magdagdag - mag-signore-streamlength.
- Ngunit nakikitungo din sa mga daluyan ng pinagtibay na (Frankenstein): Hindi nag-aaplay ng walang galing na pagputol sa sandaling nasa ibabaw kami ng inihayag na bilang ng mga frame.
- Magdagdag ng - mga lite para sa printout ng lyrics (mula sa USLT sa ID3v2).
- Nagdagdag ng paghawak ng SIGUSR1 at SIGUSER2 sa terminal control code, maaaring i-configure sa pamamagitan ng --ctrlusr1 at --ctrlusr2.
- Ang ilang API na mababa ang antas ay idinagdag (mpg123_framedata (), mpg123_framepos (), buffering at resampling control).
- Nagdagdag ng impormasyon tungkol sa input buffer fill sa mpg123_getstate ().
- ReplayGain: Subukan upang makita ang LAME sa ibaba 3.95 para sa iba't ibang antas ng sanggunian na 83 dB (idinagdag ang preamp ng 6 dB). Bersyon 3.95 mismo (hindi 3.95.1) Hindi ko makita. Ang mga halaga ng makakuha ng user-set ay hindi hinawakan.
- Manatiling tahimik tungkol sa nawawalang bit reservoir kapag binabalewala ang mga frame. Iyon ang buong punto (karamihan; -).
- Idagdag ang bago / lumang WRITE_SAMPLE na variant mula sa MPlayer na ginagawang mas mabilis ang generic na decoder sa mas lumang mga CPU (x86 hindi bababa). Hindi sa x86-64, bagaman (hindi ito pinapagana sa bawat default doon).
- Hawakan ang out-of-disk sa mga manunulat ng file (isang bit, tingnan ang http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=67259)
- Nagdagdag ng mga file ng proyekto ng Xcode upang bumuo ng libmpg123 sa Mac OS at iOS
- 32 bit output para sa sndio output (patch ni Brad Smith).
- Alam ng remote control interface ang LOADLIST command ngayon.
- Nagbibigay ng libreng memorya ng meta data pagkatapos ng printout.
- Ang ilang mga paglilinis ng dokumentasyon, kabilang ang mga pag-aayos ng manpage sa pamamagitan ng quadrispro.
- Pinapagana ang pagpapalawak ng wildcard sa Windows (na nasira ng unicode na suporta sa pangalan ng file).
- Ayusin ang MMX tabinit syntax (salamat kay Marcel Muller para sa pagturo ng out na iyon).
- Ayusin ang audio output ng SGI (nasira mula noong pagbabago sa mga module).
- Ayusin ang ilang mga pag-uugali ng palawit (mpg123_getformat () na nagpapalitaw ng hindi nangangailangan na pagbabasa ng susunod na frame, posibleng pagpasok ng mga bogus na MPG123_NEED_MORE).
- Ang limitasyon ng Resync ngayon ay nagsisilbi din upang madagdagan ang dami ng nilaktawan na basura sa simula.
- Mas mahusay na paghihiwalay ng dulo ng stream at basahin ang error (kung hindi binuksan ang stream, kahit na).
- Huwag palaging magreklamo tungkol sa nabigong libreng paghahanap ng header ng format (tanging may antas ng pagkakamali 3).
Mga Komento hindi natagpuan