benchflow-ai / ffmpeg-audio-processing
Install for your project team
Run this command in your project directory to install the skill for your entire team:
mkdir -p .claude/skills/ffmpeg-audio-processing && curl -L -o skill.zip "https://fastmcp.me/Skills/Download/4395" && unzip -o skill.zip -d .claude/skills/ffmpeg-audio-processing && rm skill.zip
Project Skills
This skill will be saved in .claude/skills/ffmpeg-audio-processing/ and checked into git. All team members will have access to it automatically.
Important: Please verify the skill by reviewing its instructions before using it.
Extract, normalize, mix, and process audio tracks - audio manipulation and analysis
0 views
0 installs
Skill Content
--- name: FFmpeg Audio Processing description: Extract, normalize, mix, and process audio tracks - audio manipulation and analysis --- # FFmpeg Audio Processing Skill Extract, normalize, mix, and process audio tracks from video files. ## When to Use - Extract audio from video - Normalize audio levels - Mix multiple audio tracks - Convert audio formats - Extract specific channels - Adjust audio volume ## Extract Audio ```bash # Extract as MP3 ffmpeg -i video.mp4 -vn -acodec libmp3lame -q:a 2 audio.mp3 # Extract as AAC (copy, no re-encode) ffmpeg -i video.mp4 -vn -c:a copy audio.aac # Extract as WAV (uncompressed) ffmpeg -i video.mp4 -vn -acodec pcm_s16le audio.wav # Extract specific audio stream ffmpeg -i video.mp4 -map 0:a:1 -c:a copy audio2.aac ``` ## Normalize Audio ```bash # Normalize loudness (ITU-R BS.1770-4) ffmpeg -i input.mp4 -af "loudnorm=I=-23:TP=-1.5:LRA=11" output.mp4 # Simple normalization ffmpeg -i input.mp4 -af "volume=2.0" output.mp4 # Peak normalization ffmpeg -i input.mp4 -af "volumedetect" -f null - # Then use the detected peak to normalize ffmpeg -i input.mp4 -af "volume=0.5" output.mp4 ``` ## Volume Adjustment ```bash # Increase volume by 6dB ffmpeg -i input.mp4 -af "volume=6dB" output.mp4 # Decrease volume by 3dB ffmpeg -i input.mp4 -af "volume=-3dB" output.mp4 # Set absolute volume ffmpeg -i input.mp4 -af "volume=0.5" output.mp4 ``` ## Channel Operations ```bash # Extract left channel ffmpeg -i stereo.mp3 -map_channel 0.0.0 left.mp3 # Extract right channel ffmpeg -i stereo.mp3 -map_channel 0.0.1 right.mp3 # Convert stereo to mono ffmpeg -i stereo.mp3 -ac 1 mono.mp3 # Convert mono to stereo ffmpeg -i mono.mp3 -ac 2 stereo.mp3 ``` ## Mix Audio Tracks ```bash # Replace audio track ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -map 0:v:0 -map 1:a:0 output.mp4 # Mix two audio tracks ffmpeg -i video.mp4 -i audio2.mp3 \ -filter_complex "[0:a][1:a]amix=inputs=2:duration=first" \ -c:v copy output.mp4 # Mix with volume control ffmpeg -i video.mp4 -i bgm.mp3 \ -filter_complex "[0:a]volume=1.0[voice];[1:a]volume=0.3[music];[voice][music]amix=inputs=2:duration=first" \ -c:v copy output.mp4 ``` ## Audio Delay ```bash # Delay audio by 0.5 seconds ffmpeg -i video.mp4 -itsoffset 0.5 -i video.mp4 \ -map 0:v -map 1:a -c copy output.mp4 # Using adelay filter (milliseconds) ffmpeg -i input.mp4 -af "adelay=500|500" output.mp4 ``` ## Sample Rate Conversion ```bash # Resample to 48kHz ffmpeg -i input.mp4 -af "aresample=48000" output.mp4 # Resample audio only ffmpeg -i input.mp4 -vn -af "aresample=48000" -ar 48000 audio.wav ``` ## Audio Filters ```bash # High-pass filter (remove low frequencies) ffmpeg -i input.mp4 -af "highpass=f=200" output.mp4 # Low-pass filter (remove high frequencies) ffmpeg -i input.mp4 -af "lowpass=f=3000" output.mp4 # Band-pass filter ffmpeg -i input.mp4 -af "bandpass=f=1000:width_type=h:w=500" output.mp4 # Fade in/out ffmpeg -i input.mp4 -af "afade=t=in:st=0:d=2,afade=t=out:st=8:d=2" output.mp4 ``` ## Audio Analysis ```bash # Detect volume levels ffmpeg -i input.mp4 -af "volumedetect" -f null - # Measure loudness (LUFS) ffmpeg -i input.mp4 -af "ebur128=peak=true" -f null - # Get audio statistics ffprobe -v error -select_streams a:0 \ -show_entries stream=sample_rate,channels,bit_rate \ -of json input.mp4 ``` ## Combine Multiple Audio Files ```bash # Concatenate audio files ffmpeg -i "concat:audio1.mp3|audio2.mp3|audio3.mp3" -c copy output.mp3 # Using file list # file 'audio1.mp3' # file 'audio2.mp3' ffmpeg -f concat -safe 0 -i list.txt -c copy output.mp3 ``` ## Notes - Use `-vn` to disable video when extracting audio - `-map` to select specific streams - `-af` for audio filters - `-ac` for channel count - `-ar` for sample rate - Normalization may require two passes for accurate results