A Reel that uploads fine and then plays with no sound is usually an audio track problem, not an upload problem. What makes it so hard to diagnose is that Instagram publishes two different, mutually contradictory sets of audio requirements for Reels — in two different places, for two different ways of getting a video onto the platform.
If your file satisfies one of them and not the other, whether it keeps its sound can depend on how it got posted: natively, or through a scheduling tool.
What Instagram actually documents about Reels audio
What Instagram publishes is two spec lists, and neither one describes failure behaviour — they describe requirements.
The help centre — the rules that apply when you post natively (in the app or on the web) — buries its audio spec inside a collapsed "Additional technical details" block on the Reels size page. It says exactly two things about audio:
"Channels: Stereo or Stereo + 5.1."
"Sample rate 96khz or 48khz."
That is the entire audio spec for native uploads. Note what is missing: no codec is named at all, and no bitrate.
The Graph API documentation — the rules that apply when a scheduling tool or any third-party app publishes on your behalf — gives a different list:
"Audio codec: AAC, 48khz sample rate maximum, 1 or 2 channels (mono or stereo)."
"Audio bitrate: 128kbps"
Both of those are official Instagram documentation. They are not the same rule.
The four places the two specs disagree
| Native / help centre | Graph API | |
|---|---|---|
| Codec | not stated | AAC |
| Sample rate | "96khz or 48khz" | "48khz sample rate maximum" |
| Channels | "Stereo or Stereo + 5.1" | "1 or 2 channels (mono or stereo)" |
| Bitrate | not stated | "128kbps" |
Concretely:
- A 5.1 track is inside the help centre's channel list and outside the API's, which allows one or two channels only.
- A 96 kHz track is explicitly named by the help centre and sits above the API's stated maximum.
- A mono track — a single-mic interview, a voice memo, a screen recording — is explicitly allowed by the API and is not one of the two layouts the help centre names.
- A non-AAC track contradicts nothing the help centre says, because the help centre never names an audio codec at all, but it is outside what the API spec allows.
Instagram documents requirements, not consequences. Neither page says what happens to a file that falls outside its list. Dropped audio, silently re-encoded audio, a refused upload — the documentation does not commit to any of them.
So the useful strategy is not to reason about which failure mode you are hitting. It is to move the file inside both lists at once, where there is nothing left to disagree about.
The fastest fix: land inside every spec at once
The two lists do overlap, and the overlap is narrow enough to state exactly:
- Codec: AAC. Named by the API spec. The help centre names no audio codec, so AAC contradicts nothing there. Meta's ads guide agrees independently, listing "stereo AAC audio compression at 128kbps+" among the video settings for Reels ads on the Awareness objective.
- Sample rate: 48 kHz. The only value that appears in both lists — the help centre allows "96khz or 48khz", the API caps at 48 kHz.
- Channels: stereo. The only layout that appears in both lists. Mono passes the API spec but is not named by the help centre; 5.1 is named by the help centre and fails the API spec.
- Bitrate: 128 kbps, which is what the API spec states outright.
AAC / 48 kHz / stereo / 128 kbps is not a compromise between the two documents. It is the one configuration that is simultaneously inside every audio spec Instagram publishes, on every channel.
Try it right here
Runs in your browser. Your file is not uploaded anywhere.
This runs entirely in your browser tab — the file is read from disk, re-encoded locally, and handed back, never uploaded. The balanced preset outputs H.264 video with AAC audio at 128 kbps, in an MP4 written with the moov atom at the front of the file, which matters for a reason the next section explains.
What it does not do is resample or downmix: sample rate and channel layout carry over from your source. If your master is 96 kHz or 5.1 — which usually means it came out of a DAW or an editing timeline rather than a phone — set 48 kHz stereo in that program's export dialog first, then compress. To inspect what is actually in the file, extract audio from video pulls the track out on its own.
Other causes, in order of likelihood
The reel never actually finished publishing
This one only applies to API-based posting, and it catches people because the tool reports success. Meta's documentation is blunt about it:
"Video uploads are asynchronous, so receiving a container ID does not guarantee that the upload was successful. To verify that a video has been uploaded, request the status_code field on the IG Container. If its value is FINISHED, the video was uploaded successfully."
The container's status_code returns one of EXPIRED, ERROR, FINISHED, IN_PROGRESS or PUBLISHED. Meta's own guidance is to poll it "once per minute, for no more than 5 minutes." A tool that treats a returned container ID as proof of success can tell you the post went up while the media behind it is still in one of the other states.
The file is out of spec at the container level
The same API spec opens with a requirement that has nothing to do with sound but everything to do with whether the file is usable:
"Container: MOV or MP4 (MPEG-4 Part 14), no edit lists, moov atom at the front of the file."
Putting the moov atom at the front is exactly what ffmpeg's -movflags +faststart does. Meta's Feed video ads guide repeats the other half of the rule: "Videos should not contain edit lists or special boxes in file containers." An export that violates either one is out of spec no matter how clean the audio is — and a single re-encode rules it out.
What you lost is the music tag, not the sound
If the reel plays audio but shows no track name, that is a separate, documented behaviour:
"Music tagging is only available for original audio."
Tagging and audio are two different features. A reel can play perfectly and still show no music label, and that is not a bug in your file.
The source never had an audio track
Worth ruling out before blaming Instagram, especially with screen recordings, where capturing system audio is usually a separate setting.
How to tell it worked
- Check the exported file's audio stream, not the source: AAC, 48000 Hz, 2 channels, 128 kbps.
- Play it locally with sound before uploading. If it is silent on your own machine, Instagram is not the variable.
- If you publish through an API tool, poll
status_codeuntil it readsFINISHEDrather than trusting the container ID. - Play the published reel back on a different device than the one you posted from.
If it is still silent after all four, the remaining variables are ones Instagram has not documented — check the official documentation for a spec change before re-exporting again.
FAQ
Why does my Instagram Reel have no sound after uploading? Most often because the audio track sits outside one of Instagram's two published specs. The help centre allows "Stereo or Stereo + 5.1" and "96khz or 48khz"; the Graph API allows AAC only, at "48khz sample rate maximum, 1 or 2 channels". Re-encode to AAC, 48 kHz, stereo and you are inside both.
Does Instagram support 5.1 surround sound in Reels? The help centre's Reels spec lists "Channels: Stereo or Stereo + 5.1." The Graph API spec allows "1 or 2 channels (mono or stereo)" — so a 5.1 track is outside the API spec entirely. If anything in your workflow publishes through the API, deliver stereo.
What audio settings should I use for Instagram Reels? AAC, 48 kHz, stereo, 128 kbps. That combination satisfies the help centre spec, the Graph API spec, and Meta's Reels ads guide simultaneously. See the full Instagram Reels specs breakdown for the video side.
Why did my Reel lose sound only when I used a scheduling tool? Most scheduling tools publish through the Graph API, which is the stricter of the two channels on audio: AAC only, 48 kHz maximum, one or two channels. A 96 kHz or 5.1 file that the help centre spec permits is out of spec on that route.
Does Instagram re-encode my audio after upload? Instagram has never published its transcoding targets, so any specific claim about what your audio becomes after upload is guesswork. Check the official documentation rather than a third-party spec sheet.
Could file size be the real problem instead? Possibly, and size limits differ by channel too — see Instagram Reels file size limits. More fix guides and the full set of browser-based Clapr tools are a click away.
Audio specs quoted from Instagram's Reels help centre page and Meta's IG User Media API reference, checked 16 September 2026. These documents have disagreed with each other for a while and both get revised — verify against the official pages before relying on them.