Audio File Plays But No Sound? Diagnostic Steps
Why This Happens More Often Than You'd Think
You double-click an audio file, the progress bar moves, the timer ticks forward, but your speakers produce nothing. It's one of the more frustrating problems in audio troubleshooting because everything looks like it's working. The file isn't corrupted in an obvious way, no error dialog appears, and yet — silence. This situation has several distinct causes, and they don't all live in the same place. Some are operating system issues. Some are codec problems buried inside the file's container format. Some are the result of a conversion that went technically correct but produced a stream with no audio data. And some are genuinely broken files that need to be re-encoded before they'll produce any output. The key distinction to make early is whether the file has a valid audio stream at all, versus whether your playback environment simply can't decode what's there. A 48-minute MP4 that plays silently in VLC but produces sound in QuickTime is a different problem from a 48-minute MP4 that plays silently everywhere. The first is a decoder or routing issue. The second almost certainly means the audio stream itself is empty, misaligned, or encoded in a format nothing on your machine can handle. This guide walks through both scenarios methodically. We'll start with the simplest checks — the ones that catch about 60% of cases — and work toward the more technical fixes, including when re-encoding through a conversion tool like CocoConvert is the right move and when it isn't.
Start With the Obvious: System Volume, Output Device, and Player Settings
Before touching the file itself, eliminate the environment. This sounds patronizing, but misconfigured audio routing catches experienced users off guard regularly. On Windows 11, right-click the speaker icon in the system tray and choose 'Open Volume Mixer.' You'll see per-application volume levels. If your media player is muted there while your system volume is at 100%, you'll hear nothing. Set it to at least 80 and try again. Also check 'Sound Settings > Output' — if your default output device is set to a Bluetooth headset that's powered off or out of range, audio gets routed nowhere. On macOS, go to System Settings > Sound > Output. Confirm the correct device is selected and that the output volume slider isn't at zero. macOS also has a per-app audio routing layer; if you're using an app like Loopback or BlackHole for audio production work, it's easy to accidentally route a player's output to a virtual device that has no physical output. Inside the player itself, check for a muted audio track. VLC, for example, has its own volume control separate from the system mixer — it sits in the lower-right corner of the main window and can be set independently to zero. In VLC, also go to Audio > Audio Track and confirm a track is selected rather than 'Disabled.' For browser-based playback (HTML5 audio or video elements), look for the small speaker icon on the browser tab. Chrome and Firefox both allow tab-level muting; a muted tab icon is easy to miss. Right-click the tab and check for a 'Unmute tab' option. If all of this checks out and the file still plays silently, the problem is inside the file.
Inspect the File's Audio Stream Directly
The most reliable way to determine whether an audio stream actually exists and contains data is to inspect the file with a tool that reads its metadata directly rather than trying to play it. MediaInfo is free, cross-platform, and gives you a detailed breakdown of every stream inside a container. Open your file in MediaInfo and look at the Audio section. You want to see entries for Format (e.g., AAC, MP3, PCM), Channels (1 for mono, 2 for stereo, 6 for 5.1), Bit rate, and Duration. If there is no Audio section at all, the container has no audio stream — the file was likely muxed or converted without one. If the Audio section exists but shows a Duration of 0ms or a Bit rate of 0 kb/s, the stream is present but empty. FFprobe, which ships with FFmpeg, gives you the same information from a command line. Run: `ffprobe -v error -show_streams -select_streams a yourfile.mp4` — if no output comes back, there's no audio stream. If you see stream data but the codec shows as 'none' or the bit rate is 0, the stream is a ghost. Another quick test: open the file in Audacity using File > Import > Audio. If Audacity imports it and shows a flat line (zero amplitude across the entire waveform), the samples are there but contain silence — possibly the result of a conversion that processed an already-muted source, or a channel mapping error that sent audio to a channel your speakers don't output. If Audacity refuses to import it entirely, the codec is unsupported or the stream is genuinely empty. Once you know exactly what you're dealing with, the fix becomes much clearer.
Codec and Container Mismatches: The Silent Killer
A container format like MP4, MKV, or AVI is essentially a wrapper. It can hold video streams, audio streams, subtitle tracks, and metadata — but the actual audio data inside is encoded with a specific codec: AAC, AC-3, DTS, Opus, FLAC, and so on. When a player can read the container but can't decode the audio codec inside it, it typically plays the video (if there is one) while producing no sound. No error, just silence. This is particularly common with: **DTS audio in MKV files**: DTS requires a license to decode, and many lightweight players don't include it. Windows Media Player historically had this problem. VLC handles DTS fine; Windows Media Player often doesn't without a codec pack. **AC-3 (Dolby Digital) in AVI containers**: Some players decode AC-3 only when it's inside an MP4 or MKV. The same audio codec in an AVI container causes silent playback in those same players. **Opus in MP4**: Opus is technically not an officially supported codec for MP4 containers per the spec, though some encoders write it anyway. Playback behavior varies wildly — some players handle it, others silently skip the audio track. **TrueHD and DTS-HD MA**: These lossless formats are common in Blu-ray rips. Most software players need specific libraries to decode them, and consumer hardware often passes them through to an AV receiver rather than decoding them directly. If you're playing on a laptop with no receiver in the chain, these tracks frequently produce silence. The fix here is re-encoding the audio to a widely compatible codec — AAC at 192 kb/s or MP3 at 320 kb/s will play on essentially everything. This is where a conversion tool earns its place in the workflow.
When Re-Encoding Is the Right Fix (And How to Do It)
If MediaInfo or FFprobe confirmed that your file has a valid audio stream with real data, but it's encoded in a codec your target player can't handle, re-encoding solves the problem cleanly. CocoConvert handles the most common scenarios: converting DTS or AC-3 audio to AAC, remuxing Opus from an MKV into a more compatible MP4 container with the audio transcoded, or extracting just the audio track from a video file and saving it as a standalone MP3 or FLAC. Upload the file, choose your output format, and the conversion pipeline handles the codec translation. For audio-only files, the most universally compatible output formats are: - **MP3 (192–320 kb/s)**: Plays on every device made in the last 25 years - **AAC in M4A container (128–256 kb/s)**: Better quality per bit than MP3, supported natively on Apple and Android devices, and in all modern browsers - **FLAC**: Lossless, large files, but no compatibility issues on any modern platform For video files where the audio track is the problem, converting to MP4 with AAC audio is the safest choice. CocoConvert's MP4 output uses AAC by default, which is the right call for compatibility. One honest limitation: CocoConvert can't fix a file where the audio stream is genuinely empty — zero samples, zero duration. If MediaInfo shows a 0ms audio track, there's nothing to re-encode. The source content simply doesn't have audio data, and no conversion tool can manufacture it. You'd need to go back to the original source file. Also worth noting: if you have a multi-channel audio file (5.1 or 7.1) and you're hearing nothing on stereo speakers, the issue might be channel mapping rather than codec support. FFmpeg's `-ac 2` flag downmixes to stereo during conversion; CocoConvert does this automatically when you select a stereo output format.
Sample Rate and Bit Depth Mismatches
A less common but genuinely tricky cause of silent audio is a sample rate or bit depth that your audio hardware or driver doesn't support. Most consumer audio hardware runs at 44.1 kHz or 48 kHz. Professional audio files sometimes use 88.2 kHz, 96 kHz, or even 192 kHz. Some audio drivers on Windows, particularly older Realtek drivers, will silently fail rather than resample when they receive a stream at an unsupported rate. To check this on Windows, go to Control Panel > Sound > Playback Devices, right-click your output device, choose Properties, then go to the Advanced tab. You'll see a dropdown for 'Default Format' showing the current sample rate and bit depth — something like '24 bit, 48000 Hz (Studio Quality).' If your file is 96 kHz and your driver's exclusive mode is locked to 48 kHz, some players will produce silence instead of resampling. The fix is either to change the driver's default format to match your file, or to convert the file to 44.1 kHz or 48 kHz. For most use cases, 44.1 kHz at 16-bit is indistinguishable from higher rates on consumer hardware and plays without issue everywhere. Bit depth issues are rarer but follow the same pattern. A 32-bit float PCM file (common output from some DAWs) will cause silent playback on hardware or drivers that only handle 16-bit or 24-bit integer PCM. Converting to 24-bit PCM or a compressed format like FLAC (which normalizes to integer samples) resolves it. MediaInfo shows both sample rate and bit depth in the Audio section. If your file shows 96000 Hz or 32-bit float and you're getting silence, that's almost certainly your culprit.
When Nothing Works: Recovering Audio From a Broken File
Some files are genuinely damaged — truncated downloads, interrupted transfers, or corruption from a failing drive. These files may appear to play (the container header is intact enough for the player to read duration and stream info) but produce no audio because the actual sample data is missing or unreadable. FFmpeg has a recovery mode that sometimes helps. Running `ffmpeg -i broken.mp4 -c copy output.mp4` with the `-err_detect ignore_err` flag will attempt to copy whatever readable data exists into a new container, sometimes recovering a partially playable file. This doesn't fix missing data, but it can fix container-level corruption that's preventing a player from reading data that's technically still there. For MP3 files specifically, MP3val and mp3check are small utilities that scan for and optionally repair frame-level errors. An MP3 with corrupted frame headers will often play silently or skip entirely; these tools can sometimes reconstruct the frame structure. If the file came from a video platform download or a screen recorder, check whether your recording software has a 'repair' or 'finalize' function. Many screen recorders write a temporary file during recording and finalize it on stop. If the software crashed, the file may exist but lack the index and metadata needed for proper playback. Handbrake, VLC's Convert/Save function, and FFmpeg's `-movflags +faststart` processing can sometimes recover these. CocoConvert will attempt to process damaged files, but if FFprobe can't read a valid audio stream from the source, the conversion will produce a file with no audio — same empty result. There's no tool that can recover data that isn't there. In those cases, the only real option is to find the original source and re-export or re-download the file.