Free tool

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.

Whole number, 1–240. Drop-frame rates such as 29.97 are not covered.
Convert from
Whole frames, 0–100,000.

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).

Frame 12 of 12

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 ramin

How 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:

Milliseconds for each frame count at each frame rate
Frames24 fps25 fps30 fps50 fps60 fps
1≈ 41.667 ms40 ms≈ 33.333 ms20 ms≈ 16.667 ms
6250 ms240 ms200 ms120 ms100 ms
12500 ms480 ms400 ms240 ms200 ms
241000 ms960 ms800 ms480 ms400 ms
301250 ms1200 ms1000 ms600 ms500 ms
482000 ms1920 ms1600 ms960 ms800 ms
602500 ms2400 ms2000 ms1200 ms1000 ms
1205000 ms4800 ms4000 ms2400 ms2000 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.