mpg123

Software Screenshot:
mpg123
Software Details:
Version: 1.25.10 updated
Upload Date: 17 Aug 18
Developer: RedLabel
Distribution Type: Freeware
Downloads: 82

Rating: 3.3/5 (Total Votes: 3)

Believe it or not, mpg123 is an open source command-line music playback software capable of decoding and playing MPEG Audio Layer 1, 2 and 3 files, which are popularly known as MP3s, designed to run entirely in a Linux console.

Features at a glance

Key features include an audio decoding library for the MPEG Audio Layer 1, 2 and 3, real time audio player for the MPEG 1.0, 2.0 and 2.5 formats, floating point and integer math support, high-quality and fast audio playback, as well as support for a wide range of Linux and UNIX-like operating systems.

Command-line options

Among the application's built-in command-line options, we can mention the ability to write output to a WAV file, skip first n frames, downsample 1:2 (22 kHz), play every n'th frame only, mix both channels (mono), enable control keys, shuffle play (with wildcards), read URLs, decode channel 0 (left) only, use HTTP authentication, set the output buffer, set or force the samplerate, and check range violations.

Under the hood and availability

While the application is written entirely in the C programming language, it uses several special optimizations like SSE, 3DNow or ARM, and supports GNU/Linux, BSD, Solaris, AIX, OS/2, HP-UX, SGI Irix, Mac OS X, Microsoft Windows operating systems.

It is available for download as a source archive, which means that the user must configure, compile and install the application via the Linux/UNIX command-line. However, it can be easily installed from the default software repositories of many Linux OSes.

Bottom line

Summing up, we have no idea who will this command-line audio player in a world full of modern graphical user interfaces, but we are quite certain that mpg123 offers a very good audio quality and it's extremely easy to use even if you hate the Linux Terminal.

What is new in this release:

  • libout123: Fix error messages beginning from OUT123_ARG_ERROR (bug 261).
  • mpg123: Fix --icy-interval handling to work with stream from stdin. (curl | mpg123 --icy-interval=n -)
  • libmpg123: Fix another invalid read and segfault on damaged (fuzzed) files with part2_3_length == 0 (set maxband=1, pulled from upcoming 1.26.0).

What is new in version 1.25.3:

  • Silence test for artsc-config if it is not there.
  • Make sure -static-libgcc from LDFLAGS gets through libtool, fixing 32 bit Windows builds (depend on libgcc DLL otherwise).
  • Fix build with non-GNU make by using plain rm -f instead of silly $(RM) in libout123/modules makefile fragment.
  • Make build work on iOS, including coreaudio backend.
  • libmpg123:
  • Finally provide position-independent code for x86 with assembly optimisations. The textrels are gone thanks to Won Kyu Park and Taihei Momma.
  • Clarify some license language in files descending from the original MMX optimisation.
  • Fix return value overflow check for MPG123_BUFFERFILL.
  • Introduced mpg123_getformat2() to enable the FORMAT command for the generic control not stealing MPG123_NEW_FORMAT from the main playback loop. The sequence LOADPAUSED-FORMAT-PAUSE (play) is supposed to work now.
  • Enable aarch64 optimisations on *BSD by default, too. You can always override that stupid OS whitelist using --with-optimization, anyway.
  • Use of the i486 decoder is now discouraged more prominently, in configure output.
  • out123: Fix stupid crash with verbose mode and tone generation (print the string if the pointer is non-null, not if it is null).
  • libout123: More consistent error messages for dynamic and legacy (built-in) modules. Namely, you get a hint how if you choose a different module than the built-in ones for a static libout123.

What is new in version 1.25.0:

  • Silence test for artsc-config if it is not there.
  • Make sure -static-libgcc from LDFLAGS gets through libtool, fixing 32 bit Windows builds (depend on libgcc DLL otherwise).
  • Fix build with non-GNU make by using plain rm -f instead of silly $(RM) in libout123/modules makefile fragment.
  • Make build work on iOS, including coreaudio backend.
  • libmpg123:
  • Finally provide position-independent code for x86 with assembly optimisations. The textrels are gone thanks to Won Kyu Park and Taihei Momma.
  • Clarify some license language in files descending from the original MMX optimisation.
  • Fix return value overflow check for MPG123_BUFFERFILL.
  • Introduced mpg123_getformat2() to enable the FORMAT command for the generic control not stealing MPG123_NEW_FORMAT from the main playback loop. The sequence LOADPAUSED-FORMAT-PAUSE (play) is supposed to work now.
  • Enable aarch64 optimisations on *BSD by default, too. You can always override that stupid OS whitelist using --with-optimization, anyway.
  • Use of the i486 decoder is now discouraged more prominently, in configure output.
  • out123: Fix stupid crash with verbose mode and tone generation (print the string if the pointer is non-null, not if it is null).
  • libout123: More consistent error messages for dynamic and legacy (built-in) modules. Namely, you get a hint how if you choose a different module than the built-in ones for a static libout123.

