Trim MP3 — Free Online Tool
Trim an MP3 file to a precise start and end point, cutting out only the audio segment you need. The trim is performed using stream copying — no re-encoding — so the output is instant and the original audio quality is fully preserved.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your MP3 file here
or click to browse
Free — no uploads, no signups. Your files never leave your browser.
Settings
Note: Browser-based encoding uses approximate quality targets. For precise CRF compression, copy the FFmpeg command above and run it on your desktop.
Estimated output:
Conversion Complete!
DownloadHow It Works
MP3 trimming with the `-c copy` flag performs a stream copy, meaning FFmpeg reads the MP3 bitstream and writes only the frames that fall within the specified time range without decoding or re-encoding the audio. Because MP3 is a frame-based format, the actual cut points are aligned to the nearest MP3 frame boundary (typically every 26ms at 128kbps), so the output may differ from your specified timestamps by a fraction of a second. No quality loss occurs since the libmp3lame encoder is never invoked — the audio data passes through untouched. This makes trimming nearly instantaneous even for large MP3 files.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg command-line tool. In the browser, this runs via FFmpeg.wasm compiled to WebAssembly, executing the same logic as the desktop binary without any server upload. |
-i input.mp3
|
Specifies the input MP3 file. FFmpeg reads the MPEG Audio Layer III bitstream from this file to determine frame boundaries, duration, bitrate, and embedded ID3 metadata before applying the trim. |
-ss 00:00:00
|
Sets the start time of the trim to 0 seconds (the beginning of the file). Change this timestamp in HH:MM:SS format to begin the clip at any point in the MP3, e.g., `00:01:30` to start at 1 minute 30 seconds. |
-to 00:00:10
|
Sets the absolute end time of the trim to 10 seconds from the start of the input file. Adjust this to define where your MP3 clip should end; for example, `00:03:45` would produce a clip ending at 3 minutes and 45 seconds. |
-c copy
|
Instructs FFmpeg to copy the MP3 audio stream without decoding or re-encoding through libmp3lame. This preserves the original bitrate and audio quality exactly, and makes the trim operation nearly instantaneous since no transcoding occurs. |
output.mp3
|
The filename for the trimmed MP3 output. The file will contain only the audio between the `-ss` and `-to` timestamps, with the original encoding parameters and ID3 tags intact. |
Common Use Cases
- Cut a specific song or segment out of a long DJ mix or radio recording saved as an MP3
- Trim silence or dead air from the beginning or end of a recorded podcast episode before publishing
- Extract a short audio clip from an MP3 interview for use as a social media teaser or pull quote
- Remove an unwanted intro or outro from a downloaded MP3 audiobook chapter
- Isolate a specific musical phrase or sample from an MP3 for use in a production or presentation
- Shorten a ringtone or notification sound saved as an MP3 to meet a platform's length requirement
Frequently Asked Questions
No — because this tool uses `-c copy`, the MP3 audio stream is never decoded or re-encoded through libmp3lame. The audio frames are copied byte-for-byte from the input, so there is zero generational quality loss. The only minor caveat is that cut points are snapped to the nearest MP3 frame boundary, which can shift the trim by up to ~26ms at typical bitrates — imperceptible in most cases.
MP3 audio is stored in discrete frames, each typically representing about 26 milliseconds of audio at standard bitrates. When using stream copy mode (`-c copy`), FFmpeg cannot cut mid-frame, so it snaps the cut to the nearest frame boundary. If you need sample-accurate trimming, you would need to re-encode by replacing `-c copy` with `-c:a libmp3lame -b:a 128k`, which decodes and re-encodes the audio but allows precise cuts at the cost of a very slight quality loss.
Yes, FFmpeg's stream copy mode preserves the ID3 metadata tags embedded in the MP3 file, including artist, title, album, genre, and cover art. The metadata is written into the output file unchanged. If you want to strip all metadata from the trimmed clip, you can add `-map_metadata -1` to the FFmpeg command.
The default command uses `-c copy`, which preserves the original bitrate exactly without re-encoding. If you want to change the bitrate — for example, to reduce file size — replace `-c copy` with `-c:a libmp3lame -b:a 128k`, substituting your desired bitrate (e.g., 64k, 192k, 320k). Keep in mind that re-encoding a lossy MP3 at any bitrate introduces a small additional quality loss, so it's best to match or exceed the original bitrate if quality matters.
The command shown processes a single file, but you can batch-trim multiple MP3s using a shell loop. In Bash on macOS or Linux: `for f in *.mp3; do ffmpeg -i "$f" -ss 00:00:00 -to 00:00:10 -c copy "trimmed_$f"; done`. On Windows Command Prompt: `for %f in (*.mp3) do ffmpeg -i "%f" -ss 00:00:00 -to 00:00:10 -c copy "trimmed_%f"`. Adjust the `-ss` and `-to` values to your desired start and end times.
Placing `-ss` before `-i` (as in this command) causes FFmpeg to seek to the start position before reading the input, which is fast even for large files but can occasionally be slightly less accurate for stream-copy operations. Placing `-ss` after `-i` forces FFmpeg to decode from the beginning up to the seek point, which is slower but more frame-accurate. For MP3 trimming with `-c copy`, placing `-ss` before `-i` is the recommended approach and is what this tool uses.
Technical Notes
MP3 (MPEG Audio Layer III) stores audio as a sequence of fixed-size frames, and the libmp3lame encoder is the standard open-source implementation used by FFmpeg for both encoding and decoding. When trimming with `-c copy`, FFmpeg bypasses libmp3lame entirely and operates purely on the container and frame structure, meaning the output bitrate, channel layout (stereo, joint stereo, mono), sample rate, and encoding quality are all identical to the source. The `-to` flag specifies an absolute end timestamp relative to the input file's start; if you prefer to specify a duration instead of an end time, replace `-to` with `-t` (e.g., `-t 00:00:30` for a 30-second clip). ID3v1 and ID3v2 tags are preserved in stream copy mode. One known limitation: if the source MP3 has a variable bitrate (VBR) with a Xing/LAME header, FFmpeg will regenerate this header in the output to reflect the new duration, ensuring accurate seek behavior in media players. Files with corrupted frame headers near the cut boundaries may occasionally produce a brief artifact at the trim point.