Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
mpg123(1)		     General Commands Manual		       mpg123(1)

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 std-
     out.  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://'' or ``https://''  is
	     recognized  as  URL (see next section), while a leading ``file://''
	     is being stripped for normal local  file  access,	for  consistency
	     (since mpg123 1.30.1).

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  re-
	    moval 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 com-
	    patible 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  collec-
	    tion of MPEG frames that belong together, but gets rid of the flexi-
	    bility  that can be fun at times but mostly is hell for the program-
	    mer of the parser and decoder ...

     --network	backend
	    Select network  backend (helper program), choices are usually  auto,
	    wget, and curl.  Auto means to try the first available backend.

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

     -u auth, --auth auth
	    HTTP  authentication to use when receiving files via HTTP.	The for-
	    mat used is user:password. Mpg123 will clear this  quickly,  but  it
	    may  still appear in sight of other users or even just in your shell
	    history. You may seek alternative ways to specify that to your  net-
	    work backend.

     --auth-file authfile
	    Provide  the  authentication  info via given file instead of command
	    line directly.

     --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 meta-
	    data 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 indi-
	    cate  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). Furthermore, for HTTP resources, the
	    MIME type information will be used to re-open an actual MPEG  stream
	    as	such  instead of treating it as playlist file. So you could just
	    always use -@ for  web  resources  without	bothering  if  it  is  a
	    playlist or already the resolved stream address.

     -l n, --listentry n
	    Of	the playlist, play specified entry only.  n is the number of en-
	    try 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 au-
	    dio 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.  This interacts  fine
	    with  --random  since  version  1.33, but not --shuffle, as that de-
	    stroys the notion of a stable position in the playlist.

     --loop times
	    for playing track(s) a certain number of times in a loop, < 0  means
	    infinite loop.

     --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  com-
	    mand  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  in-
	    dex table for seeking (if enabled in libmpg123) and may make the op-
	    erating  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  posi-
	    tion.  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 possi-
	    ble 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 de-
	    coded 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  for-
	    mat.   If  - is used as the filename, the AU file is written to std-
	    out. See paragraph about WAV writing for header fun  with  non-seek-
	    able 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 every track.

     --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 loud-
	    ness.   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 re-
	    sampler 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 down-
	    sampling 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  sup-
	    ports. 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  op-
	    tion.

     -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  spe-
	    cial  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 corre-
	    sponds 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 equal-
	    izer.  The	upside is that there is zero computational cost in addi-
	    tion 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  be-
	    ginning 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  play-
	    back  (fraction  between 0 and 1). You can tune this prebuffering to
	    either get faster sound to your ears or safer uninterrupted web  ra-
	    dio.   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 num-
	    bers 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.  The  A-B  loop  feature with key 'o'
	    changes the preset loop interval to the interval between two presses
	    of 'o', the third press (or 'p') ending the looped playback. The key
	    'p' will use the updated loop interval after that.

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

     --pauseloop seconds
	    Set  the length of the loop interval in terminal control fixed loop-
	    ing mode, away from the default of 0.5 seconds, as a floating  point
	    number.  This value can be overwritten at runtime using the A-B loop
	    feature.

     --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  exe-
	    cute  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).  Is-
	    sue ``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 read-
	    ing 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.

     --libversion
	    Print  version  information  on  the  mpg123  libraries  being  used
	    (libmpg123, libout123, libsyn123).

HTTP SUPPORT
     In addition to reading MPEG audio streams from ordinary files and from  the
     standard  input,  mpg123  supports  retrieval  of	MPEG  audio  streams  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:// or https://.  When a file with that prefix is  encountered,  mpg123
     since  1.30.0  will  by  default  call  an  external helper program (either
     wget(1) or curl(1), see the --network option) to retrieve the resource. You
     can configure access via a proxy  server  using  the  standard  environment
     variables	those  programs  support.  The --proxy option that mpg123 before
     1.30.0 used for its internal network code is gone in the default build  now
     and will probably disappear for good with 1.31.1.

     Note  that, in order to play MPEG audio files from a WWW server, it is nec-
     essary 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  net-
     work 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.

     Streams with embedded ICY metadata are supported, the interval being commu-
     nicated via HTTP headers or --icy-interval.

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  con-
     trol  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 audi-
     ble immediately, due to audio data buffering in the audio device.	This de-
     lay is system dependent, but it is usually not more than one  or  two  sec-
     onds.

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  frac-
     tion  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 paus-
	    ing/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, min-
	    utes, 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 ---  (neu-
	    tral, 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 re-
	    quest)

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  ap-
     propriate	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  rea-
     sonable 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 net-
     work  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 is-
     sues and provide test files to help fixing them.

     No  CRC error checking is performed. But the decoder is built and tested to
     behave nicely with damaged streams. Mostly, damaged  frames  will	just  be
     silent.

     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

				   11 Jul 2022			       mpg123(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=mpg123&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help