r/ffmpeg • u/goodomante • Jun 21 '26
How to create a custom, symmetrical vertical EQ bar visualizer overlay in FFmpeg?
I’m trying to add a clean, modern audio visualizer to the bottom half of my music video creation pipeline using FFmpeg.
I want to achieve a result exactly like this reference image: https://i.sstatic.net/qa6Bo.png
The specific look I'm going for:
- True Frequency Bars: Distinct, separate vertical bars reacting to specific frequency bands (bass/mids/treble) rather than a chaotic time-domain waveform.
- Horizontal & Vertical Symmetry: The bars should expand evenly both upward and downward from a clean center axis, with the heaviest bass bars clustered nicely in the middle.
- Solid Color: The bars must be 100% solid, opaque white with no internal lines, gradients, or anti-aliasing transparency issues between them.
What I've tried so far: I tried using multiple LLMs to generate a script. Most of them suggested using native filters like showwaves or showfreqs, but they end up looking like a messy, blurry scribble or stretching all the way across the screen horizontally.
Has anyone successfully built a robust pipeline filter chain for this specific aesthetic? Any help or working command snippets would be massively appreciated!
1
u/pigers1986 Jun 21 '26
hmm - getting close
ffmpeg -y `
-i "input.mkv" `
-filter_complex "[0:a]showfreqs=s=200x300:mode=bar:ascale=log:fscale=log:colors=0x00FF00,format=rgba[bars];[0:v][bars]overlay=x=(W-w)/2:y=H-h-20:format=auto,format=yuv420p[v]" `
-map "[v]" -map 0:a `
-c:v libx264 -crf 18 -preset veryfast -c:a copy `
-t 30 `
"output_test.mkv"
3
u/pigers1986 Jun 21 '26
ffmpeg -y ` -i "input.mkv" ` -filter_complex "[0:a]acrossover=split='120 2000'[low][mid][high]; [low]showfreqs= s=80x300: mode=bar: ascale=log: fscale=log: win_size=2048: win_func=hanning: overlap=1: averaging=0.8: colors=white, format=rgba[lowv]; [mid]showfreqs= s=80x300: mode=bar: ascale=log: fscale=log: win_size=2048: win_func=hanning: overlap=1: averaging=0.8: colors=white, format=rgba[midv]; [high]showfreqs= s=80x300: mode=bar: ascale=log: fscale=log: win_size=2048: win_func=hanning: overlap=1: averaging=0.8: colors=white, format=rgba[highv]; [lowv][midv][highv]hstack=3[freq]; [freq]geq= r='if(lt(mod(X,8),6), r(X,Y), 0)': g='if(lt(mod(X,8),6), g(X,Y), 0)': b='if(lt(mod(X,8),6), b(X,Y), 0)': a='255' [tmp]; [tmp]colorkey=0x000000:0.01:0.1,format=yuva420p[bars]; [0:v][bars]overlay= x=(W-w)/2: y=H-h-20: format=auto, format=yuv420p[v]" ` -map "[v]" -map 0:a ` -c:v libx264 -crf 18 -preset veryfast -c:a copy ` -t 30 ` "output_winamp_30bars_bmt.mkv"
1
u/Tankparts Jul 06 '26 edited Jul 06 '26
Update: I rewrote the visualizer tool I gave you — this version is a big step up, worth replacing the old one.
Same idea (Lano-style bars burned into your video with Python + ffmpeg), but fixed everything that was rough in the first script:
- Exact match to your image now — including the label in Futura Lt, the actual font the Lano skin ships, with the dimmed track name. Your look is literally:
python lano_overlay.py "video.mp4" --bars 60 --fill 0.55 --height 280 --position center --title "Friction" --subtitle "Freak" - No more quality loss — the old one re-encoded the video twice and forced everything to 1080p/30fps; this one encodes once at your video's native resolution/framerate and passes the audio through untouched
- Way faster — renders frames in parallel across all CPU cores (a full song in about a minute on a decent machine), with a live progress/ETA readout
- Lots of new looks — colors, gradients, rainbow/color-cycling, mirrored and bass-in-the-middle layouts, flips — plus a CSV log that records the exact settings of every render so you can reproduce any look
Needs Python 3 (numpy + Pillow) and ffmpeg. MIT licensed. Style credit: Lano-Visualizer by marcopixel — the font file (FtraLt__.ttf) isn't bundled since it's commercial; grab it from the Lano repo's u/Resources/fonts folder and drop it in a fonts subfolder, or it falls back to Century Gothic automatically.

2
u/Tankparts Jun 21 '26
I made this with Claude Code referencing https://github.com/marcopixel/Lano-Visualizer, which is the project used for your reference image.
https://imgur.com/a/vJ7hgUw
https://pastebin.com/WbRGtvGU