Change video speed
Speed up or slow down a video from 0.25× to 4×, with a live preview before you commit and pitch-corrected audio. No watermark and no upload.
- Runs in your browser
- Files are never uploaded
- Free, no account
First use downloads the 10 MB video engine from this site. After that it is cached and works offline. It is WebAssembly served from onthisdevice.com — no third-party CDN — and your file is still processed entirely on your own device.
The arithmetic behind the setting
Changing playback speed does not add or remove frames. It rewrites each frame’s presentation
timestamp — the instant at which the player is told to show it. FFmpeg does this with the
setpts filter, and the factor is the reciprocal of the speed:
new length = original length ÷ speed, and the filter applied is
setpts=(1 ÷ speed)*PTS.
So a 6-minute clip at 2× becomes setpts=0.5*PTS and runs for 3 minutes; at 0.5×
it becomes setpts=2.0*PTS and runs for 12. The tool shows that calculation with
your own numbers substituted, above the button, before anything is encoded.
Audio: why it does not sound like a chipmunk
Naively speeding up audio raises its pitch, which is what happens when you play a record too
fast. FFmpeg’s atempo filter instead changes the tempo while holding the pitch —
the same technique podcast apps use for 1.5× listening. Speech stays intelligible and music
stays in key.
atempo only accepts a factor between 0.5 and 2.0 in one pass, so anything outside
that range is chained:
| Speed | Audio filter chain | Video filter |
|---|---|---|
| 0.25× | atempo=0.5, atempo=0.5 | setpts=4.0*PTS |
| 0.5× | atempo=0.5 | setpts=2.0*PTS |
| 1.5× | atempo=1.5 | setpts=0.666667*PTS |
| 2× | atempo=2 | setpts=0.5*PTS |
| 4× | atempo=2, atempo=2 | setpts=0.25*PTS |
The exact chain built for your setting is printed on the page, so nothing about the operation is hidden.
Slow motion has a hard limit
Because no frames are invented, slowing a clip down spreads the frames you already have across more time. The effective frame rate drops in direct proportion:
| Source frame rate | At 0.5× | At 0.25× |
|---|---|---|
| 24 fps (film look) | 12 fps — visibly juddery | 6 fps — a slideshow |
| 30 fps (typical phone) | 15 fps — noticeable | 7.5 fps — poor |
| 60 fps | 30 fps — smooth | 15 fps — usable |
| 120 or 240 fps (phone slo-mo mode) | Smooth | Smooth |
Genuinely smooth slow motion has to be shot at a high frame rate. Software that claims otherwise is interpolating — inventing intermediate frames with a model — which needs machine-learning tooling we do not ship and would not run in a browser tab.
Common uses
- Timelapse from a long recording — 4×, run twice if you need 16×.
- Trimming a lecture down — 1.25× or 1.5× keeps speech completely natural.
- Analysing a golf swing or a technique — 0.5× with the audio dropped.
- Fitting a clip into a time limit — small speed increases are far less noticeable than cuts.
Preview first, encode once
The player above uses the browser’s own playback rate, so you can hear and see the result instantly at no cost before committing. Only when you press the button does FFmpeg actually re-encode the file — locally, with no watermark, no length cap and nothing uploaded.
Questions
Does speeding up the audio make everyone sound like a chipmunk?
No. The audio runs through FFmpeg’s atempo filter, which changes the tempo while holding the pitch, the same technique podcast apps use for 1.5× playback. Voices stay in tune and stay understandable.
Why is slow motion stuttery?
Slowing a clip down stretches the existing frames over a longer time; it cannot invent new ones. A 30 fps clip at 0.25× plays at an effective 7.5 fps. Smooth slow motion has to be shot at a high frame rate in the first place — 60, 120 or 240 fps.
How is the new length calculated?
New length equals the original length divided by the speed, and the page shows that arithmetic with your actual numbers substituted. At 2× a 6-minute clip becomes 3 minutes; at 0.5× it becomes 12.
Why is 4× two filter stages instead of one?
The atempo filter only accepts factors between 0.5 and 2.0 in a single pass, so anything outside that is chained — 4× is atempo=2 followed by atempo=2. The page shows the exact chain it built for your setting.
Can I make a timelapse from a long video?
Yes — set 4× and run it more than once if you need more. Note that no frames are dropped, so a heavily sped-up long clip still takes real time to encode.