A WAV file that will not play on a Mac, and how to rescue it
A WAV file that will not play on a Mac is usually in one of three states: it holds audio in an encoding macOS does not decode (common with phone systems, voicemail exports and dictation recorders), it was cut off before the recorder could finish writing its header, or it is not fully there. The first is fixed by converting it, the second by rewriting the header, and the third depends on how much of the file survived. A two-minute check in Terminal tells you which one you have.
WAV is a wrapper, not one format
People think of WAV as uncompressed audio, and most of the time it is. But WAV is really a container: a short header that describes the audio, followed by the audio data. The header can describe plain uncompressed samples, which every Mac plays, or one of many compressed encodings, some of which date back decades.
Files from music software, audio interfaces and most portable recorders use the plain kind. Files from office phone systems, voicemail downloads, call recording, older dictation devices, security systems and some old Windows programs often use compressed telephony encodings designed to keep speech small. macOS plays some of these and not others. When it cannot, QuickTime Player says the file is not compatible, Music refuses to add it, and Quick Look shows a blank player.
The other failure is in the header itself. A recorder writes the header’s length fields last, when you press stop. If the battery dies, the card fills or the app crashes first, the header may say the recording is zero seconds long, even though minutes or hours of audio follow it.
Step 1: ask the file what it is
Open Terminal, type file and a space, drag the WAV onto the window, and press Return:
file ~/Desktop/recording.wav
A healthy, ordinary WAV reports something like RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, stereo 44100 Hz. PCM means uncompressed, and the Mac should play it. Other answers point to the cause:
- A named compressed encoding, such as GSM, ADPCM or another telephony format, often at 8000 Hz and mono, means it is Step 2.
- PCM, but the file will not play or shows 0:00, suggests a header that was never finished. That is Step 3.
- Anything that is not WAVE audio, such as
data, HTML or an MP3, means the file is not a WAV at all, or not all there. That is Step 4.
For a second opinion, Apple’s own audio tool gives the Mac’s view:
afinfo ~/Desktop/recording.wav
If it prints the data format and an estimated duration, macOS can read the file. If it reports an error instead, macOS cannot, and the reason is one of the steps below.
Step 2: an encoding the Mac does not play
If the file is fine but compressed in a format macOS lacks, the audio is intact and only needs converting into something standard. Apple’s built-in converter, afconvert, uses the same system decoders QuickTime does, so it will not help here: if QuickTime cannot read the file, neither can afconvert.
Manatee brings its own engine, ffmpeg, which includes decoders for many of the telephony and ADPCM encodings found in WAV files. To convert:
- Open Manatee and choose Convert, or drag the WAV onto its menu bar icon.
- Drop in the file, or a whole folder of voicemails or call recordings.
- Choose WAV for a standard uncompressed copy that plays everywhere, M4A for a much smaller file, or MP3 for the widest compatibility.
Manatee writes each converted file alongside the original and never modifies the source, and everything runs on your Mac, which matters for voicemails and recorded calls you would rather not upload. Because unusual encodings vary, try your own file during the free 24 hours, which include every feature, before paying $9.
For speech at 8000 Hz, a converted WAV will be larger than the original but sound no better: the detail was never recorded. M4A at a low bitrate is usually the practical choice. How to convert an AMR voice recording to MP3 covers the similar case of phone voice formats.
Step 3: a recording that stopped abruptly
If file says PCM but players show a length of zero or refuse the file, the header’s size fields were probably never written. The samples are there; the header just does not admit it. For a plain PCM WAV under 4 GB, rewriting the two size fields makes it playable.
This short script writes a fixed copy next to the original, named -fixed.wav, and does not change the original. On first use, macOS may offer to install its command line developer tools, which include Python; accept, then run it again.
python3 - ~/Desktop/recording.wav <<'EOF'
import struct, sys, shutil
src = sys.argv[1]
data = open(src, "rb").read()
i = data.find(b"data", 12)
if i < 0: sys.exit("No audio data found in this file.")
dst = src[:-4] + "-fixed.wav"
shutil.copyfile(src, dst)
with open(dst, "r+b") as f:
f.seek(4); f.write(struct.pack("<I", len(data) - 8))
f.seek(i + 4); f.write(struct.pack("<I", len(data) - i - 8))
EOF
Replace the path with your own file’s. Open the -fixed.wav copy in QuickTime Player. If it now shows the right length and plays, the recording is back. A click or burst of noise in the last moment is where the recorder stopped mid-write, and it is harmless.
The script assumes the audio is the last chunk in the file, which is true for the recordings this usually happens to. If it does not help, converting the file as in Step 2 is still worth trying during the free day. There is no promise, but it costs nothing to check.
Step 4: the file is not all there
If the file is much smaller than it should be, or file does not recognize it as audio, some or all of the data is missing. The usual reasons are a download or copy that stopped early, a file that has not fully come down from iCloud, or a recorder that lost its storage mid-recording.
Before anything else, find the source. Download it again, copy it again from the recorder or card, or check whether the sender still has it. If the file shows a cloud icon in Finder, make sure it has finished downloading.
If the partial file is the only copy, the portion that was written can often be recovered with Step 3 or Step 2. What was never written cannot. Manatee’s Repair mode is built for video, PDF and Word documents, not audio, and no tool can restore sound that is simply not in the file.
Questions
The WAV plays, but it sounds too fast or chipmunk-like. Is it the same problem? It is a header problem, but a different one: the header states the wrong sample rate. An audio file that plays too fast or sounds high-pitched explains how to fix it.
Why does the file play on a PC but not on my Mac? Windows includes some older telephony decoders that macOS does not. The file is fine; converting it once gives you a copy both can play.
Can I fix an MP3 or M4A the same way? No. Those formats are structured differently, and the header script above only applies to WAV. Corrupted MP3 or M4A won’t play on Mac covers them.