All tools

Frame Rate / Timecode Converter

Math

Convert between a frame count, SMPTE timecode (HH:MM:SS:FF), and seconds at a given frame rate, handling NTSC drop-frame timecode's skipped frame numbers correctly.

Video editors constantly convert between a frame count, SMPTE timecode, and real elapsed seconds when syncing footage shot at different frame rates or reading an edit log. This tool handles both directions at 23.976, 24, 25, 29.97, 30, 50, 59.94, and 60 fps, and gets NTSC drop-frame timecode (29.97/59.94) right by implementing the actual SMPTE 12M algorithm: frame numbers 00 and 01 are skipped at the start of every minute except every 10th minute, which keeps the displayed clock close to real wall-clock time instead of drifting ahead of it. It is pure arithmetic over the numbers you give it; no video file or container is ever read.

videotimecodeframeratesmptentscdropframeediting

How to use Frame Rate / Timecode Converter

  • 1.Pick a direction: frame count to timecode, or timecode back to a frame count.
  • 2.Choose the frame rate, and turn on drop-frame if the footage is 29.97 or 59.94 fps NTSC.
  • 3.Read off the timecode (with a semicolon separator for drop-frame), the frame count, and the equivalent real seconds.

Frequently asked questions

What is drop-frame timecode and why does it skip frame numbers?
29.97 and 59.94 fps are slightly slower than a clean 30 or 60 fps, so a naive nominal count drifts ahead of real time. Drop-frame timecode skips displaying frame numbers 00 and 01 at the start of every minute except every 10th minute, which keeps the displayed clock within a frame of real elapsed time over long durations.
Does this decode or read any actual video file?
No. It is pure arithmetic over a frame count, timecode string, or frame rate you supply directly; no container or video frame is ever read.
Which frame rates are supported?
23.976, 24, 25, 29.97, 30, 50, 59.94, and 60 fps. Drop-frame is only valid for 29.97 and 59.94, the two NTSC rates it was designed for.
What happens if I enter a dropped frame number, like 00:01:00;00?
It's rejected with an error, since frames 00 and 01 don't exist in drop-frame numbering at the start of a non-exempt minute. Entering :02 or later at that point is valid.

Use via API, SDK, or MCP

cURL# Free: 1,000 req/day · Pro: 10,000 req/day
curl -X POST https://api.utilix.tech/v1/tools/timecode-converter \
  -H "Authorization: Bearer utx_live_..." \
  -H "Content-Type: application/json" \
  -d '{"mode":"frames-to-timecode","frameRate":29.97,"dropFrame":false,"frameCount":17982,"timecode":"00:10:00;00"}'

Get an API key from your dashboard · Full API docs →