Language
English English Vietnamese (Tiếng Việt) Vietnamese (Tiếng Việt) Chinese (简体中文) Chinese (简体中文) Portuguese (Brazil) (Português do Brasil) Portuguese (Brazil) (Português do Brasil) Spanish (Español) Spanish (Español) Indonesian (Bahasa Indonesia) Indonesian (Bahasa Indonesia)
Milliseconds to Seconds

Milliseconds to Seconds

Turns a millisecond keyframe or animation timing into seconds and checks it against the frame grid at 23.976, 24, 25, 29.97, 30, 50 and 60 fps.

Reading a Timeline in Frames, Writing It in Seconds

Motion work lives on a grid. An editor scrubs in frames, After Effects places keyframes on frames, and a timecode burn-in counts frames — but the numbers that arrive from outside that grid almost never do. A CSS transition is specified in milliseconds, a sound designer sends a hit list in milliseconds, a broadcast slate spec is written in seconds. Getting those figures onto the same scale is the small piece of arithmetic underneath every "make it two frames later".

Conversion factor: 1 ms = 0.001 s, so divide milliseconds by 1 000. One frame at 24 fps lasts 1000 ÷ 24 = 41.666667 ms, which is 0.04166667 s — the step size everything on a 24 fps timeline has to land on.

What Sets the Grid You Are Snapping To

The rate decides the step size

Nothing on a timeline can be finer than one frame. At 25 fps that step is a tidy 40 ms; at 60 fps it is 16.666667 ms, a value that refuses to divide cleanly into round millisecond numbers.

The 1.001 family is an NTSC inheritance

23.976, 29.97 and 59.94 are 24, 30 and 60 divided by 1.001. Colour was retrofitted onto monochrome broadcast by nudging the rate down so the colour subcarrier stopped beating against the sound carrier, and the fraction stuck.

CSS has no idea frames exist

A browser animation is authored in milliseconds and drawn against whatever refresh rate the display happens to run. Matching a UI motion spec to a rendered sequence means doing the frame arithmetic yourself.

Timecode is a label, not a stopwatch

A timecode string counts frames and dresses them up as hours, minutes and seconds. When the rate is not a whole number, that label and the wall clock quietly stop agreeing.

From a Millisecond Spec to a Whole Frame Count

The usual job is a duration someone handed you in milliseconds that has to become a length you can actually cut.

1

Drop the millisecond figure in the left field

Type 350, 41.666667, 1 001 — whatever the spec sheet or the easing curve says. Seconds update while you type, and a comma works just as well as a dot if that is how your keypad is set up.

2

Divide the seconds by the frame duration

Hold the result against the table below. A length of 0.5 s is 12 frames at 24 fps, 12.5 at 25 and 30 at 60 — that middle answer is the warning sign that the number will not sit on a boundary.

3

Flip the pair when the source is already in seconds

The swap button (↔) turns the page into s → ms, the direction you want when a shot length is written 2.5 s and the animation tool is asking for a millisecond duration.

4

Copy the plain digits into the parameter box

The copy button on each field hands over the number alone, no unit and no spacing, which is what an expression field or a duration parameter will accept. Ctrl + C inside the field does the same thing.

Round to frames before you round to a pretty number: a value that reads 0.4166 s is not "about 0.42" — it is ten frames at 24 fps, and forcing it to a rounder decimal pushes the cut off the grid.

Frame Rates and the Length of a Single Frame

Every rate you are likely to be handed, with the length of one frame in both units and how many frames a second of real time actually contains. The fractional entries in the last column are the reason timecode needs special handling at all.

Frame rate One frame (ms) One frame (s) Frames per real second
23.976 fps (24000/1001)41.708333 ms0.04170833 s23.976
24 fps — cinema41.666667 ms0.04166667 s24
25 fps — PAL regions40 ms0.04 s25
29.97 fps (30000/1001)33.366667 ms0.03336667 s29.97
30 fps33.333333 ms0.03333333 s30
50 fps20 ms0.02 s50
59.94 fps (60000/1001)16.683333 ms0.01668333 s59.94
60 fps16.666667 ms0.01666667 s60

Only 25 and 50 give a whole number of milliseconds per frame, which is why PAL-heritage projects rarely fight with rounding while everything else does. The 1.001 rates are worse still: a second of that footage occupies 1.001 s of real time, so a "one second" title card really runs 1 001 ms.

Why This Pair Sits Open Next to the Timeline

Either box can be the one you edit

Both fields take input and the other one follows, so you can walk a whole easing curve — 120, 240, 350, 500 — without clearing anything between numbers.

Turn it round for the render spec

One press of the swap arrows reverses the direction, which is what you need when the shot list is in seconds and the motion tool is asking for milliseconds.

Minutes and hours are one dropdown away