What is new in version 1.23.6:

  • call out123_pause() instead of out123_stop() in remote control STOP command, fixing the regression in 1.23.x of not being able to resume playback with another LOAD unless the new track has differing audio format (bug 234)

What is new in version 1.23.5:

  • libout123:
  • fix build of portaudio and SDL on win32 (too many parentheses, thanks to Sandro Cumerlato for pointing it out)
  • make out123_errcode() return OUT123_BAD_HANDLE as documented (adding that value to the error enum, was documented but missing), again thanks to Sandro
  • fix windows-builds.sh (shell quoting in copying stage) and add some bits to shipped header to make it directly usable in MSVC (define ssize_t, bug 232)
  • no overwriting of LIBS in Makefile (build system regression in 1.23, thanks to Peter Korsgaard for reporting that one)
  • no printing of message in response to SIGPIPE, as that could trigger a hang if stderr itself is the piped culprit (regression from 1.22, bug 233)

What is new in version 1.23.3:

  • This is a stop-gap release including the fix for bug 216, avoiding spurious surrogate detection with UTF-16 in ID3v2 data.
  • There are some interesting changes in trunk awaiting release with the next feature version, which shall include libout123 and general build system fixup (non-recursive make).

What is new in version 1.22.3:

  • This is a stop-gap release including the fix for bug 216, avoiding spurious surrogate detection with UTF-16 in ID3v2 data.
  • There are some interesting changes in trunk awaiting release with the next feature version, which shall include libout123 and general build system fixup (non-recursive make).

What is new in version 1.22.1:

  • Fix mpg123-id3dump when writing images with funny (manipulated) MIME type. Stupid mistake in length computation of the fallback file extension caused junk from memory being appended to the filename if the pointer size is less than 64 bit. For 64 bit pointers (or longer) it was correct by accident.
  • Fix pedantic build by cleaning up out123 source, also now really showing the encoding list in --longhelp instead of possibly, again, writing junk from memory in there.
  • Not linking libmpg123 against libltdl anymore (bug 215).
  • Update MSVC++ ports a bit to make them work again.

What is new in version 1.21.0:

  • Use LL as shortcut for LOADLIST remote command, L is taken already (bug 210).
  • Less namespace pollution (MPG123_EXPORT in header instead of EXPORT, bug 212).

What is new in version 1.20.1:

  • The newest releas makes the feed reader more efficient when skipping junk by early discarding of data from buffers to avoid re-parsing. The previous behaviour interacted badly with certain input (see gentoo bug 465744).

What is new in version 1.20.0:

  • Added NEON optimized decoder for AArch64 (ARM 64bit environment):
  • enabled for --with-cpu=neon64 (NEON only) or --with-cpu=aarch64 (runtime switch between neon and generic_fpu, like arm_fpu) configuration
  • compatible with aarch64-linux-gnu toolchains (from Ubuntu, debian) and Xcode 5
  • Added new binary out123 only with the audio output part of mpg123. This is a precursor to separating out said code into a simple audio output library. It also allows plugging in some processing in a pipe before feeding to output.
  • Prevent opendir(NULL) for unknown module directory when listing modules.
  • some build fixes, among those fixing mpg123-id3dump on Windows

What is new in version 1.18.1:

  • Do not close buffer twice with mpg123 -R (delete outdated code in control_generic()), fixing bug 207.
  • Do not mess around with first command line argument to extract program name, use a copy instead, fixing bug 205.
  • Prevent premature exit on timing of failure to open a track in the playlist and the user wanting to skip over it (bug 206).
  • Fixup of HTTP socket mess, also avoiding unnecessary FILE objects (bug 204, patch by Rajeev V. Pillai).
  • Fix playlist behaviour on slow HTTP streams, jumping back ('d' key) from first track stays at first track (thanks to Rajeev again, sub-bug of bug 206).
  • Fix Frankenstein check not to stumble over ID3v1 tags. My apologies. As a bonus, the position of the concerned code in the parser is now far more logical.

What is new in version 1.17.0:

  • mpg123-id3dump --no-scan; for speedup
  • hide -C parameter from mpg123 --help when it is not supported
  • added tinyalsa Output (by Jarno Lehtinen)
  • build system tweaking
  • some care for fixing Cygwin builds

