How to Convert PCM to MP3 (Browser, FFmpeg and Audacity)
MP3 is usually where a raw PCM recording ends up. It plays everywhere, it is small enough to email, and at sensible bitrates it is indistinguishable from the original for most listeners. Getting there takes two steps that are easy to mix up. First, decode the raw file correctly, which means knowing its sample rate, bit depth and channel count. Then encode it at a bitrate that suits the content.
This guide covers three ways to do it and the settings that matter for each.
Before You Start: Get the Decode Settings Right
MP3 encoding does not fix a badly decoded file. It faithfully compresses whatever it is given. If the PCM is read at the wrong sample rate, you get an MP3 at the wrong speed. If the bit depth is wrong, you get a very efficient MP3 of static.
So always listen before converting. If you do not know the settings, these are the usual starting points:
| Source | Typical settings |
|---|---|
| Phone and VoIP call recordings | 8,000 Hz, 16-bit, mono (or 8-bit µ-law, see this guide) |
| Voice assistants and speech APIs | 16,000 Hz, 16-bit, mono |
Android AudioRecord (the configuration guaranteed on all devices) | 44,100 Hz, 16-bit, mono |
| Desktop and video capture | 48,000 Hz, 16-bit or 32-bit float, stereo |
If the result sounds wrong, our raw audio troubleshooting guide explains how to identify each kind of error by ear.
Method 1: In the Browser With PCM Drop
This is the quickest route if you have a few files and do not want to install anything:
- Open the online PCM player and drop in one or more .pcm files.
- Set the sample rate, bit depth and channels, then press play to check that it sounds right.
- Choose MP3 as the output format and download. If you added several files, they are all converted with the same settings and packed into a single ZIP.
The encoding runs on your own machine, in JavaScript, using the LAME MP3 encoder. Your audio is never uploaded. That matters if the recordings contain private calls or unreleased material. PCM Drop encodes at a fixed 128 kbps, which is plenty for speech and fine for casual music listening. If you need a specific bitrate, or variable bitrate (VBR), use FFmpeg instead.
Method 2: FFmpeg for Control and Batches
FFmpeg is free, runs on every desktop OS and is the standard tool for audio conversion in scripts. You describe the raw input with three options before -i, then the MP3 settings after it:
ffmpeg -f s16le -ar 16000 -ac 1 -i input.pcm -c:a libmp3lame -b:a 64k output.mp3-f s16le: the input is signed 16-bit little-endian. Useu8for 8-bit unsigned,f32lefor 32-bit float ors16befor big-endian.-ar 16000 -ac 1: input sample rate and channel count.-b:a 64k: constant bitrate. For variable bitrate, use-q:a 2instead, which averages around 190 kbps and suits music.
To convert every .pcm file in a folder on macOS or Linux:
for f in *.pcm; do
ffmpeg -f s16le -ar 16000 -ac 1 -i "$f" -b:a 64k "${f%.pcm}.mp3"
doneOne limit to know about: MP3 only supports sample rates up to 48 kHz. If your PCM is 96 kHz, add -ar 48000 after the input to resample it explicitly as part of the conversion.
Method 3: Audacity When You Also Need to Edit
If the recording needs trimming, noise reduction or a volume boost before it becomes an MP3, Audacity is the natural choice:
- Choose File → Import → Raw Data and select your file.
- Set Encoding (for example "Signed 16-bit PCM"), Byte order (usually little-endian), Channels and Sample rate. Leave Start offset at 0 unless the file has a header.
- Edit as needed. Effect → Normalize is useful for quiet device recordings.
- Export with File → Export Audio (called Export → Export as MP3 in older versions), then choose the bitrate mode and quality.
Recent versions of Audacity include the LAME encoder, so you no longer need to install it separately.
Choosing a Bitrate
The right bitrate depends far more on the content than on the source:
| Content | Suggested MP3 setting |
|---|---|
| Speech, mono (calls, dictation, voice notes) | 48–64 kbps CBR |
| Speech, stereo or podcast with music beds | 96–128 kbps |
| Music for casual listening | 128–192 kbps or VBR -q:a 4 |
| Music where quality matters | 256–320 kbps or VBR -q:a 0–2 |
Going above the source quality wastes space. A raw 8 kHz telephone recording only contains frequencies up to 4 kHz. Encoding it at 320 kbps preserves nothing extra, and 32–48 kbps sounds identical.
Things That Can Surprise You
- MP3 adds a little silence at the start. Encoders insert a short priming delay, typically about a thousand samples. For a 16 kHz file that is a few dozen milliseconds. It does not matter for listening, but it does matter if you need sample-accurate alignment with other data. In that case, keep a WAV copy.
- MP3 is lossy, and repeated conversions add up. Converting MP3 back to WAV does not restore what was removed. Keep the original PCM, or a WAV made from it, as your master.
- Very quiet recordings stay quiet. Many devices record at low levels to avoid clipping. Normalising before encoding (in Audacity, or with FFmpeg's
loudnormfilter) produces a much more usable file.
Summary
To convert PCM to MP3, decode the raw file correctly first, and confirm it by listening. Then pick a bitrate that suits the content: low for speech, higher for music. For a handful of files, the browser is fastest and keeps your audio private. For hundreds of files or exact control, FFmpeg is the right tool. For recordings that need cleaning up first, use Audacity.