Skip to main content

Audio to video converter

Turn audio into a shareable video with backgrounds, waveforms, and titles.

No watermarkFree & unlimited
All processing happens in your browser — files never leave your device. The audio engine loads once from a CDN.

Turn an audio file into an MP4 you can upload to a platform that only accepts video. The page composites a single still frame on an HTML canvas at the exact output resolution — your background image fitted inside it, a solid colour behind, and optional title and subtitle text drawn with real browser fonts on a translucent panel — then hands that one PNG to ffmpeg, which loops it against your audio and encodes H.264 video with AAC audio at 192 kbps. Five resolutions are available: 1080p, 720p, 4K, square for feeds and vertical for reels. Because the frame is static, the video encode is cheap regardless of length, and file size stays close to the size of the audio itself.

Key facts about Audio to video converter

Key facts about Audio to video converter
Frame renderingOne PNG composited on a canvas at the output resolution, then looped by ffmpeg — the exported video is a still image, not an animation
Video codeclibx264 with -tune stillimage, preset veryfast, yuv420p pixel format for universal playback
Audio codecAAC at 192 kbps, regardless of the input's original bitrate
Frame rate30 fps, with -shortest so the video ends exactly when the audio does
Resolutions1920x1080, 1280x720, 3840x2160, 1080x1080 square and 1080x1920 vertical
Image fittingYour image is scaled to fit inside the frame preserving aspect ratio; the background colour fills the letterbox bars
TextTitle up to 120 characters and subtitle up to 160, drawn in a system sans-serif on a rounded translucent black panel, positioned on a nine-cell grid
Text sizeSmall, medium or large, scaled relative to the output height so it looks the same at 720p and 4K
Animated waveformAvailable in the on-screen preview only. The exported MP4 carries the still frame
Size caps80 MB for the audio, 50 MB for the background image
Image formatsJPG, PNG, WebP, BMP and HEIC — HEIC is converted before compositing

What happens to your file

Both your audio and your image stay in the browser. The frame is drawn on a canvas element on this page, and the encode runs on ffmpeg compiled to WebAssembly inside a Web Worker on your own device — the audio, the image and the finished MP4 all live in that worker's in-memory filesystem and in your tab. Nothing is uploaded. The only network request is the one-time download of the ffmpeg core, about 32 MB of fixed public code from the jsDelivr CDN that your browser caches and reuses for every media tool here.

About this tool

  1. 1

    Add the audio

    Drop an MP3, WAV, OGG, FLAC, AAC or M4A up to 80 MB. That cap is lower than the other audio tools here because an H.264 encode runs alongside it.

  2. 2

    Choose a background

    Upload an image — cover art, a photo, a title card — or pick a solid colour or gradient. The image is fitted inside the frame and the colour fills any bars.

  3. 3

    Add title text

    Optional title and subtitle, positioned anywhere on a nine-cell grid, in small, medium or large. They are drawn with real browser fonts, so they stay sharp at 4K.

  4. 4

    Pick the resolution

    1080p for YouTube, square for an Instagram feed post, vertical for reels and shorts, 4K only if the source image is large enough to justify it.

  5. 5

    Render

    The frame is composited on a canvas, then ffmpeg loops it against the audio and encodes H.264 with AAC. Progress runs as a percentage and can be cancelled.

  6. 6

    Download the MP4

    The result plays anywhere H.264 does, which in practice is every platform and every device made in the last fifteen years.