What is new in version 1.16.0:

  • New Huffman decoding scheme (configurable, on by default) brings nice boost to mpg123 to make it the fastest decoder on modern CPUs again.
  • new AVX decoder
  • assembly-optimized DCT36 for SSE and AVX
  • added configs for vintage 3DNow(ext) CPUs (AMD K6) utilizing assembly DCT36
  • added configs for vintage SSE CPUs (Pentium M), utilizing C DCT36
  • added FORMAT command to generic control
  • added support for ID3v2 APIC frames
  • added mpg123-id3dump as official companion to extract meta data (including writing of album art from APIC to files)
  • added mpg123-strip as official companion to strip dirt out of MPEG streams (including meta data)
  • not deleting ID3 data right after printing in generic control
  • module loader a bit more flexible with relative MPG123_MODDIR
  • Fix chopped-off playback with pulseaudio output: draining the output now on closing.
  • SDL output fixup, a) not chopping off end and b) non-fatal underrun
  • Fix obvious errors in win32 output ... does it now play the end of tracks? Need someone to test this.
  • added support for screen and iris-ansi terminals with --title (as prompted by patch from sf.net user canavan)
  • fixes/enhancements for sgi audio output
  • libmpg123: proper largefile aliases for proper systems (FreeBSD with one one-and-only off_t
  • This enables client software that insists on defining pointless _FILE_OFFSET_BITS.
  • wrapper script src/mpg123-with-modules to ease the pain of running mpg123 with modules without installation (setting MPG123_MODDIR)
  • removed ALSA 0.5 code (unused for longtime, last GPL-only bit)

What is new in version 1.14.2:

  • With the 1.14 series, in an attempt to better handle out-of-disk situations, the WAV writing code got changed and that broke writing of WAVs to standard output (raw data with a single WAV header in front). This shall work again with the current release.

What is new in version 1.14.1:

  • This one fixes a bug that got uncovered with the (modest) reorganization of the parser code. With the feeder API, it was possible to miss a format change in the (damaged) stream, the more dire outcome being the allocated output buffer being too small (switching from MPEG layer 3 with 576 samples per frame to 1152 samples per frame).

What is new in version 1.14.0:

  • libmpg123 API version 36 (see NEWS.libmpg123)
  • Add --ignore-streamlength.
  • But also deal with concatenated (Frankenstein) streams: Not applying gapless cutting once we're over the announced number of frames.
  • Add --lyrics for printout of lyrics (from USLT in ID3v2).
  • Added handling of SIGUSR1 and SIGUSER2 to terminal control code, configurable via --ctrlusr1 and --ctrlusr2.
  • Some low-level API added (mpg123_framedata(), mpg123_framepos(), buffering and resampling control).
  • Added info about input buffer fill to mpg123_getstate().
  • ReplayGain: Try to detect LAME below 3.95 for the different reference level of 83 dB (adding preamp of 6 dB). Version 3.95 itself (not 3.95.1) I cannot detect. User-set gain values are not touched.
  • Keep silent about missing bit reservoir when ignoring frames. That is the whole point (mostly;-).
  • Add the new/old WRITE_SAMPLE variant from MPlayer that makes the generic decoder faster on older CPUs (x86 at least). Not on x86-64, though (it's not enabled per default there).
  • Handle out-of-disk in the file writers (a bit, see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=67259)
  • Added Xcode project files to build libmpg123 on Mac OS and iOS
  • 32 bit output for sndio output (patch by Brad Smith).
  • Remote control interface knows LOADLIST command now.
  • Now freeing meta data memory after printout.
  • Some documentation cleanup, including manpage fixes by quadrispro.
  • Re-enabled wildcard expansion on Windows (been broken by unicode file name support).
  • Fix MMX tabinit syntax (thanks to Marcel Muller for pointing that out).
  • Fix SGI audio output (been broken since change to modules).
  • Fix some fringe behaviour (mpg123_getformat() triggering needless reading of next frame, possibly hitting bogus MPG123_NEED_MORE).
  • Resync limit now also serves to increase amount of skipped junk on beginning.
  • Better separation of stream end and read error (in case there is no stream opened, even).
  • Don't always complain about failed free format header search (only with verbosity level 3).

Similar Software

somaplayer
somaplayer

3 Jun 15

ocenaudio
ocenaudio

28 Sep 15

Oddcast
Oddcast

3 Jun 15

Comments to mpg123

Comments not found
Add Comment
Turn on images!