PCM Drop logoPCM Drop

How to Convert PCM to MP3 (Browser, FFmpeg and Audacity)

·8 min read

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:

SourceTypical settings
Phone and VoIP call recordings8,000 Hz, 16-bit, mono (or 8-bit µ-law, see this guide)
Voice assistants and speech APIs16,000 Hz, 16-bit, mono
Android AudioRecord (the configuration guaranteed on all devices)44,100 Hz, 16-bit, mono
Desktop and video capture48,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. Use u8 for 8-bit unsigned, f32le for 32-bit float or s16be for big-endian.
  • -ar 16000 -ac 1: input sample rate and channel count.
  • -b:a 64k: constant bitrate. For variable bitrate, use -q:a 2 instead, 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"
done

One 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:

ContentSuggested MP3 setting
Speech, mono (calls, dictation, voice notes)48–64 kbps CBR
Speech, stereo or podcast with music beds96–128 kbps
Music for casual listening128–192 kbps or VBR -q:a 4
Music where quality matters256–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 loudnorm filter) 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.