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

  1. The fastest way to drop audio with -an (lossless)
  2. The -map approach for selecting exactly what to keep
  3. Why “remove audio” is the opposite of “extract audio”
  4. Silencing audio instead of removing it
  5. Removing only one of several audio tracks
  6. Batch-removing audio from many files
  7. 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.

OptionMeaningEffect
-c:v copyCopy video codecNo re-encode, no quality change
-anDisable audioAll audio tracks dropped
(omit -an)DefaultAudio 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.

-an vs -map 0:v-an says “no audio at all.” -map 0:v says “include only the video.” Both produce a silent video; -map is 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.

TaskWhat you keepOutputCommand idea
Remove audio (this article)Video onlySilent .mp4-c:v copy -an
Extract audioAudio 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).



Tested with FFmpeg 8.1 — verified with our command-check script Primary sources: ffmpeg.org/ffmpeg.html / trac.ffmpeg.org/wiki/Map