mpg123(1)                                               mpg123(1)


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

SYNOPSIS
       mpg123  [ -tscvqy01m24 ] [ -b size ] [ -k num ] [ -n num ]
       [ -f factor ] [ -r rate ] [ -g gain ] [ -a dev ] [ -o s  |
       -o  h  | -o l ] [ -d n ] [ -h n ] [ -p proxy ] [ -@ file ]
       file ... | 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-1/2 audio bit stream.

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 ``--''.
       
       -t, --test
              Test mode.  The audio stream  is  decoded,  but  no
              output occurs.

       -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  is  raw (headerless) linear PCM audio data,
              16 bit, stereo, host byte order.

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

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

       -q, --quiet
              Quiet.  Suppress diagnostic messages.       
              
       -y, --resync
              Try to resync and continue  decoding  if  an  error
              occurs in the input file.  Also try to recover from
              certain broken headers.  Useful if you have a  bro-
              ken  MPEG  file,  on which mpg123 normally gives up
              saying `Illegal header'.  Be careful: Broken  loca-
              tions in MPEG files might cause sharp, loud pops or
              clicks, which might damage your speakers if  played
              too loud.




                           21 Apr 1997                          1





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

       -m, --singlemix
              Mix  both  channels.   This option is available for
              stereo MPEG layer-3 streams only.   It  takes  less
              CPU time than full stereo decoding.

       -2, --2to1; -4, --4to1
              Performs  a  downsampling  of ratio 2:1 (22 kHz) or
              4:1 (11 kHz) on the  output  stream,  respectively.
              Saves  some  CPU cycles, but at least the 4:1 ratio
              sounds ugly.

       -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 out-
              put 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.

       -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.

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

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


       -g gain, --gain gain              
              Set  audio  hardware  output  gain  (default: don't
              change).

       -a dev, --audiodevice dev
              Specify the audio device to use.   The  default  is
              system-dependent  (usually /dev/audio or /dev/dsp).
              Use this option if you have multiple audio  devices
              and the default is not what you want.



                           21 Apr 1997                          2





mpg123(1)                                               mpg123(1)


       -o s, --speaker
              Direct audio output to the speaker.       
              
       -o h, --headphones
              Direct audio output to the headphone connector.

       -o l, --lineout
              Direct audio output to the line-out connector.

       -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.

       -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 recieving files via
              HTTP.  The format used is user:password.

       -@ 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).

       -z, --shuffle
              Shuffle play.  Randomly shuffles the  files  speci-
              fied on the command line and in the list file.



                           21 Apr 1997                          3





mpg123(1)                                               mpg123(1)


       --stereo
              Force stereo output

       --reopen
              Forces reopen of the audiodevice after ever song              
              
       --8bit Forces 8bit output

       -Z, --random
              Full random play

OPERANDS
       The following operands are supported:

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

HTTP SUPPORT
       In addition to reading MPEG audio  streams  from  ordinary
       files   and  from  the  standard  input,  mpg123  supports
       retrieval of MPEG audio files via the HTTP protocol, which
       is used in the World Wide Web (WWW).  Such files are spec-
       ified using a so-called URL (universal resource location),
       which starts with ``http://''.  When a file with that pre-              
       fix is encountered, mpg123 attempts to open an  HTTP  con-
       nection  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 specifica-
       tion.   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 connec-
       tion 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  lynx(1))  and  then  play
       them from there.



                           21 Apr 1997                          4





mpg123(1)                                               mpg123(1)


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

INTERRUPT
       You can abort mpg123 at any time by pressing  Ctrl-C.   If
       you are playing multiple files, this will stop the current
       file and begin playing the next one.  If you want to abort
       playing  immediately instead of skipping to the next file,       
       press Ctrl-C twice in short succession (within  about  one
       second).

       Note that the result of pressing Ctrl-C might not be audi-
       ble 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.

SEE ALSO
       lynx(1), sox(1), intro(1)

NOTES
       MPEG audio decoding requires a good deal  of  CPU  perfor-
       mance,  especially layer-3.  To decode it in realtime, you
       should have at  least  a  Pentium,  Alpha,  SuperSparc  or
       equivalent  processor.   You  can  also use the -singlemix
       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, use the -s option to  decode  to
       standard  output,  direct  it  into a file and then use an
       appropriate utility to play that file.  You might have  to       
       use  a  tool  such  as  sox(1) to convert the output to an
       audio format suitable for your audio player.

       Also note that mpg123 always generates 16 bit stereo  data
       (if  one  of  the  -single* options is used, two identical
       stereo channels are generated).  If your hardware requires
       some  other  format, for example 8 bit mono, you also have
       to use a converter such as sox(1).

       If your system is generally fast enough to decode in real-
       time, 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 at least 1000 Kbytes.

BUGS
       Known bugs and limitations:
              MPEG-2,  Layer  1  and  2 not tested. May not work.
              (Layer 3 should work.)
              Free format streams are not supported.
              Layer-1 support is not heavily tested.
              No CRC error checking is performed.       
              


                           21 Apr 1997                          5





mpg123(1)                                               mpg123(1)


              There is currently no support for audio hardware on
              DEC Digital Unix, Ultrix and IBM AIX, therefore the
              -s option has to be used on those platforms.

AUTHORS
       Main author:
              Michael Hipp <hippm@informatik.uni-tuebingen.de>

       Uses code (or at least ideas) from:
              MPEG Software Simulation Group (Base package)
              Philipp Knirsch <phil@mpik-tueb.mpg.de> (DCT36/man-
              ual unroll)
              Tobias   Bading  <bading@cs.tu-berlin.de>  (subband
              synthesis)
              Jeff Tsay <ctsay@pasteur.eecs.berkeley.edu> (DCT36)
              Thomas Woerner (SGI Audio)
              Damien  Clermonte  <clermond@esiee.fr> (HP-UX audio
              fixes)
              Oliver Fromme <oliver.fromme@heim3.tu-clausthal.de>

       Internet references:
       http://www.sfs.nphil.uni-tuebingen.de/~hipp/mpg123.html
       http://www.heim3.tu-clausthal.de/~olli/mpg123/
       (includes information about the mpg123 mailing list)

       The latest version is also available from here:
       ftp.tu-clausthal.de:/pub/unix/audio/mpg123
       http://ftp.tu-clausthal.de/pub/unix/audio/mpg123              
       