How to trim audio online — free, browser-based, no upload
- Step 1Drop your audio (or video) file onto the tool — Accepts MP3, WAV, FLAC, M4A, OGG, Opus, or a video file. The file is read locally — the dropzone says Runs entirely in your browser because FFmpeg 8.1 is loaded as WebAssembly into the page, not uploaded anywhere.
- Step 2Let the duration load and check the auto-filled End — On load, JAD reads the file's duration and sets End (s) to the full length and Start (s) to
0. If you do nothing else and run, you get the whole file back in the same format. - Step 3Set Start (s) — where the keep begins — Type the start of the part you want to keep, in seconds (step
0.1). FFmpeg uses-ss <start>to seek there. Everything before this point is discarded. - Step 4Set End (s) — where the keep ends — Type the end point in seconds. JAD computes duration as
end − startand passes-t <duration>. End must be greater than Start; the kept length is clamped to at least 0.01 s. - Step 5Decide on Lossless (stream-copy) — Leave it off for a clean re-encode at the source format (works for every input). Turn it on only when you want an instant, no-re-encode cut and you're keeping the same format — JAD then runs
-c copyand cut points snap to the nearest packet (~30 ms). - Step 6Run and download — JAD writes the trimmed range to a file named with a
-trimmedsuffix in the source format. The metrics line shows the engine used (a copy run vs a re-encode). Download — the file is built in memory, nothing was sent to a server.
Every control the trimmer exposes
These are the only options in the trimmer's panel — Start, End, and Lossless. There is no fade, no format dropdown, and no multi-range UI on this tool; output format always follows the source.
| Control | Type / range | What it does in FFmpeg | Default |
|---|---|---|---|
| Start (s) | Number, 0 to file duration, step 0.1 | -ss <start> — seeks to where the kept range begins; audio before it is dropped | 0 |
| End (s) | Number, 0.1 to file duration, step 0.1 | Sets -t <end − start> — the length of the kept range | Full file duration (auto-filled on load) |
| Lossless (stream-copy) | Toggle (on/off) | When on AND output format = source AND format is mp3/m4a/aac/flac/wav/ogg/opus: runs -c copy (no re-encode). Otherwise ignored and JAD re-encodes | Off |
Re-encode encoder by source format
When Lossless is off (or can't apply), JAD decodes the range and re-encodes once with the encoder for the source format. There is no format selector on the trimmer, so output format equals input format.
| Source format | Re-encode FFmpeg encoder (`-c:a`) | Stream-copy eligible? |
|---|---|---|
| MP3 | libmp3lame | Yes |
| WAV | pcm_s16le | Yes |
| FLAC | flac | Yes |
| M4A / AAC | aac | Yes |
| OGG (Vorbis) | libvorbis | Yes |
| Opus | libopus | Yes |
| Video (audio track) | encoder for the source audio container | Only if the audio container is in the list above |
Tier limits for audio tools
Real limits from the audio family. Note the per-file duration limit (durationMin) is separate from the byte limit — a 25-minute lossless WAV can hit the 50 MB cap before the 30-minute cap.
| Tier | Max file size | Max duration / file | Files at once |
|---|---|---|---|
| Free | 50 MB | 30 min | 1 |
| Pro | 200 MB | 120 min | 10 |
| Pro-media | 100 GB | Unlimited | 100 |
| Developer | 100 GB | Unlimited | Unlimited |
Cookbook
Concrete trims with the exact Start/End and Lossless settings, and what the engine does for each. Values shown are seconds, the unit the tool uses.
Keep a 30-second clip from the middle, same format
A 4-minute MP3, you want seconds 60 to 90. Leave Lossless off for a clean re-encode, or turn it on for an instant copy that snaps to packet boundaries.
Input: song.mp3 (240.0 s) Start (s): 60 End (s): 90 Lossless: off FFmpeg (re-encode): -ss 60 -i song.mp3 -t 30 -c:a libmp3lame out.mp3 Output: song-trimmed.mp3 (~30 s, MP3)
Instant lossless cut of a WAV
A WAV master where you only want the first verse and re-encoding is pointless. Lossless on + same format = stream-copy, no quality change.
Input: master.wav (185.0 s) Start (s): 0 End (s): 42.5 Lossless: on (WAV is stream-copy eligible) FFmpeg (stream-copy): -ss 0 -i master.wav -t 42.5 -c copy -avoid_negative_ts make_zero out.wav Output: master-trimmed.wav (byte-identical PCM, ~42.5 s) Metrics line shows the copy engine was used.
Trim the audio out of a video
Drop a video file; the trimmer operates on its audio track and writes an audio file in the source audio container.
Input: clip.mp4 (90.0 s, AAC audio) Start (s): 12 End (s): 18 Lossless: off FFmpeg (re-encode): -ss 12 -i clip.mp4 -t 6 -c:a aac out.m4a Note: to pull the WHOLE soundtrack as MP3 instead, use the [video-to-mp3 tool](/audio-tools/video-to-mp3).
Lossless requested but format would change — falls back to re-encode
Lossless only applies when the output format matches the source. There's no format dropdown on the trimmer, so this case happens when the source isn't a stream-copy-eligible container; JAD silently re-encodes.
Input: voice.amr (not in the stream-copy set)
Lossless: on (requested)
JAD checks: ext === inputExt AND ext in {mp3,m4a,aac,flac,wav,ogg,opus}?
→ not eligible → ignores Lossless → re-encodes:
-ss <start> -i voice.amr -t <dur> -c:a libmp3lame out.mp3Cut a 15-second ringtone-length clip
A short keep for a notification sound. Re-encode keeps it clean; you'd convert/encode the final ringtone format separately if your phone needs M4A.
Input: track.mp3 (203.0 s) Start (s): 48.0 End (s): 63.0 Lossless: off FFmpeg: -ss 48 -i track.mp3 -t 15 -c:a libmp3lame out.mp3 Output: track-trimmed.mp3 (~15 s) For an M4A ringtone, run the result through [m4a-to-mp3's siblings] — see the converters family.
Edge cases and what actually happens
Lossless cut points land a few ms off
By designIn stream-copy mode FFmpeg can only cut on packet boundaries, so the actual start/end can shift by up to ~30 ms (one MP3/AAC frame). The tool's hint says this explicitly. If you need a sample-exact boundary, turn Lossless off and let JAD re-encode.
Stream-copy produces a 0-byte file
RecoveredSome sources (certain Opus-in-WebM, partial MP4) can't be -c copy'd after a seek. If the copy run returns an empty output, JAD cleans up and automatically re-runs the trim as a re-encode — you still get a correct file, just not byte-identical.
Stream-copy throws and falls back
RecoveredWhen a source needs a probe before the seek, the -c copy command can throw. JAD catches it, removes the partial output, and falls through to the re-encode path. The metrics line will then show the re-encode engine rather than copy.
End (s) is less than or equal to Start (s)
ClampedDuration is computed as end − start and clamped to a minimum of 0.01 s, so an inverted or equal pair yields a near-zero-length clip rather than an error. Set End greater than Start to keep real audio.
File exceeds the 50 MB free limit
Tier limitFree tier caps audio at 50 MB. A long lossless WAV hits this quickly. Either trim a compressed copy, or move to Pro (200 MB) / Pro-media (100 GB). The byte cap is enforced before processing.
File is longer than 30 minutes on Free
Tier limitAudio has a per-file duration cap separate from size: 30 min on Free, 120 min on Pro, unlimited on Pro-media/Developer. A 45-minute podcast won't load on Free even if it's under 50 MB.
Output format silently equals the input
By designThe trimmer has no format dropdown, so a trimmed MP3 stays MP3 and a trimmed FLAC stays FLAC. If you need to change format, trim first, then use a converter sibling such as wav-to-mp3 or mp3-to-flac.
You wanted to drop a section out of the middle
Wrong toolThe trimmer keeps ONE contiguous range. To cut a middle chunk out and rejoin the two ends, split into pieces with audio-splitter (which supports multiple ranges) and recombine with audio-merger.
Hard cut clicks or pops at the boundary
ExpectedTrimming is a hard cut — if the waveform isn't at a zero crossing you may hear a click. Apply a short fade at the new edges with fade-in-out after trimming.
Frequently asked questions
Is my file actually uploaded anywhere?
No. The tool loads FFmpeg 8.1 as WebAssembly into your browser tab and runs the trim there. The audio bytes are never sent to a JAD server. The only thing recorded server-side (if you're signed in) is a count that a file was processed — never the file.
What's the difference between Lossless on and off?
Off (default) decodes the kept range and re-encodes it once with the encoder for your format (libmp3lame for MP3, flac for FLAC, etc.) — works on any input and gives sample-accurate cut points. On runs -c copy with no re-encode for an instant, byte-identical cut, but only when the output format matches the source and is mp3/m4a/aac/flac/wav/ogg/opus, and cut points snap to the nearest packet (~30 ms).
Do I enter timestamps in mm:ss or seconds?
Seconds. Both Start (s) and End (s) are numeric inputs in seconds with a 0.1-second step. For a cut at 1 minute 30 seconds, enter 90.
Can I change the output format while trimming?
No — the trimmer has no format dropdown, so the output always matches the input format. Trim first, then convert with a sibling tool like wav-to-mp3, flac-to-mp3, or mp3-to-flac.
Will I lose audio quality?
With Lossless on (same format), no — it's a stream-copy. With it off, JAD re-encodes the range once at the source format; for already-lossy formats that's one extra generation of encoding, which is usually inaudible. For a truly lossless trim of a lossy file, keep the same format and turn Lossless on.
Does it add a watermark or require an account?
No watermark and no account for the Free tier. You just get your trimmed range back. Sign-in only matters for higher tier limits and dashboard stats.
What input formats are accepted?
MP3, WAV, FLAC, M4A, OGG, Opus, and video files (the audio track is trimmed). Stream-copy is only eligible for mp3, m4a, aac, flac, wav, ogg, and opus containers.
How big a file can I trim for free?
Free tier: up to 50 MB and 30 minutes, one file at a time. Pro raises that to 200 MB / 120 minutes / 10 files; Pro-media and Developer go to 100 GB with unlimited duration.
Why did my lossless cut start a fraction late?
Stream-copy can only cut on packet boundaries, so the start/end can move by up to ~30 ms (one frame). That's the trade for an instant, no-re-encode cut. Turn Lossless off for sample-accurate boundaries.
Can I keep two separate sections in one pass?
Not with the trimmer — it keeps one contiguous range. Use audio-splitter, which supports multiple ranges, then audio-merger to recombine the parts you want.
Why does the output filename end in -trimmed?
JAD appends a -trimmed suffix to the source name and keeps the source extension, so song.mp3 becomes song-trimmed.mp3. It's a deliberate marker so you don't overwrite the original.
I heard a click at the cut — how do I fix it?
A hard trim can click if the cut isn't at a zero crossing. Run the trimmed file through fade-in-out to add a short fade at the new edges, which removes the transient.
Privacy first
Every JAD Audio tool runs entirely in your browser via FFmpeg (WebAssembly) and RNNoise. Your audio files never leave your device — verified by zero outbound network requests during processing.