Skip to content
100% local

SMPTE timecode converter

Convert between SMPTE timecode, frame numbers and seconds at any broadcast frame rate.

Input

SMPTE timecode converter

Paste a list of SMPTE timecodes, frame numbers or seconds and this tool converts every line at once, at any of the eight broadcast and film frame rates from 23.976 to 60 fps. Editors reconciling an EDL against a camera log, developers writing frame-accurate cue points, or anyone turning a client's "cut at 00:12:34:10" into a plain frame count can paste a whole list instead of converting one value at a time.

Three operations cover the everyday timecode math. "Convert format" turns each line from the input format into the output format at the chosen frame rate — timecode to frames, frames to seconds, or any other pairing. "Shift by offset" adds or subtracts a fixed HH:MM:SS:FF amount from every line, useful for syncing a subtitle track or nudging a whole EDL by a few frames; a leading minus sign subtracts. "Convert frame rate" rebases a list from one rate to another while preserving the real elapsed time each timecode represents, rather than copying the frame number as-is.

Drop-frame notation is supported for the two NTSC-family rates, 29.97 and 59.94 fps, where it keeps long-running timecode close to wall-clock time by skipping frame labels 00 and 01 (or 00–03 at 59.94) at the start of most minutes. Turn it on and the tool renders those timecodes with a semicolon before the frame count, the broadcast convention, and rejects labels drop-frame notation never actually produces — like 00:01:00:00 — instead of silently accepting them. The live tally reports how many lines converted cleanly and flags any that didn't.

Everything runs locally in your browser; the timecodes never leave your device. Copy the result, download it as a .txt file, or send it into another tool such as the SRT time shifter to keep working on it.

FAQ

What is the difference between drop-frame and non-drop-frame timecode?
Non-drop-frame counts every frame label in order and is simplest for frame-accurate editing. Drop-frame skips certain frame labels at 29.97 and 59.94 fps so the timecode stays close to real clock time over a long recording — it drops labels, never actual frames. This tool renders drop-frame with a semicolon before the frame count, the standard convention.
Why does "Convert frame rate" give a different frame number than a straight copy?
It re-renders the same real-world instant at the new frame rate rather than reusing the old frame count. A straight copy would silently change the duration a timecode represents whenever the two rates differ, which is rarely what you want when moving footage between formats.
What counts as an invalid frame value?
Any frame number equal to or above the chosen frame rate's rounded value (frame 25 at 25 fps, for example), and — when drop-frame is on — any of the frame labels that drop-frame notation skips at the start of a minute. Invalid lines print as "?" and are counted separately in the tally.
Can I shift a whole list of timecodes at once?
Yes. Choose "Shift by offset", enter a signed HH:MM:SS:FF value, and it is added to (or, with a leading minus, subtracted from) every line in the input.
Is my timecode list uploaded anywhere?
No. Every conversion runs locally in your browser — your list is never sent to a server.