Converting audio to MP3's is normally a 2 stage process, first the audio is recorded into a WAV format, then the WAV is then converted into an MP3. Some utilities will do both processes in one go for you.
The format you wish to encode audio from, CD or direct audio, will determine what software tools you need to produce the WAV file.
If you are wanting to encode from audio input, you will need a program that will record from your soundcard's input and save the results in a WAV format. Below are some useful utilities (most of the comments are taken from the respective website of the app.)
To grab from analog audio line-in. Wavrec
Wavrec is distributed as part of wavplay, which can be downloaded from:-
ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/
To convert CD audio data to WAV format, sometimes known as CD ripping:
CDDA2WAV
http://metalab.unc.edu/pub/Linux/apps/sound/cdrom/
Cdparanoia
Cdparanoia is a Compact Disc Digital Audio (CDDA) extraction tool, commonly known on the net as a 'ripper'. The application is built on top of the Paranoia library, which is doing the real work (the Paranoia source is included in the cdparanoia source distribution). Like the original cdda2wav, cdparanoia package reads audio from the CDROM directly as data, with no analog step between, and writes the data to a file or pipe in WAV, AIFC or raw 16 bit linear PCM. Compared to cdda2wav, it's much slower but really gets the best results you can get even from CDs that are difficult to rip for scratches or other read-errors.
http://www.xiph.org/paranoia/index.html
RipEnc
RipEnc is a bourne shell script frontend to Cdparanoia, cdda2wav, tosha and Bladeenc, 8hz-mp3, l3enc. It utilizes CDDB lookups to automate the naming of songs as they are ripped. A manual naming option is also available. The entire CD can be ripped or you can pick the songs to rip. ID3 tags are also supported.
http://www.asde.com/~mjparme/index.htm
Cd2mp3
cd2mp3 is a freeware software, designed to handle 2 other programs cdda2wav(that rips the tracks from cd) and lame (that encodes the mp3s)
http://sertaozinho.org/cd2mp3/index.html
RipperX
RipperX is a GTK program to rip CD audio and encode mp3s. It has plugins for cdparanoia, BladeEnc, Lame Mp3 encoder, XingMp3enc, 8hz-mp3 and the ISO v2 encoder. It also has support for CDDB and ID3 tags.
http://www.digitallabyrinth.com/linux/ripperX/
Grip
Grip is a GTK-based CD-player and CD-ripper/MP3-encoder. It has the ripping capabilities of cdparanoia built in, but can also use external rippers (such as cdda2wav). It also provides an automated frontend for MP3 encoders, letting you take a disc and transform it easily straight into MP3s. The CDDB protocol is supported for retrieving track information from disc database servers. Grip works with DigitalDJ to provide a unified "computerized" version of your music collection.
http://www.nostatic.org/grip/
To convert the WAV file to MP3 format you will need an encoder:
Blade's MP3 Encoder
BladeEnc is a freeware MP3 encoder. It is based on the same ISO compression routines as mpegEnc, so you can expect roughly the same, or better, quality . The main difference is the appearance and speed. BladeEnc doesn't have a nice, user-friendly interface like mpegEnc, but it is more than three times faster, and it works with several popular front-end graphical user interfaces.
http://bladeenc.cjb.net
Lame
In the great history of GNU naming, LAME stands for LAME Ain't an Mp3 Encoder. LAME is not an mp3 encoder. It is a GPL'd patch against the dist10 ISO demonstration source. LAME is totally incapable of producing an mp3 stream. It is incapable of even being compiled by itself. You need the ISO source for this software to work. The ISO demonstration source is also freely available, but any commercial use (including distributing free encoders) may require a license agreement from FhG (Fraunhofer Gesellschaft, Germany).
http://www.sulaco.org/mp3/
Gogo
This is a very fast MP3 encoder for x86-CPU, which is based on LAME ver 3.29beta and optimized by PEN@MarineCat, Keiichi SAKAI, URURI, kei and shigeo. (You will also need to download NASM to compile the source, which can be found http://www.web-sites.co.uk/nasm/)
http://homepage1.nifty.com/herumi/gogo_e.html
To play the MP3's you will naturally need a player:
Xmms (Formerly known as X11Amp)
This player has most of the features as Winamp from Windows 95/98/NT but it will of course feature some specials only available for the Linux version.
http://www.xmms.org
Xaudio
Xaudio is a very fast and very robust multi platform solution for Digital Audio playback, especially targeted at MPEG Audio (MP1, MP2 and MP3) decoding.
http://www.xaudio.com
AlsaPlayer
AlsaPlayer is a new type of PCM player. It is heavily multi-threaded and tries to exercise the ALSA library and driver quite a bit. It has some very interesting features unique to Linux/Unix players. The goal is to create a fully pluggable framework for playback of all sorts of media with the focus on PCM audio data. Full speed (pitch) control, positive *and* negative! First Linux- and only GPL player that does this!! MP3's and CD's do varispeed :)
http://www.alsa-project.org/~andy/
mpg123
What is mpg123? It is a fast, free and portable MPEG audio player for Unix. It supports MPEG 1.0/2.0 layers 1, 2 and 3 (those famous "mp3" files), and it has been tested on a wide variety of platforms, including Linux, FreeBSD, NetBSD, SunOS, Solaris, IRIX, HP-UX and others. For full CD quality playback (44 kHz, 16 bit, stereo) a Pentium (or fast 486), SPARCstation10, DEC Alpha or similar CPU is required. Mono and/or reduced quality playback (22 kHz or 11 kHz) is even possible on slower 486 CPUs.
http://www.mpg123.org
Freeamp
FreeAmp is an extensible, cross-platform audio player. It features an optimized version of the GPLed Xing MPEG decoder which makes it one of the fastest and best sounding players available. FreeAmp provides a number of the most common features users have come to expect in a clean, easy to use interface.
http://www.freeamp.org/
Streaming servers allow you to 'broadcast' MP3's across a network, whether this is your intranet or the internet itself.
Icecast
Welcome! Icecast is a Mpeg Layer III Audio broadcasting system brought to you by the linuxpower.org team. Icecast comes bundled with iceplay, and icedir. Iceplay is a playlist streamer that will allow you to send pre-encoded files to your Icecast server.
http://www.icecast.org/
Fluid
Fluid Streaming Server is a program for streaming media over networks and in its current form using the mp3 format.
http://www.subside.com/fluid/ (old site)
http://fluid.sourceforge.net/ (new site)
Litestream
Litestream is an Open Source, infinitely scalable high-capacity MP3 streaming system for Unix.
http://www.litestream.net/
Apache::MP3
Module for streaming MP3's using the Apache WebServer.
This module takes a hierarchy of directories containing MP3 files and presents it as a browsable song library for streaming over the web.
[Available from CPAN]
LiveIce
LiveIce is the source client for Icecast which encodes an mpeg stream for broadcast as it is created. Unlike clients such as Shout and IceDJ this permits the broadcast of live audio, rather than prerecorded mp3's.
LiveIce is bundled with Icecast, newer versions together with documentation may be found at the website below:
http://star.arm.ac.uk/~spm/software/liveice.html
eMixer
eMixer is an easy-to-use front-end to mpg123 that allows you to play and mix two mp3 streams together. The ability to mix two mp3s makes eMixer act like a cross-fader, effectively giving the user DJ-like capabilities from the computer console. eMixer is also very able in a "real time" party environment. eMixer is based on the original mp3 mixing code upon which liveice's mixing component is built.
http://emixer.linuxave.net/
GDAM
GDAM is real-time digital dj mixing software package. Any number of mp3 files can be played and mixed simultaneously. Effects can be added, changed, and rearranged dynamically. GDAM features a client-server architecture; all sound is produced by a server, which receives instructions from any number of clients. Other features include plugins for audio effects and interface components, caching and looping, sequencing, assisted beatmatching, a waveform viewer/beat calculator, contiguous queuing (no pauses between songs when using a playlist), an online help system, an mpg123 clone which runs on a gdam server, flexible command line interface for direct control of server, recording of entire mix or any point in stream to buffer/disk/mp3 encoder, support for multiple sound devices, and support for midi hardware control.
http://gdam.org/
alternative:
http://gdam.sourceforge.net
id3ed
id3ed is an ID3 tag editor for mp3 files. You can set tags interactively or from the command line, or a combination of both. id3ed can set genre by name or number. You can also remove or view tags.
http://www.azstarnet.com/~donut/programs/id3ed.html
mp3info
MP3info is a small utility for reading and writing MPEG Layer 3 (MP3) ID3 tags. Console (command-line and interactive ncurses) and GTK versions are included.
http://metalab.unc.edu/mp3info/
Streamripper
Streamripper records shoutcast streams. If the stream contains track info (meta data), streamripper creates a separate file for each track.
http://streamripper.sourceforge.net/
Wget
GNU Wget is a freely available network utility to retrieve files from the World Wide Web using HTTP and FTP, the two most widely used Internet protocols. It works non-interactively, thus enabling work in the background, after having logged off.
Wget is far more than a stream grabber!
Volume Normalization
Wavnorm
If you have encoded live audio, or have encoded from older cd's you may find variations in the overall sound level.
To change the encoded volume levels of the MP3's you will need to normalise them using wavnorm.
http://www.zog.net.au/computers/wavnorm/
SOX
Sox is a very handy sound conversion utility which I'd recommend having, and you will need it if you wish to use wavnorm.
ftp://sunsite.unc.edu/pub/Linux/apps/sound/convert/
You may also need a mixer program; Xmixer works well and is included with most distributions.