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	speci-
       fied) 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	 stan-
	       dard 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 ac-
	       cess, 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 op-
       tions 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  de-
	      coded.

       --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  re-
	      named  from  --resync.  The old name still works,	but is not ad-
	      vertised 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 ...

       --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  ham-
	      mer.   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
	      format  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 network backend.

       --auth-file authfile
	      Provide the authentication info via given	file instead  of  com-
	      mand 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
	      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	speci-
	      fied 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).  Fur-
	      thermore,	 for HTTP resources, the MIME type information will be
	      used to re-open an actual	MPEG stream as such instead of	treat-
	      ing 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
	      entry starting at	1. A value of 0	is the default and means play-
	      ing  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 fol-
	      lowing  tracks in	playlist after the selected one. Also, the op-
	      tion 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 posi-
	      tions consistent.

       --loop times
	      for  looping track(s) a certain number of	times, < 0 means infi-
	      nite 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, ran-
	      dom 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	 oper-
	      ating 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  en-
	      forced  (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 out-
	      put, 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, in-
	      stead 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 au-
	      dio 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 ex-
	      ample i586 or MMX.  The list of available	decoders can vary; de-
	      pending on the build and what your CPU supports.	This option is
	      only available when the build actually  includes	several	 opti-
	      mized 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 mod-
	      ule dependent.  (This parameter is only provided	for  backwards
	      compatibility and	may be removed in the future without prior no-
	      tice.  Use the audio player for playing and a mixer app for mix-
	      ing, 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 ef-
	      fect 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 re-
	      ally low on CPU time, choose  NtoM,  as  the  resampler  usually
	      needs  more  time	than the MPEG decoder itself.  The mpg123 pro-
	      gram 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  num-
	      bers of bits (s24, u24, s16, u16,	s8, u8)	and also special vari-
	      ants  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 op-
	      tion to double every third frame or things like that.  Don't ex-
	      pect great sound quality when using this option.

       -E file,	--equalizer
	      Enables  equalization,  taken from file.	The file needs to con-
	      tain 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	 high-
	      est frequency band.  Note	that you can control the equalizer in-
	      teractively  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 en-
	      coder  padding  and  codec delays	would prevent it.  This	is en-
	      abled per	default	beginning with mpg123 version 1.0.0 .

       --no-gapless
	      Disable the gapless code.	That gives you MP3 decodings that  in-
	      clude 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  dis-
	      abling  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  nor-
	      mally  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 pre-
	      buffering	to either get faster sound to your ears	or safer unin-
	      terrupted	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. 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 environ-
	      ment 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
	      looping mode, away from the default of 0.5 seconds, as a	float-
	      ing 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
	      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.

       --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 stan-
       dard 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
       necessary that the connection to	that server is fast enough.  For exam-
       ple, 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.

       Streams	with  embedded	ICY metadata are supported, the	interval being
       communicated 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 ter-
       minal 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 center-
       ing  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 accu-
	      rate 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	proba-
       bly you can configure mpg123 to produce a format	suitable for your  au-
       dio 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 com-
       plete 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  re-
       ally  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  success-
       fully 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. 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 accompany-
       ing 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+14.3.quarterly>

home | help