Video · 59 tools · nothing uploads

Draw a waveform image

Draw an audio file's (or a video's audio track's) peaks as a PNG, one column per pixel of width, decoded through the same PCM path as audio-reverse and drawn straight into a pixel buffer, the way font-preview rasterizes glyphs, with no canvas. WAV decodes everywhere; other codecs need a browser.

Input

Options

Draw a waveform image turns a clip's peaks into a PNG, one bar per pixel of width, at 800 by 200 pixels by default in a colour you pick. Decoded PCM samples go directly into a bitmap, skipping any canvas API. WAV opens in Node and the browser; every other codec needs a browser tab first.

Questions

What determines the shape drawn?

For every pixel column, the tool finds the minimum and maximum peak sample within that slice of time and draws a vertical bar between them, the standard peaks style of waveform.

Can I change the size or colour?

Yes. width and height default to 800 by 200 pixels, and color takes a 6 digit hex code like #3b82f6, the default blue used here.

Why is there no canvas involved?

Because the pixel buffer is written directly, the same rasterizing approach font-preview uses for glyphs, so this can run without OffscreenCanvas.

Does it work on a video file?

Yes, on its audio track. Only the audio is decoded and drawn; the video picture itself is not read.

What image format do I get?

Always PNG, named after your source file with -waveform.png on the end.

Related Video tools

n→nConvert audioChange an audio file between MP3, WAV, FLAC, Ogg and M4A (AAC). In the browser only, like video-convert, because mediabunny decodes and encodes through WebCodecs, which Node has no equivalent of.Runs on each file you dropn→nNormalize audio volumeScale an audio (or video's audio track) so its loudest sample hits a target peak level: a two-pass peak scan followed by a gain-scaled re-encode, both through WebCodecs, so this runs in the browser only, like video-convert. Always outputs MP4 with an unchanged video track (if any).Runs on each file you dropn→1Trim or merge audioCut an audio file down to a start-end range, or concatenate two or more audio files one after another. A packet-level copy with no decoding, so this runs in Node, the CLI and MCP as well as the browser. Output is always an MP4 audio file (.m4a).Combines the files you dropn→nExtract audio from videoPull the audio track out of a video into its own MP4 audio file. A packet-level copy with no decoding or re-encoding, so this runs in Node, the CLI and MCP as well as the browser.Runs on each file you dropn→nMute videoDrop the audio track from a video, keeping the picture untouched. A packet-level copy of the video track only, no decoding, so this runs in Node, the CLI and MCP as well as the browser.Runs on each file you dropn→nReverse audioPlay an audio file (or a video's audio track) end to start, decoded to raw samples and re-encoded as WAV. WAV input decodes in Node, the CLI and MCP as well as the browser, the same PCM path audio-trim-merge's packet copy sits next to; AAC, MP3, Opus, FLAC and Vorbis need a browser.Runs on each file you dropn→nFade audio in or outRamp an audio file's (or a video's audio track's) volume up from silence at the start, down to silence at the end, or both, linear or logarithmic, decoded and re-encoded as WAV through the same PCM path as audio-reverse. WAV decodes everywhere; AAC, MP3, Opus, FLAC and Vorbis need a browser.Runs on each file you dropn→nConvert mono to stereo or backChange an audio file's (or a video's audio track's) channel count: average every channel down to mono, duplicate a mono track into identical left and right channels, or swap left and right, decoded and re-encoded as WAV through the same PCM path as audio-reverse. WAV decodes everywhere; other codecs need a browser.Runs on each file you drop