Trim WAV — Free Online Tool
Trim a WAV audio file to an exact start and end point, preserving the original PCM or lossless audio stream without any re-encoding. Because WAV-to-WAV trimming uses stream copying, your audio quality remains bit-perfect — no transcoding artifacts, no generation loss.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your WAV 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
When trimming a WAV file to another WAV file, FFmpeg seeks to the specified start timestamp and copies the raw audio stream directly into the output container without decoding or re-encoding. Because WAV natively stores audio in uncompressed PCM (typically pcm_s16le — 16-bit signed little-endian) or lossless variants, the '-c copy' flag means FFmpeg reads the raw sample data and writes it verbatim to the new file. The only processing involved is adjusting the WAV header to reflect the new file size and duration. There is no quality loss whatsoever — the trimmed file is acoustically identical to the corresponding segment of the original. This also makes the operation extremely fast, as the CPU does no decoding or encoding work.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg command-line tool. On this web tool, FFmpeg runs entirely inside your browser via WebAssembly (FFmpeg.wasm), so no file ever leaves your machine. |
-i input.wav
|
Specifies the input WAV file. FFmpeg reads the RIFF header to determine the audio codec (e.g., pcm_s16le, pcm_s24le), sample rate, bit depth, and channel count before processing. |
-ss 00:00:00
|
Sets the trim start point — in this case, the very beginning of the file. Change this timestamp to seek into the WAV file before copying begins; for example, '00:00:30' starts trimming 30 seconds into the audio. |
-to 00:00:10
|
Sets the trim end point, keeping only audio up to the 10-second mark of the original file. Adjust this to match the exact endpoint you need; you can also replace '-to' with '-t' followed by a duration in seconds. |
-c copy
|
Instructs FFmpeg to copy the audio stream without decoding or re-encoding. For WAV, this means the raw PCM samples (or other WAV-embedded codec data) are passed directly to the output file, preserving bit-perfect audio quality and making the operation nearly instantaneous. |
output.wav
|
Specifies the output file as a WAV container. FFmpeg writes a new RIFF/WAV header sized to match the trimmed audio segment, with the same sample rate, bit depth, and channel configuration as the input. |
Common Use Cases
- Extract a specific musical phrase or cue from a multi-minute WAV recording for use as a sample in a DAW or sampler instrument
- Remove silence or unwanted room tone from the beginning or end of a field recording before delivering broadcast-ready audio to a client
- Cut a long voice-over recording session down to a single clean take, preserving the original 24-bit or 32-bit PCM depth for mastering
- Isolate a specific sound effect from a longer WAV library file for use in game audio or video post-production
- Trim a WAV audio test tone or measurement signal to a precise duration required by an audio analysis tool or acoustic measurement workflow
- Extract a ringtone-length clip from a WAV music file while keeping it in uncompressed format for later conversion to a compressed target format
Frequently Asked Questions
No — trimming WAV to WAV with the '-c copy' flag performs a pure stream copy. FFmpeg reads the raw PCM samples and writes them directly to the new file without passing them through any decoder or encoder. Whether your source is 16-bit, 24-bit, or 32-bit float PCM, the output samples are bit-for-bit identical to the corresponding segment of the original. This is one of the key advantages of working in an uncompressed format like WAV.
WAV audio is sample-accurate rather than frame-accurate, which is actually better precision than most video formats. Because PCM audio has no concept of inter-frame dependencies or keyframes, FFmpeg can cut at any sample boundary. In practice, the cut point will be accurate to within a few milliseconds of your specified timestamp. If you need sub-millisecond precision, you can specify timestamps in seconds with decimal places (e.g., '00:00:02.350') in the FFmpeg command.
The WAV file size is almost exactly proportional to the duration of audio you keep. WAV stores uncompressed PCM, so file size is determined by sample rate × bit depth × channels × duration. A trimmed file should be very close to (trimmed duration / original duration) × original file size. The only overhead is the WAV header, which is typically 44 bytes, so any small discrepancy you see is just that header rather than any hidden re-encoding.
Modify the values after '-ss' (start time) and '-to' (end time) in the command. Both accept timestamps in HH:MM:SS or HH:MM:SS.mmm format, or plain seconds as a decimal number. For example, to trim from 30 seconds in to 1 minute 15 seconds, use '-ss 00:00:30 -to 00:01:15'. Alternatively, replace '-to' with '-t' to specify a duration rather than an end point — for example, '-t 45' to keep exactly 45 seconds of audio starting from the '-ss' point.
Yes — you can wrap the command in a shell loop to process multiple files at once. On Linux or macOS, use: 'for f in *.wav; do ffmpeg -i "$f" -ss 00:00:00 -to 00:00:10 -c copy "trimmed_$f"; done'. On Windows Command Prompt, use: 'for %f in (*.wav) do ffmpeg -i "%f" -ss 00:00:00 -to 00:00:10 -c copy "trimmed_%f"'. This is particularly useful for trimming a batch of recorded takes to the same length, for example when preparing a set of audio samples for a sample library.
When using '-c copy', FFmpeg preserves most metadata chunks embedded in the WAV file, including LIST INFO tags (artist, title, etc.). However, Broadcast Wave Format (BWF) BEXT chunks — which carry timecode, originator, and loudness metadata used in professional broadcast workflows — may not have their timecode field automatically updated to reflect the new trim offset. If BEXT timecode accuracy is critical for your post-production pipeline, verify the output file's BEXT chunk with a BWF-aware tool after trimming.
Technical Notes
WAV is a RIFF-based container that typically wraps uncompressed PCM audio, most commonly in pcm_s16le (CD-quality, 16-bit signed little-endian) but also in pcm_s24le, pcm_s32le, and pcm_f32le for professional and scientific applications. WAV also supports compressed codecs such as ADPCM and even FLAC, though these are far less common in practice. When trimming WAV to WAV with stream copy, FFmpeg does not need to know or care about the specific codec inside — it passes the raw data through unchanged and rewrites the RIFF chunk size fields in the header to match the new file length. One known limitation of stream copy trimming in WAV is that because the data is not decoded, the cut point is aligned to the nearest audio packet boundary rather than an arbitrary sample, though for uncompressed PCM the packet boundary is effectively sample-accurate. If your source WAV uses a compressed codec like adpcm_ms, stream-copy trimming may result in a small amount of audio before the requested start point being silently discarded or included depending on block alignment; in that case, removing '-c copy' and letting FFmpeg decode and re-encode may produce a more precise result at the cost of a transcoding step.