Audio
Activating Imgix Video
Set fm to a video output format — mp4, hls, or dash — for Imgix Video parameters to take effect.
Imgix Video provides a set of audio parameters for controlling volume, normalization, equalization, noise reduction, and fade timing. These apply to all video output formats (fm=mp4, fm=hls, fm=dash) as well as audio-only extractions.
Audio-Only Output
To extract just the audio track from a video source, use fm=m4a, fm=mp3, or fm=wav. No video encoding is performed. See the Video Format page for the full reference including encoding parameters.
The unmodified source video — use this as a reference when comparing the effect of each audio parameter.
fm=mp4 alone.Audio as a Source
Imgix also accepts standalone audio files as sources — not just video. Pass an MP3, M4A, WAV, FLAC, or OGG URL and apply the same video-audio-* DSP toolchain: transcode it, normalize it, denoise it, EQ it, trim it, or transcribe and translate it.
Render trigger
Parameters don’t render on their own — the output format comes from fm. Use fm=m4a, fm=mp3, or fm=wav for processed audio, fm=vtt for a transcript, or fm=json for stream metadata. A bare audio URL with no fm passes the original file through unmodified.
Accepted Source Formats
| Container | Typical MIME | Notes |
|---|---|---|
| MP3 | audio/mpeg | The universal podcast and legacy format. |
| M4A / AAC | audio/x-m4a, audio/mp4, audio/aac | Apple/web-friendly AAC in an MPEG-4 container. |
| WAV | audio/x-wav, audio/wav | Lossless PCM. |
| FLAC | audio/flac, application/x-flac | Lossless compressed. |
| Ogg | audio/ogg, application/ogg | Vorbis/Opus in an Ogg container. |
Video presence is decided by streams, not MIME or extension. An audio-only MP4 (no video stream) is treated as audio — track.mp4?fm=m4a works and track.mp4?fm=mp4 returns 424. Cover art embedded in MP3/M4A/FLAC files is not a decodable video stream.
What You Can Produce
Audio sources only support frameless outputs. Frame-producing requests return 424 source has no video track.
| Output | fm= value | Result |
|---|---|---|
| Processed audio | m4a, mp3, wav | Full video-audio-* DSP chain applied. fm=m4a with video-generate-subtitles=on also embeds a transcript as a timed-text track. |
| Transcript | vtt | Whisper AI transcription (video-generate-subtitles=on), optionally MADLAD-translated (video-vtt-lang=<lang>). |
| Metadata | json | FFprobe stream dump: codec, duration, channels, sample rate. |
| Any frame-producing output | mp4, hls, dash, jpg, png, … | 424 source has no video track |
Transcription
Use fm=vtt&video-generate-subtitles=on to transcribe an audio file to WebVTT. These are the same parameters documented on Subtitle Generation — audio is a new source for them, not a new set of parameters.
When fm=m4a is combined with video-generate-subtitles=on, Imgix embeds the transcript as a timed-text track inside the M4A file. MP3 and WAV containers cannot carry a timed-text track — use fm=m4a to embed the transcript, or fetch it separately with fm=vtt.
Recipe Examples
The examples below use real audio files hosted on an Imgix source. Replace the domain and path with your own source and file.
A podcast platform wants all uploaded MP3s to hit a consistent loudness target before delivery, regardless of how the source was recorded.
video-audio-norm=true (EBU R128 two-pass loudness normalization) and re-encodes to 128 kbps M4A with fm=m4a&video-audio-bitrate=128k.Transcode a FLAC master to lossless 48 kHz WAV:
https://your-source.imgix.net/master.flac?fm=wav&video-audio-samplerate=48000Transcribe an audio file to WebVTT:
https://your-source.imgix.net/episode.mp3?fm=vtt&video-generate-subtitles=onFor a full list of error codes returned by the Video API, see HTTP Status Codes.
Audio Overlays
Mix a standalone audio file — background music or a voiceover — over a video using the audio-mark parameter family. Point audio-mark at a remote audio file and Imgix fetches it, fades it, and either mixes it under the original soundtrack or replaces it entirely. Up to 4 layers are supported.
See the individual parameter pages for full details:
audio-mark— overlay URL and layer syntaxaudio-mark-volume— per-layer gainaudio-mark-mode—mixorreplaceaudio-mark-duck— automatic sidechain duckingaudio-mark-loop— loop to fill the windowaudio-mark-start/audio-mark-end— timing windowaudio-mark-fade-in/audio-mark-fade-out— envelope fadesaudio-mark-base— base URL for relative paths
soundtrackalias. Everyaudio-mark*parameter also answers tosoundtrack*—soundtrack=music.mp3,soundtrack-volume=0.4, etc. Both forms share the same cache entry.