{
  "id": "time-lapse",
  "version": "9aa3542db8c7",
  "status": "published",
  "name": "Time Lapse Calculator",
  "question": "How long will my time lapse be?",
  "summary": "Works out how many photos a time-lapse takes and how long the clip will be from the event length, shooting interval and frame rate, or the interval to use for a clip length you want.",
  "category": "everyday-life",
  "subcategory": "fun",
  "url": "https://www.acalculator.org/everyday-life/time-lapse-calculator",
  "markdown": "https://www.acalculator.org/everyday-life/time-lapse-calculator.md",
  "kind": "function",
  "method": "Photos = ⌊event length ÷ interval⌋; clip length = photos ÷ fps. For a clip length: photos = ⌈clip length × fps⌉; interval = event length ÷ photos.",
  "assumptions": [
    "Photos are counted in whole intervals over the event; a part of an interval at the end takes no photo.",
    "Every photo becomes one frame of the video.",
    "1 GB = 1,000 MB, as storage cards are sold."
  ],
  "inputs": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {
      "find": {
        "title": "Work out",
        "description": "The clip length from an interval, or the interval for a clip length.",
        "type": "string",
        "enum": [
          "clip",
          "interval"
        ]
      },
      "ev": {
        "title": "Event length",
        "description": "How long you will shoot for.",
        "type": [
          "number",
          "string"
        ],
        "x-quantity": "time",
        "minimum": 1,
        "maximum": 31536000
      },
      "int": {
        "title": "Interval",
        "description": "The time between two photos.",
        "type": [
          "number",
          "string"
        ],
        "x-quantity": "time",
        "minimum": 0.01,
        "maximum": 86400
      },
      "clip": {
        "title": "Clip length",
        "description": "How long you want the finished video to be.",
        "type": [
          "number",
          "string"
        ],
        "x-quantity": "time",
        "minimum": 0.1,
        "maximum": 86400
      },
      "fps": {
        "title": "Frame rate (fps)",
        "description": "Frames per second of the finished video; 24, 25, 30 and 60 are common.",
        "type": "number",
        "minimum": 1,
        "maximum": 1000
      },
      "mb": {
        "title": "Photo size (MB)",
        "description": "Optional: the size of one photo file in megabytes, to estimate the storage.",
        "type": "number",
        "minimum": 0.001,
        "maximum": 10000
      }
    }
  },
  "outputs": {
    "result": {
      "label": "Answer",
      "description": "The clip length, or the interval to shoot at.",
      "format": "text"
    },
    "photos": {
      "label": "Photos",
      "description": "Event length ÷ interval, in whole photos.",
      "format": "integer"
    },
    "clipLength": {
      "label": "Clip length",
      "description": "Photos ÷ frame rate.",
      "format": "quantity",
      "unit": "s"
    },
    "intervalLength": {
      "label": "Interval",
      "description": "The time between two photos.",
      "format": "quantity",
      "unit": "s"
    },
    "speed": {
      "label": "Speed-up",
      "description": "Interval × frame rate: how many times faster than real time the clip plays.",
      "format": "number"
    },
    "storage": {
      "label": "Storage",
      "description": "Photos × photo size, in gigabytes (1 GB = 1,000 MB).",
      "format": "number"
    }
  },
  "defaultAnswer": {
    "inputs": {
      "find": "clip",
      "ev": 7200,
      "int": 5,
      "clip": 30,
      "fps": 30
    },
    "outputs": {
      "result": "A 48 s clip",
      "photos": 1440,
      "clipLength": 48,
      "intervalLength": 5,
      "speed": 150
    },
    "text": "A 48 s clip: 1,440 photos played at 30 fps."
  },
  "examples": [
    {
      "given": {
        "find": "clip",
        "ev": 86400,
        "int": 30,
        "fps": 24
      },
      "expect": {
        "photos": 2880,
        "clipLength": 120,
        "result": "A 2 min 0 s clip",
        "speed": 720
      },
      "source": "Time-lapse photography, Wikipedia (one frame every 30 seconds for 24 hours gives 2,880 frames, about 2 minutes at 24 frames per second), https://en.wikipedia.org/wiki/Time-lapse_photography (retrieved 2026-10-03); hand calculation in content.mdx: 86,400 ÷ 30 = 2,880 photos ÷ 24 = 120 s"
    },
    {
      "given": {
        "find": "interval",
        "ev": 14400,
        "clip": 45,
        "fps": 24
      },
      "expect": {
        "photos": 1080,
        "intervalLength": 13.333333333333334,
        "result": "Shoot every 13.33 s"
      },
      "source": "Time-lapse photography, Wikipedia (one frame every 30 seconds for 24 hours gives 2,880 frames, about 2 minutes at 24 frames per second), https://en.wikipedia.org/wiki/Time-lapse_photography (retrieved 2026-10-03); hand calculation in content.mdx: 45 × 24 = 1,080 photos; 14,400 ÷ 1,080 = 13.33 s"
    },
    {
      "given": {
        "find": "clip",
        "ev": 7200,
        "int": 7,
        "fps": 30,
        "mb": 25
      },
      "expect": {
        "photos": 1028,
        "clipLength": 34.266666666666666,
        "storage": 25.7
      },
      "source": "Time-lapse photography, Wikipedia (one frame every 30 seconds for 24 hours gives 2,880 frames, about 2 minutes at 24 frames per second), https://en.wikipedia.org/wiki/Time-lapse_photography (retrieved 2026-10-03); hand calculation in content.mdx: 7,200 ÷ 7 = 1,028.6, so 1,028 whole photos ÷ 30 = 34.27 s; 1,028 × 25 MB = 25.7 GB"
    }
  ],
  "sources": [
    "Time-lapse photography, Wikipedia (one frame every 30 seconds over 24 hours gives 2,880 frames, about 2 minutes at 24 frames per second). https://en.wikipedia.org/wiki/Time-lapse_photography (retrieved 2026-10-03)"
  ],
  "related": [
    "time-duration",
    "bpm"
  ],
  "changelog": []
}
