Sometimes you want the picture but not the sound — a screen recording with background chatter, a clip you plan to add music to later, or a file you want to share without its original soundtrack. With FFmpeg you can remove the audio track while keeping the video bit-for-bit identical, and it finishes in seconds because there is no re-encoding. This guide shows the two reliable ways to do it and explains how “remove audio” differs from “extract audio.” Estimated time: 5 minutes.
Tested with: FFmpeg 8.1
What You’ll Learn
- The fastest way to drop audio with
-an(lossless) - The
-mapapproach for selecting exactly what to keep - Why “remove audio” is the opposite of “extract audio”
- Silencing audio instead of removing it
- Removing only one of several audio tracks
- Batch-removing audio from many files
- Troubleshooting and FAQ
1. The Fastest Way — Drop Audio with -an
This is the whole command. It keeps the video stream untouched and discards every audio track.
ffmpeg -i input.mp4 -c:v copy -an output.mp4
-c:v copy… copy the video stream as-is (no quality loss, no re-encode)-an… “audio none” — disable audio output entirely
Because nothing is re-encoded, a one-hour video processes in a few seconds and the picture is identical to the source.
| Option | Meaning | Effect |
|---|---|---|
-c:v copy | Copy video codec | No re-encode, no quality change |
-an | Disable audio | All audio tracks dropped |
(omit -an) | Default | Audio is carried over |
2. The -map Approach — Keep Exactly What You Want
-an is the simplest answer, but the -map option gives you precise control. To keep only the video and explicitly exclude audio:
ffmpeg -i input.mp4 -map 0:v -c:v copy output.mp4
-map 0:v… take only the video stream(s) from input 0- Audio is not selected, so it never reaches the output
This is equivalent in result to -an, but it scales naturally when a file has subtitles or data streams you also want to handle. See the stream mapping guide for the full mental model of -map.
-anvs-map 0:v—-ansays “no audio at all.”-map 0:vsays “include only the video.” Both produce a silent video;-mapis the better habit when you start juggling multiple stream types.
3. “Remove Audio” Is Not “Extract Audio”
These two tasks sound similar but are opposites, and mixing them up is the most common mistake.
| Task | What you keep | Output | Command idea |
|---|---|---|---|
| Remove audio (this article) | Video only | Silent .mp4 | -c:v copy -an |
| Extract audio | Audio only | .mp3 / .m4a | -vn -c:a copy |
If you want to save the soundtrack as a separate audio file instead of throwing it away, you need the opposite flags (-vn to drop video). That workflow is covered in the extract audio guide.
4. Silence the Audio Instead of Removing It
Some players and editors behave better when a file has an audio track that happens to be silent, rather than no audio track at all. To keep a (silent) AAC track:
ffmpeg -i input.mp4 -af volume=0 -c:v copy -c:a aac output.mp4
-af volume=0… set the audio volume to zero (full silence)-c:a aac… the audio must be re-encoded because the filter changes the samples
The video is still copied losslessly; only the audio is re-encoded into a silent track. If you truly want no track, prefer -an from section 1.
5. Remove Only One of Several Audio Tracks
If a file has two audio tracks (for example, commentary plus original audio) and you only want to drop the first one, select the video and the audio track you want to keep:
ffmpeg -i input.mp4 -map 0:v -map 0:a:1 -c copy output.mp4
-map 0:a:1… keep the second audio track (indices start at 0)- The first audio track (
0:a:0) is left out
Run ffprobe input.mp4 first to see how many audio streams exist and in what order. For deeper handling of multi-track files, see working with multiple audio tracks.
6. Batch-Remove Audio from Many Files
Process every MP4 in the current folder, writing silent copies with a _mute suffix:
for f in *.mp4; do
ffmpeg -i "$f" -c:v copy -an "${f%.mp4}_mute.mp4"
done
Because -c:v copy -an does no re-encoding, even a folder of long videos finishes quickly.
7. Troubleshooting
Issue 1: The output still has sound
Cause: -an was placed before -i or omitted entirely.
Fix: Put -an among the output options, after -i input.mp4. The command in section 1 has the correct order.
Issue 2: “Could not find tag for codec … in stream”
Cause: The video codec is not compatible with the chosen container.
Fix: Match the container to the codec, or re-encode video with -c:v libx264:
ffmpeg -i input.mp4 -c:v libx264 -crf 18 -an output.mp4
Issue 3: File plays but seeks oddly on the web
Cause: The moov atom is at the end of the file.
Fix: Add -movflags +faststart:
ffmpeg -i input.mp4 -c:v copy -an -movflags +faststart output.mp4
FAQ
Q1. Does removing audio reduce video quality?
A. No. With -c:v copy the video bitstream is copied unchanged — not a single bit is altered.
Q2. Can I add new audio after removing the old one? A. Yes. Remove the original first, then mux in a new track. The full two-step workflow is in our guide on replacing a video’s audio.
Q3. What’s the difference between -an and -vn?
A. -an removes audio (keeps video). -vn removes video (keeps audio). They are opposites.
Q4. My player shows a silent track even after -an. Why?
A. Some players display a placeholder track. Confirm with ffprobe output.mp4 — if no audio stream is listed, the audio really is gone; what you see is a UI artifact.
Q5. Can I remove audio from a MKV or MOV file the same way?
A. Yes. -c:v copy -an works for any container; just give the output the matching extension (output.mkv, output.mov).
Related Articles
- Extract Audio from Video — MP3 and AAC
- Replace a Video’s Audio Track
- Stream Mapping with -map
- Working with Multiple Audio Tracks
Tested with FFmpeg 8.1 — verified with our command-check script Primary sources: ffmpeg.org/ffmpeg.html / trac.ffmpeg.org/wiki/Map