Read the screen as a sequence
PrivateMP3 identifies the container, lists its tracks, describes the audio tracks, calculates duration, and then decodes samples for the waveform. Conversion is a separate job. The last visible change shows which earlier checks passed.
| What you see | What passed | Where it stopped | What to check |
|---|---|---|---|
That file type cannot be opened here | The local file reached the worker. | Container identification. | Open the original in its creating application; renaming it is not a repair. |
The file opened, but its track list could not be read | The container was identified. | Track enumeration. | Keep the source and make a fresh export in the creating application. |
This file has no audio track | The container and track list opened. | No track was classified as audio. | Confirm that the source export included sound. |
| The editor shows 0:00 and Convert is disabled | An audio track was found. | No usable duration was obtained. | Check whether the creating application reports a usable duration; re-export if it does not. |
| No waveform and decoder text | The selected audio track was found. | Its decoder support check. | Try another listed track or an eligible AAC-to-M4A copy. |
| The waveform shows a duration or decoding error | The scan stage was reached. | Duration lookup or sample decoding. | Follow the specific message shown for that stage. |
| Convert stays disabled while the waveform draws | The file and selected track opened. | The decoder check is still running. | Wait for Ready; if this track has no usable decoder, an eligible unchanged AAC-to-M4A copy is the exception. |
1. Separate a container failure from a missing audio track
The unsupported-file message comes from failure to identify the container. The no-audio message is later: the container opened and its tracks were listed, but none was audio. Changing MP3 or M4A output cannot help when no source audio track exists.
If the creating application cannot play the original with sound, keep the file and use that application's recovery or export function. If it can, make a new local export with audio enabled. See the focused checks for a WebM recording or an iPhone or QuickTime MOV.
2. Check the selected track and the duration
One audio track is selected automatically. With several, an Audio track selector appears and starts on the first. An option can show language, codec, mono/stereo or channel count, and no decoder
. Those labels depend on metadata in the file.
Changing the track after making a selection or edit opens a warning. Continuing clears cuts, volume edits, the selected range and undo history before starting the new track's waveform; cancelling keeps the current work. Choose the track before editing when possible. For language, commentary or separate mixes in Matroska, use the MKV track picker.
Duration is checked separately. If its calculation fails, the editor can remain open at zero. Convert then stays disabled because the output is not longer than 0.01 seconds. There is no special unfinished container
message for this state.
3. A blank waveform and a disabled button are different tests
The Play control is a third, independent check. PrivateMP3 attaches the local file to the browser's built-in audio element. If that preview cannot attach, Play is disabled with the tooltip Preview is not available for this container
. The worker may still read and decode the selected audio track, so Play alone does not diagnose the container or decoder.
The waveform starts only if the selected track reports that it can be decoded. Decoded channels are combined into one visual trace, and peaks appear progressively. If duration lookup or audio decoding fails, the waveform area now names that stage instead of showing one generic error.
A re-encoded MP3, WAV or M4A waits for the Ready status. Convert requires an open file, an output longer than 0.01 seconds, no conversion already running and a successful waveform scan. If the selected AAC track has no usable decoder, an unchanged AAC-to-M4A copy is the exception because it does not decode samples.
The page first checks whether AudioDecoder exists; the waveform then checks the exact selected track. The WebCodecs specification allows support to differ by codec configuration. If that track cannot be decoded, the page names the decoder problem and keeps Convert disabled unless the unchanged AAC copy route is available.
4. Use AAC copy only when the page says it will copy
The decoder-free route requires M4A output, an AAC track, and the complete unchanged timeline: no cuts, selected-output clip, fade or volume edits. PrivateMP3 confirms the route with Copied without re-encoding — same audio, no quality loss.
Without AudioDecoder, MP3 and WAV are disabled. Convert is available only when those copy conditions and a positive duration are both present. ALAC, Opus, Vorbis, an unidentified codec or edited AAC cannot use the exception. See the AAC and ALAC processing table for each output path.
5. What an incomplete file can look like here
There is no single damaged-file detector or repair step. Inconsistent structure can fail during container identification, track enumeration, duration calculation, waveform decoding, packet reading or output finalization. PrivateMP3 now names these stages separately, but a stage-specific message still cannot prove why the source failed there.
The MediaRecorder standard describes normal completion with stop and a dataavailable event. PrivateMP3 cannot tell whether a particular recorder finished its own writing process. If the recorder, camera or tab ended unexpectedly, check the original first; the page has not diagnosed it as incomplete.
A recovery order that preserves the original
- Keep the source file; do not replace it with a failed export.
- Play it in the creating application and confirm sound through the end.
- Note the exact symptom: unsupported container, no audio, 0:00, decoder text or scan failure.
- Choose the intended audio track before making edits.
- If the M4A copy note appears, try that unchanged output.
- For 0:00 or a scan failure, make a fresh export in the source application. Changing only the extension keeps the same structure.
- Use a second current browser only to compare decoder support. A different result suggests a browser difference; an identical result does not prove damage.