Frames to seconds and milliseconds calculator
Timing arrives in frames; web animation wants seconds or milliseconds. Pick a frame rate, enter a frame count or a duration, and get the other side, with any partial frame shown rather than rounded away. Copy the values, share a link to the same timing, or open it as an editable headline animation. No account needed.
12 frames at 24 fps is 0.5 s
- Seconds
- 0.5 s
- Milliseconds
- 500 ms
12 ÷ 24 = 0.5 s.
Frame-step preview
The block moves one step per frame at 24 fps over 12 frames (0.5 s).
Browser playback is an illustration: the screen refreshes on its own clock, so frames can be shown late or skipped. It is not a frame-accurate export.
Share this timing
Try this duration in ramin
Opens the studio on a new, unsaved project at 24 fps whose headline rises into place over 12 frames: its keyframes are 0.5 s apart. The headline is selected so its tracks are in the inspector, and every value stays editable. No account needed, and nothing you have saved is changed.
Try this duration in raminHow the conversion works
A frame rate is how many frames make one second, so one frame lasts 1 ÷ fps seconds. A frame count becomes time by dividing: seconds = frames ÷ fps, and milliseconds are that times 1000. Going the other way, frames = seconds × fps.
That second direction is where timing goes wrong. An animation at a fixed frame rate can only change on a whole frame, so a duration that lands between two frames has to end on one of them. The calculator shows the exact fractional result, the whole frames either side, and the nearest one with how long it really lasts. A duration exactly half-way between two frames rounds up.
Worked example: 12 frames at 24 fps is 12 ÷ 24 = 0.5 s, or 500 ms. In reverse, 0.5 s at 25 fps works out as 0.5 × 25: 0.5 s at 25 fps is 12.5 frames. A 25 fps animation can only change on a whole frame, so it ends on frame 12 (0.48 s) or frame 13 (0.52 s). The nearest is 13 frames, which lasts 0.52 s (520 ms): 20 ms longer than 0.5 s. Exactly half a frame rounds up.
The calculator takes whole frame rates from 1 to 240 fps, frame counts up to 100,000, and durations up to 3,600 s in whole milliseconds. It measures elapsed duration. It does not read SMPTE timecode (HH:MM:SS:FF) or drop-frame rates such as 29.97 fps.
The same frames, different time
A frame count only means something next to its frame rate. 12 frames is half a second at 24 fps but a fifth of a second at 60 fps, so a hand-off that says “12 frames” without a rate is not a duration yet. Milliseconds for common frame counts:
| Frames | 24 fps | 25 fps | 30 fps | 50 fps | 60 fps |
|---|---|---|---|---|---|
| 1 | ≈ 41.667 ms | 40 ms | ≈ 33.333 ms | 20 ms | ≈ 16.667 ms |
| 6 | 250 ms | 240 ms | 200 ms | 120 ms | 100 ms |
| 12 | 500 ms | 480 ms | 400 ms | 240 ms | 200 ms |
| 24 | 1000 ms | 960 ms | 800 ms | 480 ms | 400 ms |
| 30 | 1250 ms | 1200 ms | 1000 ms | 600 ms | 500 ms |
| 48 | 2000 ms | 1920 ms | 1600 ms | 960 ms | 800 ms |
| 60 | 2500 ms | 2400 ms | 2000 ms | 1200 ms | 1000 ms |
| 120 | 5000 ms | 4800 ms | 4000 ms | 2400 ms | 2000 ms |
Values marked ≈ repeat forever and are rounded to three decimals: one frame at 24 fps is 41.666… ms.
Use the timing in a motion
Try this duration in ramin opens the studio on a new, unsaved project at your frame rate. Its headline rises into place over exactly the whole-frame duration: a Y-position track and an opacity track whose two keyframes are that many frames apart, as numbers in the inspector you can drag or retype. Save it to an account later if you want to keep it.
ramin stores keyframe times in seconds, the same way CSS and the Web Animations API do, so a frame count from an edit or a storyboard becomes a time the moment it reaches a composition. Pick how the motion moves in the easing reference, time a sequence with the stagger animation calculator, or let a spring work its own duration out.