lame (1)
NAME
lame - create mp3 audio files
SYNOPSIS
lame [options] <infile> <outfile>
DESCRIPTION
LAME is a program which can be used to create compressed audio files.
(Lame ain't an MP3 encoder). These audio files can be played back by
popular MP3 players such as mpg123 or madplay. To read from stdin, use
"-" for <infile>. To write to stdout, use a "-" for <outfile>.
OPTIONS
Input options:
-r Assume the input file is raw pcm. Sampling rate and
mono/stereo/jstereo must be specified on the command line.
Without -r, LAME will perform several fseek()'s on the input
file looking for WAV and AIFF headers.
Might not be available on your release.
-x Swap bytes in the input file or output file when using --decode.
For sorting out little endian/big endian type problems. If your
encodings sounds like static, try this first.
-s sfreq
sfreq = 8/11.025/12/16/22.05/24/32/44.1/48
Required only for raw PCM input files. Otherwise it will be
determined from the header of the input file.
LAME will automatically resample the input file to one of the
supported MP3 samplerates if necessary.
--bitwidth n
Input bit width.
n = 8, 16, 24, 32 (default 16)
Required only for raw PCM input files. Otherwise it will be
determined from the header of the input file.
--mp1input
Assume the input file is a MPEG Layer I file.
If the filename ends in ".mp1" or ".mpg" LAME will assume it is
a MPEG Layer I file. For stdin or Layer I files which do not
end in .mp1 or .mpg you need to use this switch.
--mp2input
Assume the input file is a MPEG Layer II (ie MP2) file.
If the filename ends in ".mp2" LAME will assume it is a MPEG
Layer II file. For stdin or Layer II files which do not end in
.mp2 you need to use this switch.
--mp3input
Assume the input file is a MP3 file.
--nogapout dir
output dir for gapless encoding (must precede --nogap)
Operational options:
-m mode
mode = s, j, f, d, m
Joint-stereo is the default mode for stereo files with VBR when
-V is more than 4 or fixed bitrates of 160kbs or less. At
higher fixed bitrates or higher VBR settings, the default is
stereo.
(s)tereo
In this mode, the encoder makes no use of potentially existing
correlations between the two input channels. It can, however,
negotiate the bit demand between both channel, i.e. give one
channel more bits if the other contains silence or needs less
bits because of a lower complexity.
(j)oint stereo
In this mode, the encoder will make use of a correlation between
both channels. The signal will be matrixed into a sum ("mid"),
computed by L+R, and difference ("side") signal, computed by L-
R, and more bits are allocated to the mid channel. This will
effectively increase the bandwidth if the signal does not have
too much stereo separation, thus giving a significant gain in
encoding quality.
Using mid/side stereo inappropriately can result in audible com-
pression artifacts. To much switching between mid/side and reg-
ular stereo can also sound bad. To determine when to switch to
mid/side stereo, LAME uses a much more sophisticated algorithm
than that described in the ISO documentation, and thus is safe
to use in joint stereo mode.
(f)orced joint stereo
This mode will force MS joint stereo on all frames. It is
slightly faster than joint stereo, but it should be used only if
you are sure that every frame of the input file has very little
stereo separation.
(d)ual channels
In this mode, the 2 channels will be totally indenpendently
encoded. Each channel will have exactly half of the bitrate.
This mode is designed for applications like dual languages
encoding (for example: English in one channel and French in the
other). Using this encoding mode for regular stereo files will
result in a lower quality encoding.
(mo)no
The input will be encoded as a mono signal. If it was a stereo
signal, it will be downsampled to mono. The downmix is calcu-
lated as the sum of the left and right channel, attenuated by 6
dB.
For WAV and AIFF input files, using -m -I m will always produce
a mono .mp3 file from both mono and stereo input.
-d Allows the left and right channels to use different block size
types.
--freeformat
Produces a free format bitstream. With this option, you can use
-b with any bitrate higher than 8 kbps.
However, even if an mp3 decoder is required to support free
bitrates at least up to 320 kbps, many players are unable to
deal with it.
Tests have shown that the following decoders support free for-
mat:
FreeAmp up to 440 kbps
in_mpg123 up to 560 kbps
l3dec up to 310 kbps
LAME up to 560 kbps
MAD up to 640 kbps
--decode
Uses LAME for decoding to a wav file. The input file can be any
input type supported by encoding, including layer I,II,III (MP3)
and OGG files. In case of MPEG files, LAME uses a bugfixed ver-
sion of mpglib for decoding.
If -t is used (disable wav header), LAME will output raw pcm in
native endian format. You can use -x to swap bytes order.
-t Disable writing of the INFO Tag on encoding.
This tag in embedded in frame 0 of the MP3 file. It includes
some information about the encoding options of the file, and in
VBR it lets VBR aware players correctly seek and compute playing
times of VBR files.
When --decode is specified (decode to WAV), this flag will dis-
able writing of the WAV header. The output will be raw pcm,
native endian format. Use -x to swap bytes.
--comp arg
Instead of choosing bitrate, using this option, user can choose
compression ratio to achieve.
--scale n
--scale-l n
--scale-r n
Scales input (every channel, only left channel or only right
channel) by n. This just multiplies the PCM data (after it has
been converted to floating point) by n.
n > 1: increase volume
n = 1: no effect
n < 1: reduce volume
Use with care, since most MP3 decoders will truncate data which
--preset help gives more infos about the the used options in
these presets.
--alt-preset [fast] type | [cbr] kbps
Use one of the built-in presets.
This option is deprecated and offers the same as the --preset
option above. Do not use it anymore, it will go away in a later
version.
--r3mix
Uses r3mix VBR preset.
See http://www.r3mix.net/ for more details.
--noasm type
Disable specific assembly optimizations ( mmx / 3dnow / sse ).
Quality will not increase, only speed will be reduced. If you
have problems running Lame on a Cyrix/Via processor, disabling
mmx optimizations might solve your problem.
Verbosity:
--disptime n
Set the delay in seconds between two display updates.
--nohist
By default, LAME will display a bitrate histogram while produc-
ing VBR mp3 files. This will disable that feature.
Histogram display might not be available on your release.
-S
--silent
--quiet
Do not print anything on the screen.
--verbose
Print a lot of information on the screen.
--help Display a list of available options.
Noise shaping & psycho acoustic algorithms:
-q qual
0 <= qual <= 9
Bitrate is of course the main influence on quality. The higher
the bitrate, the higher the quality. But for a given bitrate,
we have a choice of algorithms to determine the best scalefac-
tors and huffman encoding (noise shaping).
-q 0:
use slowest & best possible version of all algorithms. -q 0 and
-q 1 are slow and may not produce significantly higher quality.
-q 9:
disables almost all algorithms including psy-model. Poor qual-
ity.
-h Use some quality improvements. Encoding will be slower, but the
result will be of higher quality. The behaviour is the same as
the -q 2 switch.
This switch is always enabled when using VBR.
-f This switch forces the encoder to use a faster encoding mode,
but with a lower quality. The behaviour is the same as the -q 7
switch.
Noise shaping will be disabled, but psycho acoustics will still
be computed for bit allocation and pre-echo detection.
CBR (constant bitrate, the default) options:
-b n For MPEG1 (sampling frequencies of 32, 44.1 and 48 kHz)
n = 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256,
320
For MPEG2 (sampling frequencies of 16, 22.05 and 24 kHz)
n = 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160
Default is 128 for MPEG1 and 64 for MPEG2.
--cbr enforce use of constant bitrate
ABR (average bitrate) options:
--abr n
Turns on encoding with a targeted average bitrate of n kbits,
allowing to use frames of different sizes. The allowed range of
n is 8 - 310, you can use any integer value within that range.
It can be combined with the -b and -B switches like: lame --abr
123 -b 64 -B 192 a.wav a.mp3 which would limit the allowed frame
sizes between 64 and 192 kbits.
The use of -B is NOT RECOMMENDED. A 128 kbps CBR bitstream,
because of the bit reservoir, can actually have frames which use
as many bits as a 320 kbps frame. VBR modes minimize the use of
the bit reservoir, and thus need to allow 320 kbps frames to get
the same flexibility as CBR streams.
VBR (variable bitrate) options:
-v use variable bitrate (--vbr-old)
--vbr-old
Invokes the oldest, most tested VBR algorithm. It produces very
good quality files, though is not very fast. This has, up
-V n 0 <= n <= 9
Enable VBR (Variable BitRate) and specifies the value of VBR
quality (default = 4). 0 = highest quality.
ABR and VBR options:
-b bitrate
For MPEG1 (sampling frequencies of 32, 44.1 and 48 kHz)
n = 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256,
320
For MPEG2 (sampling frequencies of 16, 22.05 and 24 kHz)
n = 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160
Specifies the minimum bitrate to be used. However, in order to
avoid wasted space, the smallest frame size available will be
used during silences.
-B bitrate
For MPEG1 (sampling frequencies of 32, 44.1 and 48 kHz)
n = 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256,
320
For MPEG2 (sampling frequencies of 16, 22.05 and 24 kHz)
n = 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160
Specifies the maximum allowed bitrate.
Note: If you own an mp3 hardware player build upon a MAS 3503
chip, you must set maximum bitrate to no more than 224 kpbs.
-F Strictly enforce the -b option.
This is mainly for use with hardware players that do not support
low bitrate mp3.
Without this option, the minimum bitrate will be ignored for
passages of analog silence, i.e. when the music level is below
the absolute threshold of human hearing (ATH).
ATH related:
--noath
Disable any use of the ATH (absolute threshold of hearing) for
masking. Normally, humans are unable to hear any sound below
this threshold.
--athshort
Ignore psychoacoustic model for short blocks, use ATH only.
--athonly
This option causes LAME to ignore the output of the psy-model
and only use masking from the ATH (absolute threshold of hear-
ing). Might be useful at very high bitrates or for testing the
ATH.
Shape 2 formula was accurately modelized from real data in order
to reach optimal quality while not wasting bitrate. In CBR and
ABR modes, LAME uses ATH shape 2 by default, VBR selects one
depending on the specified parameter to the -V option.
--athlower n
Lower the ATH (absolute threshold of hearing) by n dB.
Normally, humans are unable to hear any sound below this thresh-
old, but for music recorded at very low level this option might
be usefull.
--athaa-type n
ATH auto adjust types 1 - 3, else no adjustment
--athaa-sensitivity x
activation offset in -/+ dB for ATH auto-adjustment
PSY related:
--short
Let LAME use short blocks when appropriate. It is the default
setting.
--noshort
Encode all frames using long blocks only. This could increase
quality when encoding at very low bitrates, but can produce
serious pre-echo artefacts.
--allshort
Use only short blocks, no long ones.
--cwlimit freq
Compute tonality up to freq (in kHz). Default setting is
8.8717.
--notemp
Do not make use of the temporal masking effect.
--nspsytune
Experimental PSY tunings by Naoki Shibata
--nssafejoint
M/S switching criterion
--nsmsfix arg
M/S switching tuning [effective 0-3.5]
--ns-bass x
Adjust masking for sfbs 0 - 6 (long) 0 - 5 (short)
--ns-alto x
Adjust masking for sfbs 7 - 13 (long) 6 - 10 (short)
--ns-treble x
Adjust masking for sfbs 14 - 21 (long) 11 - 12 (short)
the actual one with the best one found so far. The comparison
says which one is better, the best so far or the actual. The -X
parameter selects between different approaches to make this
decision, -X0 beeing the default mode:
-X0
The criterions are (in order of importance):
* less distorted scalefactor bands
* the sum of noise over the thresholds is lower
* the total noise is lower
-X1
The actual is better if the maximum noise over all scalefactor
bands is less than the best so far.
-X2
The actual is better if the total sum of noise is lower than the
best so far.
-X3
The actual is better if the total sum of noise is lower than the
best so far and the maximum noise over all scalefactor bands is
less than the best so far plus 2dB.
-X4
Not yet documented.
-X5
The criterions are (in order of importance):
* the sum of noise over the thresholds is lower
* the total sum of noise is lower
-X6
The criterions are (in order of importance):
* the sum of noise over the thresholds is lower
* the maximum noise over all scalefactor bands is lower
* the total sum of noise is lower
-X7
The criterions are:
* less distorted scalefactor bands
or
* the sum of noise over the thresholds is lower
-Y lets LAME ignore noise in sfb21, like in CBR
-Z toggles the scalefac feature on
MP3 header/stream options:
-e emp emp = n, 5, c
n = (none, default)
5 = 0/15 microseconds
c = citt j.17
-c Mark the encoded file as being copyrighted.
-o Mark the encoded file as being a copy.
-p Turn on CRC error protection.
It will add a cyclic redundancy check (CRC) code in each frame,
allowing to detect transmission errors that could occur on the
MP3 stream. However, it takes 16 bits per frame that would oth-
erwise be used for encoding, and then will slightly reduce the
sound quality.
--nores
Disable the bit reservoir. Each frame will then become indepen-
dent from previous ones, but the quality will be lower.
--strictly-enforce-ISO
With this option, LAME will enforce the 7680 bit limitation on
total frame size.
This results in many wasted bits for high bitrate encodings but
will ensure strict ISO compatibility. This compatibility might
be important for hardware players.
Filter options:
-k Tells the encoder to use full bandwidth and to disable all fil-
ters. By default, the encoder uses some highpass filtering at
low bitrates, in order to keep a good quality by giving more
bits to more important frequencies.
Increasing the bandwidth from the default setting might produce
ringing artefacts at low bitrates. Use with care!
--lowpass freq
Set a lowpass filtering frequency in kHz. Frequencies above the
specified one will be cutoff.
--lowpass-width freq
Set the width of the lowpass filter. The default value is 15%
of the lowpass frequency.
--highpass freq
Set an highpass filtering frequency in kHz. Frequencies below
the specified one will be cutoff.
--highpass-width freq
Set the width of the highpass filter in kHz. The default value
is 15% of the highpass frequency.
--resample sfreq
sfreq = 8, 11.025, 12, 16, 22.05, 24, 32, 44.1, 48
Select ouptut sampling frequency (only supported for encoding).
If not specified, LAME will automatically resample the input
when using high compression ratios.
ID3 tag options:
--ty year
audio/song year of issue (1 to 9999)
--tc comment
user-defined text (max 30 chars for v1 tag, 28 for v1.1)
--tn track
audio/song track number (1 to 255, creates v1.1 tag)
--tg genre
audio/song genre (name or number in list)
--add-id3v2
force addition of version 2 tag
--id3v1-only
add only a version 1 tag
--id3v2-only
add only a version 2 tag
--space-id3v1
pad version 1 tag with spaces instead of nulls
--pad-id3v2
pad version 2 tag with extra 128 bytes
--genre-list
print alphabetically sorted ID3 genre list and exit
Analysis options:
-g run graphical analysis on <infile>. <infile> can also be a .mp3
file. (This feature is a compile time option. Your binary may
for speed reasons be compiled without this.)
ID3 TAGS
LAME is able to embed ID3 v1, v1.1 or v2 tags inside the encoded MP3
file. This allows to have some usefull information about the music
track included inside the file. Those data can be read by most MP3
players.
Lame will smartly choose wich tags to use. It will add ID3 v2 tags
only if the input comments won't fit in v1 or v1.1 tags, i.e. if they
are more than 30 characters. In this case, both v1 and v2 tags will be
added, to ensure reading of tags by MP3 players wich are unable to read
ID3 v2 tags.
ENCODING MODES
LAME is able to encode your music using one of its 3 encoding modes:
constant bitrate (CBR), average bitrate (ABR) and variable bitrate
(VBR).
Constant Bitrate (CBR)
Average Bitrate (ABR)
In this mode, you choose the encoder will maintain an average
bitrate while using higher bitrates for the parts of your music
that need more bits. The result will be of higher quality than
CBR encoding but the average file size will remain predictible,
so this mode is highly recommended over CBR. This encoding mode
is similar to what is reffered as vbr in AAC or Liquid Audio (2
other compression technologies).
Variable bitrate (VBR)
In this mode, you choose the desired quality on a scale from 9
(lowest quality/biggest distortion) to 0 (highest quality/lowest
distortion). Then encoder tries to maintain the given quality
in the whole file by choosing the optimal number of bits to
spend for each part of your music. The main advantage is that
you are able to specify the quality level that you want to
reach, but the inconvenient is that the final file size is
totally unpredictible.
PRESETS
The --preset switches are designed to provide the highest possible
quality.
They have for the most part been subject to and tuned via rigorous dou-
ble blind listening tests to verify and achieve this objective.
These are continually updated to coincide with the latest developments
that occur and as a result should provide you with nearly the best
quality currently possible from LAME.
To activate these prests:
For VBR modes (generally highest quality):
--preset standard
This preset should generally be transparent to most people on
most music and is already quite high in quality.
--preset extreme
If you have extremely good hearing and similar equipment, this
preset will generally provide slightly higher quality than the
standard mode.
For CBR 320kbps (highest quality possible from the --preset switches):
--preset insane
This preset will usually be overkill for most people and most
situations, but if you must have the absolute highest quality
with no regard to filesize, this is the way to go.
For ABR modes (high quality per given bitrate but not as high as VBR):
--preset kbps
Using this preset will usually give you good quality at a speci-
fied bitrate. Depending on the bitrate entered, this preset
cbr kbps
fast Enables the new fast VBR for a particular profile. The disad-
vantage to the speed switch is that often times the bitrate will
be slightly higher than with the normal mode and quality may be
slightly lower also.
cbr If you use the ABR mode (read above) with a significant bitrate
such as 80, 96, 112, 128, 160, 192, 224, 256, 320, you can use
the cbr option to force CBR mode encoding instead of the stan-
dard ABR mode. ABR does provide higher quality but CBR may be
useful in situations such as when streaming an MP3 over the
internet may be important.
EXAMPLES
Fixed bit rate jstereo 128kbs encoding:
lame sample.wav sample.mp3
Fixed bit rate jstereo 128 kbps encoding, highest quality (recom-
mended):
lame -h sample.wav sample.mp3
Fixed bit rate jstereo 112 kbps encoding:
lame -b 112 sample.wav sample.mp3
To disable joint stereo encoding (slightly faster, but less quality at
bitrates <= 128 kbps):
lame -m s sample.wav sample.mp3
Fast encode, low quality (no psycho-acoustics):
lame -f sample.wav sample.mp3
Variable bitrate (use -V n to adjust quality/filesize):
lame -h -V 6 sample.wav sample.mp3
Streaming mono 22.05 kHz raw pcm, 24 kbps output:
cat inputfile | lame -r -m m -b 24 -s 22.05 - - > output
Streaming mono 44.1 kHz raw pcm, with downsampling to 22.05 kHz:
Probably there are some.
SEE ALSO
mpg123(1), madplay(1), sox(1)
AUTHORS
LAME originally developed by Mike Cheng and now maintained by
Mark Taylor. GPSYCHO psycho-acoustic model by Mark Taylor.
(http://www.mp3dev.org/).
mpglib by Michael Hipp
Manual page by William Schelter, Nils Faerber, Alexander Leidinger
October 13, 2001 lame(1)