The searchable unit lists reach from nanoseconds upward, so the same page handles a reel length in minutes or an overnight render estimate in hours.

Enough decimals for the 1.001 rates

Results carry up to eight decimal places, so 0.04170833 never collapses into 0.042 and a long frame count does not accumulate a rounding error.

Questions From the Edit Suite

How long does one frame last at 24 fps?

41.666667 ms, or 0.04166667 s — one second divided by twenty-four. Two frames come to 83.33 ms and six frames make a clean 250 ms, which is why quarter-second beats feel natural when cutting at this rate. Nothing shorter than that single frame can be shown, so an effect asked to last 30 ms either becomes one frame or vanishes.

Why is 29.97 fps not simply 30, and what does drop-frame timecode fix?

Colour was added to monochrome NTSC broadcast, and the rate had to be pulled down by a factor of 1.001 so the new colour subcarrier would stop interfering with the audio carrier. Drop-frame timecode deletes no picture at all — it skips two frame numbers at the top of every minute except the minutes ending in zero, keeping the label in step with the clock. Non-drop keeps every number and falls behind instead.

My CSS animation runs 350 ms — is that a whole number of frames?

At 60 fps, yes: 350 ms is 0.35 s and 0.35 × 60 comes out at exactly 21 frames. Take the same motion into a 30 fps render and it becomes 10.5 frames, so you must choose 10 (333.33 ms) or 11 (366.67 ms); at 24 fps it is 8.4 frames, and 8 frames (333.33 ms) is usually the closer read. Pick the frame count first and let the millisecond value follow from it.

Does 2.5 seconds land on a frame boundary at 25 fps?

Not quite. A frame is 40 ms there, and 2 500 ÷ 40 gives 62.5 frames, so the duration falls halfway between two of them. Sixty-two frames run 2 480 ms (2.48 s) and sixty-three run 2 520 ms (2.52 s). Half-second and quarter-second lengths only sit cleanly on this grid when the frame count happens to come out even.

How far does non-drop timecode drift from the wall clock in an hour?

About 3.6 s, which is 3 600 ms. An hour of 29.97 fps material holds 107 892 frames; counted thirty to the second, non-drop reports 3 596.4 s and shows 00:59:56:12 when a real hour has gone by. Drop-frame skips 108 frame numbers over the same hour — two a minute, nine minutes in ten — and lands exactly on 01:00:00:00. Left alone across a full day the error grows to roughly 86.4 s.

ms
s

One Frame at Common Rates

16.666667 ms=0.01666667 s
20 ms=0.02 s
33.366667 ms=0.03336667 s
40 ms=0.04 s
41.708333 ms=0.04170833 s
1 001 ms=1.001 s

Millisecond (ms)

A thousandth of a second, and the unit motion specs arrive in. One frame is 41.666667 ms at 24 fps, 40 ms at 25 and 16.666667 ms at 60 — so a duration handed over in milliseconds only becomes usable once you know which of those grids it has to land on.

Second (s)

The unit shot lengths, slate specs and timecode fields are written in. It also exposes the 1.001 problem: a second of 29.97 fps footage occupies 1.001 s of real time, which is where non-drop timecode begins slipping behind the clock.

Type the millisecond figure from a motion spec on the left — seconds appear as you type, to eight decimals for the 1.001 rates
Press the swap button (↔) for s → ms when a shot length is written in seconds and the tool wants milliseconds
The copy button hands over the bare number, ready for an expression field or a duration parameter
Switch either dropdown to minutes or hours for reel lengths and render estimates — it all runs in your browser
Want to learn more? Read documentation →
1/5

Time Converter

Centuries to Millenniums Centuries to Years Days to Hours Days to Minutes Days to Months Days to Seconds Days to Weeks Days to Years Decades to Centuries Decades to Years Hours to Days Hours to Minutes Hours to Months Hours to Seconds Hours to Weeks Hours to Years Microseconds to Milliseconds Microseconds to Nanoseconds Microseconds to Seconds Millennia to Years Millenniums to Centuries Milliseconds to Microseconds Milliseconds to Minutes Milliseconds to Seconds (current page) Minutes to Days Minutes to Hours Minutes to Milliseconds Minutes to Seconds Minutes to Years Months to Days Months to Hours Months to Weeks Months to Years Nanoseconds to Microseconds Nanoseconds to Seconds Seconds to Days Seconds to Hours Seconds to Microseconds Seconds to Milliseconds Seconds to Minutes Seconds to Nanoseconds Seconds to Years Weeks to Days Weeks to Hours Weeks to Months Weeks to Years Years to Centuries Years to Days Years to Decades Years to Hours Years to Minutes Years to Months Years to Seconds Years to Weeks
Start typing to search...
Searching...
No results found
Try searching with different keywords