Select a clip from your episode audio — 60–90 seconds is typical for social media; use FFmpeg to extract it: 'ffmpeg -i episode.mp3 -ss 00:10:30 -t 90 clip.mp3'
Generate a waveform visualization overlaid on a background image using FFmpeg's showwaves filter: 'ffmpeg -loop 1 -i background.png -i clip.mp3 -filter_complex "[1:a]showwaves=s=1280x200:mode=line:rate=25:colors=white[wave];[0:v][wave]overlay=0:440" -c:v libx264 -c:a aac -shortest -t 90 audiogram.mp4' — adjust size and overlay position to match your canvas dimensions
Add a caption subtitle track to the audiogram if you have a transcript of the clip: use FFmpeg's subtitles filter to burn in text or include a soft subtitle track alongside the video for accessibility
For automated batch generation, use the Remotion audiogram template (open-source, React-based) which accepts audio URL, waveform style, and background image as props and renders via a headless Node.js process — this approach is easier to customize than raw FFmpeg filter graphs
Encode the output for the target platform: square (1:1, 1080×1080) or portrait (9:16, 1080×1920) for Instagram and TikTok, landscape (16:9, 1920×1080) for YouTube and Twitter — set the canvas size in your FFmpeg command or Remotion configuration before rendering
Automate end-to-end by triggering generation when a new RSS episode appears: poll the feed or use a webhook from your hosting platform, extract the clip, generate the audiogram, and post to social media using the relevant platform API
Known gotchas
FFmpeg's showwaves filter is CPU-intensive for high-resolution output — rendering a 90-second 1080p audiogram may take several minutes on a single CPU; use a cloud render farm or GPU-accelerated encoding if throughput is a requirement
The '-shortest' flag in FFmpeg stops encoding when the shortest input stream ends — without it, a looping background image will cause the output to run indefinitely; always include it when combining a still image with audio
Platform aspect ratio requirements change — verify current specifications for each social media platform before encoding, as landscape content may be cropped or displayed incorrectly in portrait-first apps
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp