Provided by: mpg123_1.29.3-1ubuntu0.1_amd64 bug

NAME

       mpg123 - play audio MPEG 1.0/2.0/2.5 stream (layers 1, 2 and 3)

SYNOPSIS

       mpg123 [ options ] file-or-URL...

DESCRIPTION

       mpg123  reads  one  or more files (or standard input if ``-'' is specified) or URLs and plays them on the
       audio device (default) or outputs them to stdout.  file/URL is assumed to be an MPEG audio bit stream.

OPERANDS

       The following operands are supported:

       file(s) The path name(s) of one or more input files.  They must be valid MPEG-1.0/2.0/2.5 audio layer  1,
               2  or  3  bit  streams.   If  a dash ``-'' is specified, MPEG data will be read from the standard
               input.  Furthermore, any name starting with ``http://'' is recognized as URL (see next section).

OPTIONS

       mpg123 options may be either the traditional POSIX one letter options, or the  GNU  style  long  options.
       POSIX  style  options  start  with  a  single  ``-'',  while  GNU long options start with ``--''.  Option
       arguments (if needed) follow separated by whitespace (not ``='').  Note that some options can  be  absent
       from your installation when disabled in the build process.

INPUT OPTIONS

       -k num, --skip num
              Skip first num frames.  By default the decoding starts at the first frame.

       -n num, --frames num
              Decode only num frames.  By default the complete stream is decoded.

       --fuzzy
              Enable  fuzzy  seeks  (guessing  byte  offsets  or  using  approximate seek points from Xing TOC).
              Without that, seeks need a first scan through the file before they can jump at positions.  You can
              decide here: sample-accurate operation with gapless features or faster (fuzzy) seeking.

       -y, --no-resync
              Do NOT try to resync and continue decoding if an error occurs in the input file. Normally,  mpg123
              tries  to  keep the playback alive at all costs, including skipping invalid material and searching
              new header when something goes wrong.  With this switch you can make it bail out  on  data  errors
              (and  perhaps  spare  your ears a bad time). Note that this switch has been renamed from --resync.
              The old name still works, but is not advertised or recommended  to  use  (subject  to  removal  in
              future).

       -F, --no-frankenstein
              Disable support for Frankenstein streams. Normally, mpg123 stays true to the concept of MPEG audio
              being  just  a  concatenation  of  MPEG frames. It will continue decoding even if the type of MPEG
              frames varies wildly. With this switch, it will only decode the input  as  long  as  it  does  not
              change  its  character  (from  layer I to layer III, changing sampling rate, from mono to stereo),
              silently assuming end of stream on such occasion. The switch also  stops  decoding  of  compatible
              MPEG  frames  if  there  was  an Info frame (Xing header, Lame tag) that contained a length of the
              track in MPEG frames.  This comes a bit closer to the notion of a MP3 file as a defined collection
              of MPEG frames that belong together, but gets rid of the flexibility that can be fun at times  but
              mostly is hell for the programmer of the parser and decoder ...

       --resync-limit bytes
              Set  number  of  bytes  to  search  for valid MPEG data once lost in stream; <0 means search whole
              stream.  If you know there are huge chunks of invalid data in your files... here is  your  hammer.
              Note: Only since version 1.14 this also increases the amount of junk skipped on beginning.

       -p URL | none, --proxy URL | none
              The  specified  proxy  will  be  used  for  HTTP  requests.   It  should  be specified as full URL
              (``http://host.domain:port/''), but the ``http://'' prefix, the port number and the trailing slash
              are optional (the default port is 80).  Specifying none  means  not  to  use  any  proxy,  and  to
              retrieve files directly from the respective servers.  See also the ``HTTP SUPPORT'' section.

       -u auth, --auth auth
              HTTP authentication to use when receiving files via HTTP.  The format used is user:password.

       --ignore-mime
              Ignore MIME types given by HTTP server. If you know better and want mpg123 to decode something the
              server thinks is image/png, then just do it.

       --no-icy-meta
              Do not accept ICY meta data.

       --streamdump filename
              Dump a copy of the input data (as read by libmpg123) to the given file.  This enables you to store
              a web stream to disk while playing, or just create a concatenation of the local files you play for
              ... why not?

       --icy-interval bytes
              This  setting  enables  you to play a stream dump containing ICY metadata at the given interval in
              bytes (the value of the icy-metaint HTTP response header). Without it, such a  stream  will  play,
              but will cause regular decoding glitches with resync.

       --no-seekbuffer
              Disable the default micro-buffering of non-seekable streams that gives the parser a safer footing.

       -@ file, --list file
              Read  filenames  and/or URLs of MPEG audio streams from the specified file in addition to the ones
              specified on the command line (if any).  Note that file can be either an  ordinary  file,  a  dash
              ``-''  to  indicate that a list of filenames/URLs is to be read from the standard input, or an URL
              pointing to a an appropriate list file.  Note: only one -@ option can be used (if more than one is
              specified, only the last one will be recognized).

       -l n, --listentry n
              Of the playlist, play specified entry only.  n is the number of entry starting at 1. A value of  0
              is  the  default  and means playing the whole list,  a negative value means showing of the list of
              titles with their numbers...

       --continue
              Enable playlist continuation mode. This changes frame skipping to apply only to  the  first  track
              and  also  continues to play following tracks in playlist after the selected one. Also, the option
              to play a number of frames only applies to the whole playlist. Basically, this tries to treat  the
              playlist  more  like  one  big  stream  (like,  an  audio book).  The current track number in list
              (1-based) and frame number (0-based) are printed at exit (useful if you interrupted  playback  and
              want to continue later).  Note that the continuation info is printed to standard output unless the
              switch  for  piping  audio  data to standard out is used. Also, it really makes sense to work with
              actual playlist files instead of lists of  file  names  as  arguments,  to  keep  track  positions
              consistent.

       --loop times
              for looping track(s) a certain number of times, < 0 means infinite loop (not with --random!).

       --keep-open
              For remote control mode: Keep loaded file open after reaching end.

       --timeout seconds
              Timeout in (integer) seconds before declaring a stream dead (if <= 0, wait forever).

       -z, --shuffle
              Shuffle  play.  Randomly shuffles the order of files specified on the command line, or in the list
              file.

       -Z, --random
              Continuous random play.  Keeps picking a random file from the  command  line  or  the  play  list.
              Unlike shuffle play above, random play never ends, and plays individual songs more than once.

       -i, --index
              Index  /  scan  through  the  track  before  playback.  This fills the index table for seeking (if
              enabled in libmpg123) and may make the operating system  cache  the  file  contents  for  smoother
              operating on playback.

       --index-size size
              Set the number of entries in the seek frame index table.

       --preframes num
              Set  the  number of frames to be read as lead-in before a seeked-to position.  This serves to fill
              the layer 3 bit reservoir, which is needed to faithfully reproduce a certain sample at  a  certain
              position.   Note  that for layer 3, a minimum of 1 is enforced (because of frame overlap), and for
              layer 1 and 2, this is limited to 2 (no bit reservoir in that case, but engine spin-up anyway).

OUTPUT and PROCESSING OPTIONS

       -o module, --output module
              Select audio output module. You can provide a comma-separated list  to  use  the  first  one  that
              works.  Also see -a.

       --list-modules
              List the available modules.

       --list-devices
              List  the  available  output devices for given output module. If there is no functionality to list
              devices in the chosen module, an error will be printed and mpg123 will exit with a non-zero code.

       -a dev, --audiodevice dev
              Specify the audio device to use.  The default as well as the possible values depend on the  active
              output.  For the JACK output, a comma-separated list of ports to connect to (for each channel) can
              be specified.

       -s, --stdout
              The decoded audio samples are written to standard output, instead  of  playing  them  through  the
              audio  device.   This  option must be used if your audio hardware is not supported by mpg123.  The
              output format per default is raw (headerless) linear PCM audio data, 16  bit,  stereo,  host  byte
              order (you can force mono or 8bit).

       -O file, --outfile
              Write  raw  output  into  a file (instead of simply redirecting standard output to a file with the
              shell).

       -w file, --wav
              Write output as WAV file. This will cause the MPEG stream to be decoded and saved as file  file  ,
              or  standard  output  if  -  is  used as file name. You can also use --au and --cdr for AU and CDR
              format, respectively. Note that WAV/AU writing to non-seekable files, or redirected stdout,  needs
              some  thought.  Since  1.16.0, the logic changed to writing the header with the first actual data.
              This avoids spurious WAV headers in a pipe, for example. The result of decoding nothing to  WAV/AU
              is  a file consisting just of the header when it is seekable and really nothing when not (not even
              a header). Correctly writing data with prophetic headers to stdout is no easy business.

       --au file
              Does not play the MPEG file but writes it to file in SUN audio  format.   If  -  is  used  as  the
              filename,  the  AU  file is written to stdout. See paragraph about WAV writing for header fun with
              non-seekable streams.

       --cdr file
              Does not play the MPEG file but writes it to file as a CDR file.  If - is used  as  the  filename,
              the CDR file is written to stdout.

       --reopen
              Forces reopen of the audiodevice after ever song

       --cpu decoder-type
              Selects  a  certain  decoder  (optimized  for specific CPU), for example i586 or MMX.  The list of
              available decoders can vary; depending on the build and what your CPU supports.   This  option  is
              only available when the build actually includes several optimized decoders.

       --test-cpu
              Tests your CPU and prints a list of possible choices for --cpu.

       --list-cpu
              Lists all available decoder choices, regardless of support by your CPU.

       -g gain, --gain gain
              [DEPRECATED] Set audio hardware output gain (default: don't change). The unit of the gain value is
              hardware   and   output  module  dependent.   (This  parameter  is  only  provided  for  backwards
              compatibility and may be removed in the future without prior notice.  Use  the  audio  player  for
              playing and a mixer app for mixing, UNIX style!)

       -f factor, --scale factor
              Change scale factor (default: 32768).

       --rva-mix, --rva-radio
              Enable  RVA  (relative  volume adjustment) using the values stored for ReplayGain radio mode / mix
              mode with all tracks roughly equal loudness.  The first valid  information  found  in  ID3V2  Tags
              (Comment named RVA or the RVA2 frame) or ReplayGain header in Lame/Info Tag is used.

       --rva-album, --rva-audiophile
              Enable  RVA  (relative volume adjustment) using the values stored for ReplayGain audiophile mode /
              album mode with usually the effect of adjusting  album  loudness  but  keeping  relative  loudness
              inside  album.   The  first  valid information found in ID3V2 Tags (Comment named RVA_ALBUM or the
              RVA2 frame) or ReplayGain header in Lame/Info Tag is used.

       -0, --single0; -1, --single1
              Decode only channel 0 (left) or channel 1 (right), respectively.  These options are available  for
              stereo MPEG streams only.

       -m, --mono, --mix, --singlemix
              Mix both channels / decode mono. It takes less CPU time than full stereo decoding.

       --stereo
              Force stereo output

       -r rate, --rate rate
              Set  sample rate (default: automatic).  You may want to change this if you need a constant bitrate
              independent of the mpeg stream rate. mpg123 automagically  converts  the  rate.  You  should  then
              combine this with --stereo or --mono.

       --resample method
              Set  resampling  method  to employ if forcing an output rate. Choices (case-insensitive) are NtoM,
              dirty, and fine. The fine resampler is the default.  It  employs  libsyn123's  low-latency  fairly
              efficient  resampler  to  postprocess the output from libmpg123 instead of the fast but very crude
              NtoM decoder (drop sample method) that mpg123 offers since decades. If you are really low  on  CPU
              time,  choose  NtoM,  as  the resampler usually needs more time than the MPEG decoder itself.  The
              mpg123 program is  smart  enough  to  combine  the  2to1  or  4to1  downsampling  modes  with  the
              postprocessing for extreme downsampling.

       -2, --2to1; -4, --4to1
              Performs  a downsampling of ratio 2:1 (22 kHz from 44.1 kHz) or 4:1 (11 kHz) on the output stream,
              respectively. Saves some CPU cycles, but of course  throws  away  the  high  frequencies,  as  the
              decoder does not bother producing them.

       --pitch value
              Set a pitch change (speedup/down, 0 is neutral; 0.05 is 5% speedup).  When not enforcing an output
              rate,  this  changes  the  output  sampling  rate,  so  it  only  works  in  the  range your audio
              system/hardware supports. When you combine this with a fixed output rate, it modifies  a  software
              resampling ratio instead.

       --8bit Forces 8bit output

       --float
              Forces f32 encoding

       -e enc, --encoding enc
              Choose  output sample encoding. Possible values look like f32 (32-bit floating point), s32 (32-bit
              signed integer), u32 (32-bit unsigned integer) and the variants with  different  numbers  of  bits
              (s24,  u24,  s16, u16, s8, u8) and also special variants like ulaw and alaw 8-bit.  See the output
              of mpg123's longhelp for actually available encodings.

       -d n, --doublespeed n
              Only play every n'th frame.  This will cause the MPEG stream to be played n  times  faster,  which
              can  be  used for special effects.  Can also be combined with the --halfspeed option to play 3 out
              of 4 frames etc.  Don't expect great sound quality when using this option.

       -h n, --halfspeed n
              Play each frame n times.  This will cause the MPEG stream to be played at 1/n'th  speed  (n  times
              slower), which can be used for special effects. Can also be combined with the --doublespeed option
              to double every third frame or things like that.  Don't expect great sound quality when using this
              option.

       -E file, --equalizer
              Enables  equalization,  taken  from  file.  The file needs to contain 32 lines of data, additional
              comment lines may be prefixed with #.  Each data line  consists  of  two  floating-point  entries,
              separated  by  whitespace.   They  specify the multipliers for left and right channel of a certain
              frequency band, respectively.  The first line corresponds to the lowest, the 32nd to  the  highest
              frequency  band.   Note  that you can control the equalizer interactively with the generic control
              interface.  Also note that these are the 32 bands of the MPEG codec, not spaced like you would see
              for a usual graphic equalizer. The upside is that there is zero computational cost in addition  to
              decoding.  The downside is that you roughly have bass in band 0, (upper) mids in band 1, treble in
              all others.

       --gapless
              Enable code that cuts (junk) samples at beginning and end of tracks, enabling gapless  transitions
              between  MPEG  files  when encoder padding and codec delays would prevent it.  This is enabled per
              default beginning with mpg123 version 1.0.0 .

       --no-gapless
              Disable the gapless code. That gives you MP3 decodings that include encoder delay and padding plus
              mpg123's decoder delay.

       --no-infoframe
              Do not parse the Xing/Lame/VBR/Info frame, decode it instead just like a stupid old  MP3  hardware
              player.   This  implies  disabling  of  gapless  playback  as the necessary information is in said
              metadata frame.

       -D n, --delay n
              Insert a delay of n seconds before each track.

       -o h, --headphones
              Direct audio output to the headphone connector (some hardware only; AIX, HP, SUN).

       -o s, --speaker
              Direct audio output to the speaker  (some hardware only; AIX, HP, SUN).

       -o l, --lineout
              Direct audio output to the line-out connector (some hardware only; AIX, HP, SUN).

       -b size, --buffer size
              Use an audio output buffer of size Kbytes.  This is useful to bypass short periods of heavy system
              activity, which would normally cause the audio output to be interrupted.   You  should  specify  a
              buffer size of at least 1024 (i.e. 1 Mb, which equals about 6 seconds of audio data) or more; less
              than about 300 does not make much sense.  The default is 0, which turns buffering off.

       --preload fraction
              Wait  for the buffer to be filled to fraction before starting playback (fraction between 0 and 1).
              You can tune this prebuffering to either get faster sound to your ears or safer uninterrupted  web
              radio.  Default is 0.2 (wait for 20 % of buffer to be full, changed from 1 in version 1.23).

       --devbuffer seconds
              Set  device  buffer  in  seconds;  <=  0 means default value. This is the small buffer between the
              application and the audio backend, possibly directly related to hardware buffers.

       --smooth
              Keep buffer over track boundaries -- meaning, do not empty the buffer between tracks for  possibly
              some added smoothness.

MISC OPTIONS

       -t, --test
              Test mode.  The audio stream is decoded, but no output occurs.

       -c, --check
              Check for filter range violations (clipping), and report them for each frame if any occur.

       -v, --verbose
              Increase the verbosity level.  For example, displays the frame numbers during decoding.

       -q, --quiet
              Quiet.  Suppress diagnostic messages.

       -C, --control
              Enable terminal control keys. This is enabled automatically if a terminal is detected.  By default
              use  's'  or  the  space bar to stop/restart (pause, unpause) playback, 'f' to jump forward to the
              next song, 'b' to jump back to the beginning of the song, ',' to rewind, '.' to fast forward,  and
              'q' to quit.  Type 'h' for a full list of available controls.

       --no-control
              Disable terminal control even if terminal is detected.

       --title
              In  an  xterm, rxvt, screen, iris-ansi (compatible, TERM environment variable is examined), change
              the window's title to the name of song currently playing.

       --name name
              Set the name of this instance, possibly used in various places. This sets the client name for JACK
              output.

       --long-tag
              Display ID3 tag info always in long format with one line per item (artist, title, ...)

       --utf8 Regardless of environment, print metadata in UTF-8 (otherwise, when not using UTF-8 locale, you'll
              get ASCII stripdown).

       -R, --remote
              Activate generic control interface.  mpg123 will then read and execute commands from stdin.  Basic
              usage  is  ``load  <filename>  ''  to play some file and the obvious ``pause'', ``command.  ``jump
              <frame>'' will jump/seek to a given point (MPEG frame number).  Issue ``help'' to get a full  list
              of commands and syntax.

       --remote-err
              Print  responses  for  generic  control  mode  to  standard  error,  not  standard  out.   This is
              automatically triggered when using -s.

       --fifo path
              Create a fifo / named pipe on the given path and use that for reading commands instead of standard
              input.

       --aggressive
              Tries to get higher priority

       -T, --realtime
              Tries to gain realtime priority.  This option usually requires root privileges to have any effect.

       -?, --help
              Shows short usage instructions.

       --longhelp
              Shows long usage instructions.

       --version
              Print the version string.

HTTP SUPPORT

       In addition to reading MPEG audio streams from  ordinary  files  and  from  the  standard  input,  mpg123
       supports  retrieval  of  MPEG  audio files or playlists via the HTTP protocol, which is used in the World
       Wide Web (WWW).  Such files are specified using a so-called URL, which starts with ``http://''.   When  a
       file  with  that prefix is encountered, mpg123 attempts to open an HTTP connection to the server in order
       to retrieve that file to decode and play it.

       It is often useful to retrieve files through a WWW cache or so-called proxy.  To accomplish this,  mpg123
       examines  the  environment  for variables named MP3_HTTP_PROXY, http_proxy and HTTP_PROXY, in this order.
       The value of the first one that is set will be used as proxy specification.  To override  this,  you  can
       use the -p command line option (see the ``OPTIONS'' section).  Specifying -p none will enforce contacting
       the server directly without using any proxy, even if one of the above environment variables is set.

       Note  that,  in  order to play MPEG audio files from a WWW server, it is necessary that the connection to
       that server is fast enough.  For example, a 128 kbit/s MPEG file requires the network connection to be at
       least 128 kbit/s (16 kbyte/s) plus protocol overhead.  If you suffer  from  short  network  outages,  you
       should  try  the  -b option (buffer) to bypass such outages.  If your network connection is generally not
       fast enough to retrieve MPEG audio files in realtime, you can first download  the  files  to  your  local
       harddisk (e.g. using wget(1)) and then play them from there.

       If authentication is needed to access the file it can be specified with the -u user:pass.

INTERRUPT

       When  in  terminal control mode, you can quit via pressing the q key, while any time you can abort mpg123
       by pressing Ctrl-C. If not in terminal control mode, this will skip to the next file  (if  any).  If  you
       want  to abort playing immediately in that case, press Ctrl-C twice in short succession (within about one
       second).

       Note that the result of quitting mpg123 pressing Ctrl-C might not be audible immediately,  due  to  audio
       data  buffering in the audio device.  This delay is system dependent, but it is usually not more than one
       or two seconds.

PLAYBACK STATUS LINE

       In verbose mode, mpg123 updates a line with various information centering  around  the  current  playback
       position.  On any decent terminal, the line also works as a progress bar in the current file by reversing
       video for a fraction of the line according to the current position. An example for a full line is this:

            > 0291+0955  00:01.68+00:28.22 [00:05.30] mix 100=085 192 kb/s  576 B acc   18 clip p+0.014

       The information consists of, in order:

       >      single-character playback state (``>'' for playing, ``='' for pausing/looping, ``_'' for stopped)

       0291+0955
              current frame offset and number of remaining frames after the plus sign

       00:01.68+00:28.22
              current position from and remaining time in human terms (hours, minutes, seconds)

       [00:05.30]
              fill of the output buffer in terms of playback time, if the buffer is enabled

       mix    selected RVA mode (possible values: mix, alb (album), and --- (neutral, off))

       100=085
              set volume and the RVA-modified effective volume after the equal sign

       192 kb/s
              current bitrate

       576 B  size of current frame in bytes

       acc    if positions are accurate, possible values are ``acc'' for accurate positions or ``fuz'' for fuzzy
              (with guessed byte offsets using mean frame size)

       18 clip
              amount of clipped samples, non-zero only if decoder reports that  (generic  does,  some  optimized
              ones not)

       p+0.014
              pitch change (increased/decreased playback sampling rate on user request)

NOTES

       MPEG  audio  decoding  requires  a  good  deal  of  CPU performance, especially layer-3.  To decode it in
       realtime, you should have at least an i486DX4, Pentium, Alpha, SuperSparc or equivalent  processor.   You
       can  also use the -m option to decode mono only, which reduces the CPU load somewhat for layer-3 streams.
       See also the -2 and -4 options.

       If everything else fails, have mpg123 decode to a file and then use an appropriate utility to  play  that
       file  with  less  CPU load.  Most probably you can configure mpg123 to produce a format suitable for your
       audio device (see above about encodings and sampling rates).

       If your system is generally fast enough to decode in realtime, but there are sometimes periods  of  heavy
       system  load (such as cronjobs, users logging in remotely, starting of ``big'' programs etc.) causing the
       audio output to be interrupted, then you should use the -b option to use a buffer of reasonable size  (at
       least 1000 Kbytes).

EXIT CODE

       Up  to version 1.25.x, mpg123 always returned exit code 0 also for complete junk on the input side. Fatal
       errors were only considered for output. With version 1.26.0, this  changed  to  the  behaviour  described
       below.

       When  not  using  the remote control interface (which returns input errors as text messages), the process
       exit code is zero (success) only if all tracks in a playlist had at least one frame parsed,  even  if  it
       did  not  decode cleanly, or are empty, MPEG-wise (perhaps only metadata, or really an empty file).  When
       you decode nothing, nothing is the result and that is fine. When a track later aborts because  of  parser
       errors  or  breakdown  of the network communication, this is treated as end of a track, but does not make
       the process as such fail. One really bad (or non-existing) stream in the playlist results in  a  non-zero
       error code, consistent with other UNIX tools.

       An  error in audio output results in the process ending with a non-zero exit code immediately, regardless
       of how much data has been successfully played before. The forgiveness is only on the input side.

BUGS

       Mostly MPEG-1 layer 2 and 3 are tested in real life.  Please report any issues and provide test files  to
       help fixing them.

       No CRC error checking is performed.

       Some platforms lack audio hardware support; you may be able to use the -s switch to feed the decoded data
       to a program that can play it on your audio device.

AUTHORS

       Maintainer:
              Thomas Orgis <maintainer@mpg123.org>, <thomas@orgis.org>

       Original Creator:
              Michael Hipp

       Uses code or ideas from various people, see the AUTHORS file accompanying the source code.

LICENSE

       mpg123 is licensed under the GNU Lesser/Library General Public License, LGPL, version 2.1 .

WEBSITE

       http://www.mpg123.org
       http://sourceforge.net/projects/mpg123

                                                   26 Apr 2020                                         mpg123(1)