Audio & playback
No sound after converting a video: why audio disappears
Short answer
A converted video loses its sound in three ways: the conversion copied only the video stream, the audio codec is not valid in the new container (WebM needs Opus or Vorbis, MP4 needs AAC or similar), or the source never had audio. Run ffprobe on the source and the result to see the audio streams, then convert again with an explicit audio codec, for example -c:a aac.
Key takeaways
- Check whether the source has an audio stream before blaming the converter.
- Container and codec must match: WebM takes Opus or Vorbis; MP4 normally carries AAC.
- A command with -an, or one that maps only the video, produces a silent file by design.
- Re-encode the audio instead of copying it when the codec is not allowed in the target container.
Find your case
| What you see | What it usually means | Do this |
|---|---|---|
| Source plays with sound, converted file is silent everywhere | Audio stream dropped (-an or -map 0:v only) | Convert again with the audio mapped (step 2) |
| Converted file plays silent in some players only | Audio codec the player cannot decode | Re-encode to AAC in MP4 (step 3) |
| Converting to WebM gives a silent or invalid file | AAC or MP3 inside WebM | Use Opus or Vorbis (step 3) |
| Source has no sound either | Muted export or screen recording without audio | Recover from the original (step 1) |
| Multi-track source | The wrong audio track was picked | Map the track you want (step 2) |
Fix it step by step
Check the source
ffprobe -hide_banner in.mkvlists the streams. Look for a line starting with Stream and the word Audio. If there is none, the source has no audio; go back to the original recording or editor project.Map video and audio explicitly
ffmpeg -i in.mkv -map 0:v:0 -map 0:a:0 out.mp4selects the first video and first audio stream. Without -map, ffmpeg chooses one of each by default, but a flag such as -an removes audio completely.Pick an audio codec the container allows
For MP4 use AAC:
-c:a aac -b:a 192k. For WebM use Opus:-c:a libopus -b:a 128k. Copying (-c:a copy) only works when the source codec is already allowed in the target.Verify the result
Run ffprobe on the new file and confirm it lists an Audio stream, then play it in a normal player before uploading.
Which audio goes in which container
| Container | Common safe audio | Avoid |
|---|---|---|
| MP4 | AAC | Opus or Vorbis in older players |
| WebM | Opus, Vorbis (per the WebM Project) | AAC, MP3 |
| MOV | AAC, PCM | Opus |
| MKV | Almost anything | Nothing, but convert before uploading |
Frequently asked questions
Why does my converted video have no sound?
The conversion dropped the audio stream, the audio codec is not allowed in the new container, or the source was silent.
What audio does WebM support?
WebM uses Opus or Vorbis audio. AAC and MP3 are not valid WebM audio.
How do I keep the audio when converting?
Map it and pick a codec the container supports, for example ffmpeg -i in.mkv -c:v libx264 -c:a aac out.mp4.
How can I see if a file has audio?
Run ffprobe on it and look for an Audio stream in the list.
Sources
- FFmpeg Documentation: Automatic stream selection and -map (official, checked 2026-10-06)
- The WebM Project: WebM container guidelines (audio and video codecs) (official, checked 2026-10-06)
Reviewed 2026-10-06. Steps not attributed to a source are general video practice or computed above.