Trim FLAC — Free Online Tool
Trim a FLAC audio file to a precise start and end point, outputting a new FLAC file with zero quality loss. Because FLAC is lossless and the audio stream is copied directly without re-encoding, the trimmed output is bit-for-bit identical in audio quality to the original.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your FLAC 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
FLAC trimming works by seeking to the specified start timestamp and copying the raw FLAC audio stream through to the end timestamp without any decoding or re-encoding. FFmpeg uses stream copy mode (-c copy), meaning the FLAC frames are extracted and written directly into the new file. Because FLAC is a lossless format, this copy operation preserves every bit of the original audio data within the selected range. The output file is a fully valid FLAC file with the same sample rate, bit depth, and channel layout as the source. Note that because FLAC uses frame-based encoding, the actual cut points may be snapped to the nearest FLAC frame boundary, which is typically imperceptible given FLAC's very small frame sizes.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg command-line tool. In the browser-based version of this tool, the same FFmpeg logic runs via FFmpeg.wasm compiled to WebAssembly, so no files leave your device. |
-i input.flac
|
Specifies the input FLAC file. FFmpeg reads the file's FLAC audio stream and associated metadata, including embedded Vorbis comment tags and any seektable blocks. |
-ss 00:00:00
|
Sets the trim start point in HH:MM:SS format. Placed before -i, this tells FFmpeg to seek efficiently to this position in the FLAC file before beginning to process audio frames, avoiding the need to decode from the very beginning. |
-to 00:00:10
|
Sets the trim end point, also in HH:MM:SS format. FFmpeg will stop copying FLAC audio frames once this timestamp is reached, producing an output clip that spans from the start point to this position. |
-c copy
|
Instructs FFmpeg to copy the FLAC audio stream directly without decoding or re-encoding. This is critical for FLAC-to-FLAC trimming because it guarantees zero quality loss and makes the operation extremely fast, regardless of file size. |
output.flac
|
The filename of the trimmed output file. The .flac extension tells FFmpeg to write a valid FLAC container, preserving the format's native structure including the STREAMINFO metadata block and seektable. |
Common Use Cases
- Extract a specific song or movement from a FLAC rip of a full album or live concert recording where tracks were not split at the source
- Remove silence, applause, or dead air from the beginning or end of a losslessly recorded studio session or live performance
- Cut a short FLAC clip from a longer archival recording to use as a high-fidelity audio sample or reference track
- Trim a FLAC audiobook chapter to remove publisher intros, outros, or misread sections before archiving
- Isolate a specific instrument passage or vocal take from a multi-minute FLAC master file for use in audio editing or mastering software
- Create a precisely timed FLAC preview clip from a full-length track for a music store or portfolio without any quality degradation
Frequently Asked Questions
No. Because the command uses -c copy, the FLAC audio frames are extracted and written to the output file without decoding or re-encoding at any stage. FLAC is already a lossless format, and stream copying means the audio data within the trimmed segment is mathematically identical to the source. There is no generation loss whatsoever.
Embedded Vorbis comment metadata tags such as ARTIST, ALBUM, TITLE, and TRACKNUMBER are generally preserved when stream copying, since FFmpeg passes them through to the output container. However, FLAC cue sheets embedded in the original file may not be carried over correctly after trimming, because cue sheet offsets reference absolute positions that no longer apply to the shortened file. ReplayGain tags may also be inaccurate for the trimmed clip and should be recalculated if loudness normalization matters.
FLAC trimming with stream copy is accurate to the nearest FLAC audio frame boundary rather than an arbitrary sample. FLAC frames are typically very short — on the order of 4,096 samples — so at 44,100 Hz, the maximum rounding error is roughly 93 milliseconds in the worst case, and usually much less. If sample-accurate trimming is critical, you would need to decode and re-encode the audio, which this stream copy command does not do but would still remain lossless in FLAC's case.
Because this command uses -c copy, FFmpeg bypasses the encoder entirely and no compression level setting applies — the FLAC frames are copied as-is from the input. If you want to change the compression level of the output, replace -c copy with -c:a flac -compression_level 8 (or any level from 0 to 8). Level 8 produces the smallest file size while remaining fully lossless; level 0 encodes fastest. The default is level 5, which balances speed and size.
The single command shown trims one file at a time. To batch-trim multiple FLAC files to the same time range on Linux or macOS, you can wrap it in a shell loop: for f in *.flac; do ffmpeg -i "$f" -ss 00:00:00 -to 00:00:10 -c copy "trimmed_$f"; done. On Windows, a similar loop can be written using a batch script or PowerShell. Each output file will be trimmed independently using the same start and end timestamps.
Placing -ss before -i (as in this command) instructs FFmpeg to seek to the start point before reading the input, which is fast for large files because it skips decoding up to that point. Placing -ss after -i forces FFmpeg to decode the audio from the beginning up to the seek point, which is slower but can be more accurate for certain formats. For FLAC specifically, both approaches produce correct results, and pre-input seeking is the preferred method for efficiency.
Technical Notes
FLAC (Free Lossless Audio Codec) uses a frame-based encoding structure where audio samples are grouped into independently decodable frames, typically containing 4,096 samples each. This architecture makes stream-copy trimming straightforward and lossless: FFmpeg seeks to the nearest frame boundary at or after the specified start time and copies frames sequentially until the end time is reached. The output FLAC file supports the full feature set of the format, including embedded Vorbis comment tags, seeking via a seektable, and ReplayGain fields — although ReplayGain values from the source will reflect the loudness of the original full-length file rather than the trimmed clip and should be recalculated if needed. FLAC's compression_level parameter (0–8) controls the trade-off between encoding speed and compressed file size, but has no effect on audio quality — all levels decode to the same PCM output. With -c copy active in this command, the compression level of the output is inherited from the source frames rather than set by the encoder. FLAC supports bit depths of 4 to 32 bits and sample rates up to 655,350 Hz, all of which pass through unmodified during stream copy trimming.