What Is Video Frame Rate (FPS)?
Sep 12, 2026 • 7 min read
FPS (Frames Per Second) is the number of individual still images displayed per second to create the illusion of motion. Video is a flipbook — each "frame" is a complete image. Play them fast enough and your brain merges them into continuous motion.
The Standards & Where They Came From
| FPS | Name | Origin | Used By |
|---|---|---|---|
| 24 | Cinema / Film | Sound film standardization (1920s) | Movies, Netflix, cinematic content |
| 25 | PAL (Europe) | 50 Hz power grid sync (1960s) | EU broadcast, DVD, some cameras |
| 29.97 | NTSC (US/Japan) | 60 Hz power grid + color subcarrier | US broadcast, legacy TV |
| 30 | NTSC (modern) / Web | 60 Hz / 2 (simplified) | YouTube, social media, gaming, phones |
| 50 | PAL High Frame Rate | 2× 25 (sports) | EU sports broadcast |
| 59.94 / 60 | NTSC HFR / Gaming | 2× 29.97 / 60 Hz | US sports, gaming, slow-mo, VR |
| 120+ | High Speed / VR | Specialty cameras | Slow-motion, VR, scientific |
Why 29.97 and Not 30? (The Drop-Frame Mystery)
NTSC color TV added a 3.58 MHz chroma subcarrier. To prevent interference with the audio carrier, the frame rate was slowed by 0.1%: 30 × 1000/1001 = 29.97002997...
Over an hour, 30 FPS drifts 3.6 seconds vs real time. Drop-frame timecode skips frame numbers 00 and 01 every minute (except every 10th minute) to stay synced to wall clock. This doesn't drop actual frames — just the numbering.
How FPS Affects Frame Extraction
Extraction FPS ≠ Source FPS
You can extract at any FPS regardless of the video's native frame rate:
- Source 30 FPS, Extract 1 FPS: Get 1 frame every 30 source frames (every second).
- Source 24 FPS, Extract 30 FPS: Frames duplicated/interpolated — our tool seeks to nearest timestamps.
- Source 60 FPS, Extract 60 FPS: True 1:1 frame mapping — every source frame becomes an image.
Frame Interval vs FPS
Some tools use "interval" (every N frames) instead of FPS:
FPS = Source FPS / IntervalExample: 30 FPS source, interval 5 → 6 extracted FPS. Our tool uses FPS directly — more intuitive.
Choosing Extraction FPS by Workflow
| Workflow | Recommended Extraction FPS | Reasoning |
|---|---|---|
| VFX Plates / Compositing | Match source (24/25/30/60) | Every frame needed for pixel-perfect alignment |
| Rotoscoping / Roto Paint | Match source (all frames) | Every frame for accurate mattes |
| Camera Tracking / Matchmove | Match source (all frames) | More frames = better solve |
| Animation Reference | 12 / 15 / 24 | 12 = classic 2s; 15 = smooth; 24 = film |
| Game Sprite Sheets | All frames (native) | Preserve original timing for engine import |
| ML Classification | 1 | Max temporal diversity, minimal redundancy |
| Object Detection (YOLO) | 1–3 | Balance box accuracy vs dataset size |
| Instance Segmentation | 2–5 | Pixel-perfect masks need more samples |
| Video Tracking (DeepSORT) | 5–10 | Temporal continuity for ID association |
| Action Recognition | Clip sampling (8–16/clip) | Uniform temporal sampling, not frame-level |
| Lecture / Slide Capture | 1 | One frame per second = slide deck |
| Social Media / Thumbnails | Custom / Exact timestamp | Pick the single best frame |
Variable Frame Rate (VFR) vs Constant (CFR)
- CFR (Constant): Every frame exactly 1/FPS seconds apart. Standard for broadcast, cinema, most phone recordings.
- VFR (Variable): Frame timing varies — screen recordings, Zoom calls, some mobile apps save space by dropping duplicate frames.
Our tool handles VFR by seeking to exact timestamps. At "30 FPS" extraction, it targets t=0, 0.033s, 0.066s... regardless of source frame timing.
Slow Motion & High Frame Rate
High-speed cameras record at 120/240/480/960 FPS but often containerize at 30/60 FPS with repeated frames or metadata flags.
- True HFR: Source 240 FPS, extract 240 FPS → slow-mo playback at 30 FPS = 8× slowdown.
- Container HFR: Source says 30 FPS but has 240 unique frames → extract "all frames" or 240 FPS to get them all.
- Our tool: Set extraction FPS to the container's reported rate × slowdown factor, or use "all frames" mode.
FPS & File Size Math
Quick estimate for planning storage/bandwidth:
Frames = Duration (seconds) × Extraction FPSStorage estimates (1080p, 10-second clip):
| Extraction FPS | Frames (10s) | JPG ZIP | PNG ZIP | WebP ZIP |
|---|---|---|---|---|
| 1 | 10 | ~1 MB | ~10 MB | ~0.7 MB |
| 5 | 50 | ~5 MB | ~50 MB | ~3 MB |
| 10 | 100 | ~10 MB | ~100 MB | ~7 MB |
| 24 | 240 | ~24 MB | ~240 MB | ~16 MB |
| 30 | 300 | ~30 MB | ~300 MB | ~20 MB |
| 60 | 600 | ~60 MB | ~600 MB | ~40 MB |
Common FPS Mistakes
❌ "Extract at 30 FPS for everything"
Wastes 10× storage for ML classification. Match FPS to task.
❌ Ignoring 29.97 vs 30
Hour-long 29.97 source at "30 FPS" extraction = 108 extra frames. Use exact timestamp for sync-critical work.
❌ Extracting 60 FPS from 30 FPS source
Duplicates frames, wastes space. Max useful extraction FPS = source FPS.
Quick Reference Card
Cinema/film: 24 FPS
EU broadcast: 25 FPS
US broadcast/YouTube: 30 FPS (actually 29.97)
Gaming/sports/slow-mo: 60 FPS
ML classification: 1 FPS
ML detection/seg: 2–5 FPS
Animation reference: 12/15/24 FPS
VFX/roto/tracking: All frames (match source)