Timecode Frame-Rate Converter
Convert a timecode between frame rates two ways: the same real-world moment, or a conform that relabels the same frame number — with drop-frame handled correctly.
Client review & approval for video, audio, images & PDF — one link, no per-seat fees.
Try FreeFrame-Rate Converter
"Where does this timecode land at the other frame rate?" has two correct answers — pick the one that matches what you're actually doing. For example, 01:00:00:00 at 24 fps lands at the same moment as 01:00:00:00 at 25 fps — but conformed (same frame number, retimed) it becomes 00:57:36:00, the classic PAL speed-up.
Same moment
Enter a valid source timecode to see the result.
Lands at
frames → s → × = → frame
Conform (same frame number)
Enter a valid source timecode to see the result.
Relabeled as
new duration ()
frame stays frame → relabeled at →
Aligned Rulers
Both rulers share one real-time axis. The dashed line marks the queried instant — see which frame it falls in on each ruler.
Enter a valid source timecode to see the rulers.
Source ·
Target ·
What 1 Source Hour Becomes Under Conform
A conform keeps the frame number, not the real time — so retiming 1 hour of source footage to a different rate changes its runtime by the rate ratio.
| Source → Target | 1 source hour becomes |
|---|---|
All math runs in your browser.
Nothing is uploaded and nothing leaves the page. Add or subtract timecodes at a single rate with the Timecode Calculator, or scrub the exact 2:3 field cadence with the 2:3 Pulldown Cadence Diagram.
About Timecode Frame-Rate Converter
Two questions that sound like one
"What does this timecode become at the other frame rate?" has two different correct answers, and picking the wrong one is the most common frame-rate conversion mistake in post. The question is really two questions:
- Same moment (co-timed): where does this exact real-world instant land at the target rate? Use this for dual-delivery timelines (a 24 fps master and a 25 fps web cutdown that must reference the same real second), subtitle and marker conversion, or syncing a cue sheet across two versions of a project.
- Conform (same frame number): frame N simply gets relabeled at the target rate — the footage itself is retimed, so it now runs for a different real duration. Use this for a PAL speed-up conform, a 24→25 delivery that intentionally changes runtime, or explaining why an NLE reports a different clip length after a project frame-rate change.
Mixing the two up produces timecodes that are numerically plausible but describe the wrong thing — a marker that's 4% off, or a duration that silently assumes footage was retimed when it wasn't.
Worked example: the clean case (Same moment)
01:00:00:00 at 24 fps is exactly 86,400 frames and exactly 1 real hour (86,400 ÷ 24 = 3,600.000 s). Ask "same moment at 25 fps" and the target frame is 3,600 × 25 = 90,000 exactly — which converts back to 01:00:00:00. Same label, purely because both rates land on a clean hour boundary; it is easy to mistake this for evidence that 24 and 25 timecode always line up. They don't.
Worked example: the case that doesn't align
Take 00:00:10:12 at 24 fps: that is 252 frames, or exactly 10.5 real seconds (252 ÷ 24 = 10.5). Asking for the same moment at 25 fps gives a target frame position of 10.5 × 25 = 262.5 — there is no frame 262.5, so the instant lands mid-frame. The converter floors to frame 262 (label 00:00:10:12 again, coincidentally the same digits at 25 fps) and reports the remainder: 0.5 of a 25 fps frame period (40 ms) is a 20 ms residual — the queried instant actually lands 20 ms into that frame, not at its start. Ignoring that residual is how a "frame-accurate" marker drifts by half a frame after a rate change.
Worked example: the PAL conform (this is the one that changes runtime)
Relabel that same 01:00:00:00 / 86,400-frame hour of 24 fps footage as 25 fps without changing the moment — i.e., conform it, frame for frame. Frame 86,400 relabeled at 25 fps is 86,400 ÷ 25 = 3,456 seconds = 57 minutes 36 seconds, giving the timecode 00:57:36:00. The hour of film now plays back in 57:36 — about 4.2% faster (25 ÷ 24 ≈ 1.0417×) — which is exactly why PAL-conformed features historically ran a few minutes shorter than their NTSC/film counterparts, and why the audio needs a pitch correction (or is left to run sharp, the classic "PAL speed-up").
The drop-frame gotcha
Converting to or from 29.97 drop-frame must go through frame counts, never through copying digits. Drop-frame labels skip numbers 00 and 01 at the start of every minute except each tenth minute, so a DF label is not a linear count of anything — you decode it to an absolute frame count first (undoing the skip), do the real-time or frame-number math, then re-encode the result into DF labels (reinserting the skip) if the target is 29.97 DF. As a same-moment example: 01:00:00:00 at 23.976 is 86,400 frames = exactly 1:00:03.600 real time (23.976 runs 0.1% slow). Converting that same moment to 29.97 DF gives target frame 108,000 (nominal count) — which the drop-frame algorithm reads out as 01:00:03;18, a widely used reference figure for the 23.976→29.97 pulldown offset.
The 23.976 ↔ 29.97 pulldown relationship
23.976 and 29.97 are not just "close" rates — they are linked by 2:3 pulldown: every 4 film frames (23.976) become 5 video frames (29.97), since 30 ÷ 24 = 5/4 exactly. Because pulldown preserves real time (the film does not speed up, it is just re-interlaced), 23.976 → 29.97 is always a same-moment conversion, never a conform. For the frame-by-frame field cadence, use the 2:3 Pulldown Cadence Diagram tool — this converter overlays a simplified cadence band on the target ruler whenever that rate pair is selected.
What 1 source hour becomes under conform
| Source → Target | 1 source hour becomes |
|---|---|
| 24 → 25 | 0:57:36 |
| 25 → 24 | 1:02:30 |
| 24 → 30 | 0:48:00 |
| 30 → 24 | 1:15:00 |
| 25 → 30 | 0:50:00 |
| 30 → 25 | 1:12:00 |
Each cell is source-hour-frames ÷ target rate, verified by direct division — there is no rounding involved for these integer rate pairs.
How to use the Timecode Frame-Rate Converter
Enter the source timecode with its frame rate, then pick the rate you are going to.
Compare both answers side by side — same moment holds the real-world instant, conform holds the frame number.
Use the aligned rulers to read the sub-frame remainder, and trace 2:3 cadence on the pulldown diagram generator.
Frequently Asked Questions
It depends which question you are asking. For "same moment" (the timecode still points at the same real instant, e.g. converting a marker or subtitle cue) convert through real seconds: frames divided by source rate = seconds, then seconds times target rate = the target frame, floored. For a conform (the footage is being retimed to run at 25 fps) just relabel the same frame number at 25 fps — the tool above does both and shows you which one you need.
Because "convert this timecode" is ambiguous. Same-moment conversion answers "where does this real instant land at the new rate?" and keeps the video's actual timing untouched. Conform conversion answers "what does frame N look like relabeled at the new rate?" and changes the real duration. Both are mathematically correct — they are just answers to different questions, and picking the wrong one is the single most common frame-rate conversion mistake in post.
It gets shorter (or longer) by the ratio of the two frame rates. A straight 24 to 25 conform runs the footage about 4.2% faster (25 ÷ 24 ≈ 1.0417×), so a 24 fps hour becomes 0:57:36 at 25 fps — this is the classic "PAL speed-up," and it is why the audio pitch rises unless it is corrected in the transfer.
Go through frame counts, not digit-copying, and treat it as a same-moment conversion, not a conform — 2:3 pulldown preserves real time, it does not retime the footage. Decode the 23.976 timecode to an absolute frame count, convert to real milliseconds (23.976 runs 0.1% slow, so it is not a clean multiple), then re-encode into 29.97 drop-frame labels using the standard skip pattern. 01:00:00:00 at 23.976 becomes 01:00:03;18 at 29.97 DF — a commonly cited reference offset for this exact pulldown.
No — a timecode conversion is just a label. A same-moment conversion does not touch a single frame of picture or audio; it only recalculates what number should be printed on the counter. A conform conversion, if you actually act on it (retime the clip in your NLE), does change playback speed and duration — but the conversion math itself is just arithmetic until you apply it to real media.
Because frame boundaries at the two rates almost never line up. If the source frame's real-time position is not an exact multiple of the target frame period, the queried instant falls partway through a target frame — the converter shows how many milliseconds into that frame it lands, so you know the target frame it reports is the closest whole frame, not an exact match.
Related Tools
More Video Calculators tools
Frame-accurate review at any frame rate — VoiceDeck
VoiceDeck adds client review & approval for video, audio, images & PDF — one shareable link, no per-seat fees, so every file ships in spec.