FFmpeg vs AudioUtils: FFmpeg in Your Browser, No Command Line
AudioUtils runs FFmpeg in your browser. See the exact FFmpeg command behind each AudioUtils tool, and when the FFmpeg command line is still the better choice.
The quick answer
Yes, for common audio jobs. AudioUtils runs FFmpeg compiled to WebAssembly inside your browser, so converting, cutting, joining, normalizing or compressing audio uses FFmpeg without installing it or typing commands, and your files are never uploaded. For batch jobs, custom filter chains, video editing or very large files, the FFmpeg command line is still the better tool.
- Same engine — every AudioUtils tool runs an FFmpeg command in your browser via WebAssembly.
- No upload — files are processed on your device.
- Use the command line for batches, scripts, custom filters, video and files over 500 MB.
- This page lists the exact FFmpeg command behind each AudioUtils tool, so you can run the same thing yourself.
Do it in your browser — free, no upload
FFmpeg is the open-source engine behind a huge share of the world's audio and video software. It can convert almost any format to any other, but it lives on the command line, and getting a command right can take longer than the conversion itself. AudioUtils runs that same FFmpeg engine inside your browser and puts a simple interface on top. This guide explains how the two relate, lists the exact FFmpeg command each AudioUtils tool runs, and shows when the command line is still the better choice.
What FFmpeg Is
FFmpeg is a free, open-source set of tools and libraries for recording, converting and processing audio and video. Its command-line program, ffmpeg, reads an input file, decodes it, optionally runs filters, encodes the result and writes an output file. Its libraries are built into many applications, including VLC and HandBrake. It supports nearly every audio codec and container you are likely to meet, from MP3 and AAC to FLAC, Opus, WMA and the soundtracks of video files.
The trade-off is usability. You have to install it, open a terminal and know which options to type, for example -c:a for the audio codec, -b:a for the bitrate and -af for audio filters.
How AudioUtils Uses FFmpeg
AudioUtils runs FFmpeg compiled to WebAssembly, a format browsers can execute at near-native speed. When you open a tool, your browser downloads the FFmpeg engine (the @ffmpeg/core package) and runs it locally. When you drop in a file, the tool builds an FFmpeg command from your choices, runs it on your device and hands you the result.
Two things follow from that. Your files are never uploaded, because there is no server doing the work. And the output is FFmpeg's own output: the same encoders and filters you would use on the command line.
The FFmpeg Command Behind Each AudioUtils Tool
These are the commands our tools run, taken from our code, written as you would type them on the command line. File names are examples. On the free plan, tools also add -t 10 to produce a 10-second preview.
Converters
Converting to MP3 (default 320 kbps; 128, 192 and 256 are also offered):
ffmpeg -i input.wav -c:a libmp3lame -b:a 320k output.mp3
Extracting audio from a video drops the video stream with -vn:
ffmpeg -i input.mp4 -vn -c:a libmp3lame -b:a 320k output.mp3
Converting to WAV writes PCM and keeps the source bit depth: a 24-bit FLAC or ALAC becomes 24-bit WAV, while lossy sources become 16-bit:
ffmpeg -i input.flac -c:a pcm_s24le output.wav
Going from AAC to M4A, M4R or a bare .aac copies the AAC stream unchanged instead of re-encoding it. iPhone ringtones also need the iPod container named explicitly, because FFmpeg does not recognise the .m4r extension:
ffmpeg -i input.mp4 -vn -c:a copy output.m4a
ffmpeg -i input.m4a -c:a copy -f ipod ringtone.m4r
Opus output uses the libopus encoder (64 to 192 kbps in our tools):
ffmpeg -i input.wav -c:a libopus -b:a 192k output.opus
Cutter, trimmer and splitter
The cutter seeks to the start time, takes the chosen length and re-encodes with the source's own codec at the source's bitrate, so the cut is accurate to the frame and an MP3 keeps its quality:
ffmpeg -ss 30 -i input.mp3 -t 15 -c:a libmp3lame -b:a 320k cut.mp3
Joiner
The joiner decodes every file and joins them with the concat filter, which is why files in different formats can be merged. The result is an MP3 at 192 kbps:
ffmpeg -i part1.mp3 -i part2.wav -filter_complex "[0:a][1:a]concat=n=2:v=0:a=1[out]" -map "[out]" -c:a libmp3lame -b:a 192k joined.mp3
Loudness normalizer
The normalizer uses FFmpeg's loudnorm filter (EBU R128). The streaming preset targets -14 LUFS; the podcast preset uses I=-16:
ffmpeg -i input.wav -af loudnorm=I=-14:TP=-1:LRA=11 -c:a libmp3lame -b:a 192k normalized.mp3
Compressor
Lossy files are re-encoded at the chosen preset bitrate. WAV and AIFF are compressed to FLAC at compression level 8 instead, because saving them again as WAV cannot make them smaller:
ffmpeg -i input.mp3 -c:a libmp3lame -b:a 128k smaller.mp3
ffmpeg -i input.wav -c:a flac -compression_level 8 output.flac
Speed and pitch
The speed changer uses atempo, which changes tempo without changing pitch. Speeds below 0.5× chain two filters, because one atempo pass covers 0.5 to 2.0:
ffmpeg -i input.mp3 -af atempo=1.5 -c:a libmp3lame -b:a 192k faster.mp3
ffmpeg -i input.mp3 -af atempo=0.5,atempo=0.5 -c:a libmp3lame -b:a 192k quarter-speed.mp3
The pitch changer shifts pitch by relabelling the sample rate, resampling back to 44.1 kHz and correcting the length with atempo. For +2 semitones the factor is 2^(2/12), about 1.1225:
ffmpeg -i input.mp3 -af asetrate=49501,aresample=44100,atempo=0.890899 -c:a libmp3lame -b:a 192k up2.mp3
Effects
Reverse, remove silence, loop, stereo/mono and 8D audio are single filters or options, each saved as MP3 at 192 kbps:
ffmpeg -i input.wav -af areverse -c:a libmp3lame -b:a 192k reversed.mp3
ffmpeg -i input.wav -af silenceremove=start_periods=1:start_threshold=-50dB:start_silence=0.1:stop_periods=-1:stop_threshold=-50dB:stop_silence=0.3:stop_duration=0.1 -c:a libmp3lame -b:a 192k tighter.mp3
ffmpeg -stream_loop 3 -i loop.wav -c:a libmp3lame -b:a 192k looped.mp3
ffmpeg -i input.wav -ac 1 -c:a libmp3lame -b:a 192k mono.mp3
ffmpeg -i input.wav -af aformat=channel_layouts=stereo,apulsator=hz=0.09 -c:a libmp3lame -b:a 192k 8d.mp3
When to Use the FFmpeg Command Line Instead
- Batches. Converting a whole folder is one shell loop with FFmpeg; AudioUtils handles one file at a time.
- Custom processing. Chains of filters, precise EQ, sample-rate or channel-map changes, and options our tools do not expose.
- Choosing a specific track. With several audio tracks in a video,
-map 0:a:1picks the second; our tools use FFmpeg's default choice, the track with the most channels. - Video. Trimming, re-encoding or muxing video is outside AudioUtils' scope.
- Very large files. Pro accounts take files up to 500 MB; beyond that, or for multi-hour recordings, a native FFmpeg install is faster and has no browser memory limit.
- Automation. Scripts, servers and build pipelines need the command line.
When AudioUtils Is the Better Choice
- No install or admin rights, such as on a work laptop, a Chromebook, a phone or a borrowed computer.
- One-off jobs where looking up the right options would take longer than the job.
- Privacy with convenience: like a local FFmpeg install, nothing is uploaded, but there is nothing to set up.
- Safe defaults such as keeping 24-bit audio, copying AAC instead of re-encoding, and peak-safe loudness, already chosen for you.
Getting Started
For one-off jobs, start with the audio converter, the audio cutter or the audio normalizer. Free users get 5 conversions per month. The output is limited to the first 10 seconds as a preview, with a 20MB input file size limit. Upgrade to Pro for unlimited, full-length conversions. For everything else, the commands above are a good starting point for your own FFmpeg scripts, and our guide to compressing audio with FFmpeg goes further.