The simplest method to remove audio from a video file uses the -an parameter, which tells FFmpeg
to exclude all audio streams from the output.
# Remove audio and copy video stream
ffmpeg -i input.mp4 -an -c:v copy output_no_audio.mp4
# Remove audio with re-encoding
ffmpeg -i input.mp4 -an -c:v libx264 output_no_audio.mp4
# Remove audio and specify quality
ffmpeg -i input.mp4 -an -c:v libx264 -crf 23 output_no_audio.mp4
For more control over which streams to remove, use the -map parameter to select only video
streams while excluding audio.
# Map only video stream (0:v:0)
ffmpeg -i input.mp4 -map 0:v:0 -c:v copy output_no_audio.mp4
# Map video stream with re-encoding
ffmpeg -i input.mp4 -map 0:v:0 -c:v libx264 -c:a copy output_no_audio.mp4
# Multiple video streams without audio
ffmpeg -i input.mp4 -map 0:v -map 0:s? -an -c:v copy output_no_audio.mp4
Automate audio removal for multiple files using shell scripting:
#!/bin/bash
# Process all MP4 files in current directory
for file in *.mp4; do
if [ -f "$file" ]; then
output="silent_${file}"
ffmpeg -i "$file" -an -c:v copy "$output"
echo "Processed: $file -> $output"
fi
done
When removing audio, preserving video quality is crucial. Using stream copying maintains original quality while removing audio tracks.
# Preserve original quality with stream copying
ffmpeg -i input.mp4 -an -c:v copy -c:s copy output_no_audio.mp4
# With quality control during re-encoding
ffmpeg -i input.mp4 -an -c:v libx264 -crf 18 -preset slow output_high_quality.mp4
# Fast processing with moderate quality
ffmpeg -i input.mp4 -an -c:v libx264 -crf 23 -preset fast output_balanced.mp4
For videos with multiple audio streams, you can selectively remove specific audio tracks while preserving others.
# Remove only first audio stream, keep video and subtitles
ffmpeg -i input.mp4 -map 0:v -map 0:a:1 -map 0:s? -c copy output.mp4
# Keep video only (remove all audio and subtitles)
ffmpeg -i input.mp4 -map 0:v -c:v copy output_video_only.mp4
# Remove specific audio stream by index
ffmpeg -i input.mkv -map 0:v -map 0:a:0 -map 0:s? -c copy output_without_second_audio.mp4
FFmpeg's audio removal capabilities provide precise control over video content by eliminating unwanted audio
tracks while preserving video quality. The -an parameter offers the simplest method for
complete audio removal, while the -map option provides granular control over individual
streams. For optimal performance, use stream copying with -c:v copy to maintain original
quality without re-encoding. When format conversion is required, specify appropriate video codecs like
libx264 with suitable quality parameters. This technique is invaluable for creating silent
background videos, preparing content for external audio tracks, or producing visual-only materials. The
ability to process multiple files in batch mode significantly improves workflow efficiency for content
creators managing large video libraries. Advanced users can combine audio removal with other operations like
resolution adjustment, format conversion, or video trimming in single commands. Mastering these audio
removal techniques provides a foundation for more complex video processing workflows and enhances overall
content creation capabilities.