Specs & compatibility
Audio inputMP3, WAV, OGG, FLAC, AAC, M4A, up to 80 MB
Image inputJPG, PNG, WebP, BMP, HEIC, up to 50 MB
OutputMP4, H.264 video plus AAC audio
Resolutions1080p, 720p, 4K, 1080x1080, 1080x1920
Output sizeClose to the audio's own size — a static H.264 frame at 30 fps compresses to almost nothing
EngineSingle-threaded ffmpeg.wasm 0.12.10, ~32 MB core fetched once and cached
SpeedFast for a video encode because the frame never changes, but still single-threaded: expect minutes for a long track
BrowsersChrome, Edge, Firefox and Safari 15+
  • Match the image resolution to the output. A 640-pixel cover scaled to 4K is soft; 1080p is the sweet spot for most uploads anyway.
  • The exported video shows a still frame. If you need an animated waveform in the file itself, this is not the tool — the animation here is preview-only.
  • Square and vertical are the two resolutions that matter for social. A 1080p landscape video gets letterboxed hard in a phone-first feed.
  • Audio is always re-encoded to AAC at 192 kbps, so there is no point supplying a 320 kbps MP3 and expecting it to stay 320.
  • Output size tracks the audio, not the length of the video, because a static H.264 frame compresses to almost nothing after the first keyframe.
  • Text is drawn on a translucent dark panel, so light photos still give readable titles without you having to edit the image first.
  • The 80 MB audio cap is roughly an hour of 192 kbps MP3. For longer material, split it first with the audio trimmer.
  • Still image, solid colour or gradient background
  • Title and subtitle text on a nine-cell position grid
  • Three text sizes scaled to the output resolution
  • Five resolutions including square and vertical
  • H.264 video with AAC audio at 192 kbps
  • HEIC background images converted automatically
  • Cancellable render with live progress
  • Uploading a podcast episode to YouTube, which needs a video file
  • Making a lyric-free track playable on a platform that only accepts video
  • Turning an interview recording into a shareable square post with a title card
  • Creating a vertical video from an audio clip for reels or shorts
  • Publishing a music demo with cover art as the visual
  • Sending a long audio file as a video when the recipient's platform blocks audio attachments
No. The on-screen preview can show an animated waveform, but that is a preview feature only. What gets exported is a single still frame — your image or background colour, plus any title text — looped for the full duration of the audio. This is deliberate: a static frame encodes to almost nothing after the first keyframe, so the MP4 stays close to the size of the audio itself, and the render finishes in a fraction of the time a per-frame animation would take in a browser.
1080p in the standard 1920x1080 frame, which is what the platform expects and what most viewers watch at. 4K is only worth it if your background image is genuinely that large, otherwise you are upscaling a small picture into a much bigger file. The output is H.264 video with AAC audio in an MP4 container, which is exactly what YouTube, Vimeo, LinkedIn and every other platform accept without a transcode warning. Square and vertical exist for feed and reel formats.
Because this tool runs an H.264 video encode at the same time. ffmpeg.wasm works inside a single WebAssembly heap of roughly 2 GB, and here that heap has to hold the audio, the PNG frame, libx264's working buffers and the growing MP4 output simultaneously. The 80 MB cap is where renders complete reliably rather than crashing the tab. In practice it covers about an hour of 192 kbps MP3, which is longer than most single uploads.
Yes, slightly. The MP4 container needs its audio in a compatible codec, and the tool encodes to AAC at 192 kbps regardless of what went in. A 320 kbps MP3 is therefore decoded and re-encoded down to 192 kbps AAC — which is a broadly comparable quality level, since AAC is more efficient than MP3, but it is a second lossy generation. For speech this is invisible. For music you care about, be aware that the video is not a lossless carrier of your master.
On the canvas, before ffmpeg ever sees the frame. The text is drawn with a real system sans-serif at a size scaled to the output height, on a rounded translucent black panel so it stays readable over a bright photo, and positioned using a nine-cell grid — top, middle or bottom crossed with left, centre or right. Drawing it in the browser rather than in ffmpeg matters because the standard ffmpeg WebAssembly build has no font support at all, and browser text rendering is sharper.
No. The frame is composited on a canvas element in this page, and the video is encoded by ffmpeg compiled to WebAssembly running in a Web Worker on your own machine. Your audio, your background image and the finished MP4 exist only in your tab and in that worker's in-memory filesystem. The single network request is the one-time fetch of the ffmpeg core — about 32 MB of fixed public code from the jsDelivr CDN — which carries nothing of yours and is cached afterwards.
View all

Part of Audio tools that run in your browser

Updated

We use anonymous analytics to improve ToolChamp. No personal data is stored or sold. Privacy Policy