Steam Store Trailer Autoplay Muted State Desync in Embedded Browser - How to Fix
Problem: Your Steam store page trailer plays video but no audio—or audio works once, then stays silent after the visitor clicks unmute until a hard refresh. Reports spike in Chrome, Edge, and the Steam client embedded browser during June 2026 fest prep when marketing finally passed LUFS on the master but never tested embed mute state.
Who is affected now: Teams that fixed Audacity vs Youlean LUFS drift or ffmpeg loudnorm channel layout but still hear “trailer is silent on the store.” That is playback / embed policy, not integrated loudness on the wrong file. This is also not in-game Wwise DSP init or FMOD bank strip silence.
Fastest safe fix: Export stereo WebM (or Steam-accepted format) with a verified audio stream → ffprobe proof on the uploaded file → run three mute → unmute → play cycles on the live store embed (logged-out + logged-in) → file store_embed_mute_smoke_receipt_v1.json with three_cycle_audio_ok: true → keep loudness_receipt_v1.json on the WAV master only → add embed mute row to store-page QA checklist.
Direct answer
Steam’s store player runs inside an embedded browser with autoplay policies. Trailers often start muted until a user gesture. If your delivery file has no audio track, mono-downmixed silence, or the page re-applies muted after unmute (custom embed scripts, stale cache, or Steam overlay mute), visitors experience mute desync: video keeps playing, audio never returns without refresh. Fix the file first, then the embed ritual—not another LUFS pass on an already-loud MP3.
Why this issue spikes in June 2026
- LUFS discipline without embed QA — Measurement-chain resource fixed meters; store embed still untested.
- WebM video-only exports — Editors export “web optimized” with video codec only.
- Steam client + desktop Chrome matrix — Mute state differs from local VLC preview.
- October fest store locks — Trailer frame audit covers picture; audio embed is a separate gate.
- Forward resource brief — July store trailer embed mute QA bookmark list pairs this help when shipped.
Symptoms and search phrases
- Store trailer silent; local file plays fine in VLC.
- First click unmute works; second visit silent until F5.
- Steam overlay volume up; store embed still muted.
ffprobeshows no audio stream on uploaded WebM.- Marketing says “−14 LUFS passed” but store has no sound.
- Only Chrome reproduces; Firefox differs (policy matrix).
- Hard refresh restores audio once, then desync returns.
Root causes (check in order)
- Video-only WebM/MP4 — No audio track in Steam upload file.
mutedattribute stuck — Custom landing page or widget re-mutes after gesture.- Steam client global mute — User muted Steam UI; embed inherits state.
- Autoplay policy — Unmute gesture not bound to same
<video>element. - Stereo collapsed to silent — Bad mux; channels present but zero samples.
- Wrong file on store slot — Old silent upload still cached on CDN edge.
- LUFS on wrong asset — Receipt on WAV; store serves older WebM without audio.
Beginner path (first 45 minutes)
Prerequisites: Final trailer WAV master, access to Steamworks store admin, Chrome + Steam client for smoke.
- Download the live store trailer URL (or re-upload test) — not only the project export.
- Run
ffprobe -show_streams— confirmcodec_type=audio. - Open store page logged out in Chrome → play → unmute → confirm audio.
- Mute again → unmute → play — repeat three cycles.
- Repeat in Steam client store overlay if that is your audience’s path.
- If silent but
ffprobeOK → embed/policy (Steps 3–5 below). If no audio stream → re-export (Step 1).
Common mistake: Passing LUFS on WAV while Steam serves an older silent WebM.
Fastest safe fix path
Step 1 — Prove audio on the delivery file
ffprobe -hide_banner -show_streams -select_streams a:0 your_trailer.webm
| Check | Pass |
|---|---|
codec_type=audio present |
Yes |
channels=2 (stereo) |
Yes |
duration > 0 |
Yes |
| Sample rate 48000 or 44100 | Matches master |
Re-export with explicit audio if missing:
ffmpeg -i master.wav -i picture_sequence_or_video.mp4 \
-c:v libvpx-vp9 -crf 32 -b:v 0 \
-c:a libopus -b:a 160k -ac 2 \
-shortest trailer_stereo.webm
Use Steamworks store video specs for your target format if WebM is not the slot you upload.
Step 2 — Loudness on WAV master only
- Measure integrated LUFS on 32-bit float WAV in Youlean (authority).
- Normalize once per measurement-chain resource.
- Encode WebM/MP4 for store after
loudness_receipt_v1.jsonpasses. - Do not re-run Audacity Normalize on the encoded file and expect embed fixes.
Step 3 — Three-cycle embed mute smoke
Run on production store URL before fest visibility:
| Cycle | Action | Pass |
|---|---|---|
| 1 | Load page → play → unmute → hear dialog/music | Audio audible |
| 2 | Click mute on player → unmute → play | Audio returns |
| 3 | Navigate away → back → play → unmute | Audio without hard refresh |
Record screen + system audio to release-evidence/02-store/embed-mute-cycle-1-3.webm.
Matrix: logged-out Chrome, logged-in Chrome, Steam client store (if applicable).
Step 4 — store_embed_mute_smoke_receipt_v1.json
{
"schema": "store_embed_mute_smoke_receipt_v1",
"checked_at_utc": "2026-05-24T23:00:00Z",
"build_label": "store-trailer-2026-06-rc1",
"delivery_file": "trailer_stereo.webm",
"ffprobe_audio_stream_ok": true,
"channels": 2,
"browsers_tested": ["chrome_logged_out", "chrome_logged_in", "steam_client_embed"],
"three_cycle_audio_ok": true,
"hard_refresh_required_for_audio": false,
"loudness_receipt_ref": "loudness_receipt_v1.json",
"loudness_measured_on": "master.wav",
"caption_fallback_documented": true,
"pass": true
}
Set hard_refresh_required_for_audio: true → fail upload until embed/file fixed.
Step 5 — Store QA checklist + captions
- Add row to 18 Free store-page QA localization checklist: embed mute 3-cycle.
- Note in store About/FAQ if autoplay stays muted until click (honest expectation).
- Ship caption/subtitle file or on-screen supers for critical lines when audio fails policy.
- Cross-check frames per trailer frame audit—picture can be correct while embed audio fails.
Step 6 — BUILD_RECEIPT + Wednesday smoke
| Column | Example |
|---|---|
loudness_receipt |
pass (WAV master) |
store_embed_mute_smoke |
pass |
three_cycle_audio_ok |
true |
Add embed mute photo to Wednesday smoke before toggling fest visibility.
Working dev path — CDN cache and slot discipline
| Signal | Action |
|---|---|
| New WebM uploaded; store still silent | Purge/wait CDN; bump build_label on receipt |
ffprobe OK locally; store file old |
Re-upload; verify Steamworks trailer slot ID |
| Only Steam client fails | Test overlay mute; document “check Steam volume mixer” in FAQ |
| LUFS pass but no audio stream | Re-export Step 1 — not a loudness problem |
| Custom website embed breaks | Fix muted / volume JS; don’t blame Steam file |
Verification checklist
- [ ]
ffprobeshows stereo audio stream on uploaded file - [ ] Three mute/unmute cycles pass on live store embed
- [ ] Logged-out and logged-in Chrome tested
- [ ] Steam client embed tested (if target audience uses it)
- [ ]
store_embed_mute_smoke_receipt_v1.jsonpass: true - [ ]
loudness_receipt_v1.jsonreferences WAV master, not WebM-only - [ ] Store QA checklist row signed
- [ ] Caption/subtitle fallback documented
Prevention
- Never ship store trailer without embed mute smoke—LUFS alone is insufficient.
- Block Steam upload CI if
ffprobelacks audio stream. - Pair with July store embed mute QA resource when published (brief #5).
- One authority meter on WAV; one embed ritual on live URL.
- Re-run three cycles after any trailer re-upload before October lock.
Troubleshooting
| Symptom | Fix |
|---|---|
| VLC plays audio; store silent | Wrong file on slot or video-only upload — Step 1 |
| Unmute once, then dead | Three-cycle desync — Step 3; check stuck muted |
| All browsers silent | Missing audio stream — re-export |
| Only after LUFS pass | You normalized a lossy file without audio — remeasure WAV |
| Steam overlay muted | User education + test with overlay volume up |
FAQ
We hit −14 LUFS. Why is the store silent?
LUFS measures loudness on a file with audio. A video-only WebM can still be “compliant” on a unrelated WAV receipt. Run ffprobe on the store file.
Is this the same as Audacity vs Youlean drift?
No. See Audacity LUFS sample-rate help for meter disagreement. This article is embed playback / mute state.
Do we need a new loudness tool list?
No. Use 14 Free trailer loudness measurement chain for meters; use this help for store embed mute.
Should autoplay start unmuted?
Browser policy usually requires muted autoplay + user unmute. Your job is reliable unmute, not fighting autoplay with illegal autoplay-with-sound hacks.
Related links
- 14 Free Steam Store Trailer Embed Mute and Loudness QA Tools (2026)
- 14 Free Trailer Loudness Measurement Chain (resource)
- 14 Free Fest Trailer Demo LUFS Meter Tools (resource)
- 18 Free Store Page QA Localization Checklist (resource)
- Audacity LUFS vs Youlean Sample Rate Drift (fix)
- ffmpeg loudnorm Wrong Channel Layout on Stereo Trailer (fix)
- 14 Free Audio LUFS Tools for Fest Trailers (blog)
- Steam Store Trailer Frame Demo Scope Audit
- Wednesday Demo Build Smoke Ritual
- Your First BUILD_RECEIPT JSON and Upload Log
- Official: Steamworks — Trailers, MDN — Autoplay guide
Prove three unmute cycles on the live store embed before you prove −14 LUFS on the project WAV—fest visitors watch the store player, not your DAW export folder.