{
  "slug": "video-ken-burns",
  "name": "gizza-ai/video-ken-burns",
  "version": "0.1.0",
  "title": "Ken Burns Effect — Animate a Photo into Video — gizza.ai",
  "description": "Turn a still photo into a short MP4 with a smooth pan-and-zoom (Ken Burns) move, right in your browser. Pick the motion, length and size — nothing is uploaded, free.",
  "tags": [
    "ken burns",
    "photo to video",
    "pan and zoom",
    "zoom photo",
    "image to video",
    "slideshow",
    "ffmpeg"
  ],
  "category": "video",
  "urls": {
    "page": "https://gizza.ai/tools/video-ken-burns/",
    "markdown": "https://gizza.ai/tools/video-ken-burns/index.md",
    "descriptor": "https://gizza.ai/tools/video-ken-burns/tool.json",
    "deep_link_example": "https://gizza.ai/tools/video-ken-burns/?url=https://example.com/input&direction=zoom-in&duration=5&zoom=1.3&width=1280&height=720&fps=30"
  },
  "cli": "gizza tool video-ken-burns 'url=https://example.com/input' 'direction=zoom-in' 'duration=5' 'zoom=1.3' 'width=1280' 'height=720' 'fps=30'",
  "tool": {
    "description": "Animate a still image into a short MP4 clip with a smooth pan-and-zoom (Ken Burns) move. Provide either url (HTTP/HTTPS) or ref (id from a prior image tool call). Optional direction (zoom-in [default], zoom-out, pan-left, pan-right, pan-up, pan-down), duration (seconds 1-30, default 5), zoom (peak factor 1.0-2.0, default 1.3), width/height in pixels (default 1280x720), and fps (default 30). Output is an H.264 MP4.",
    "parameters": {
      "additionalProperties": false,
      "oneOf": [
        {
          "required": [
            "url"
          ]
        },
        {
          "required": [
            "ref"
          ]
        }
      ],
      "properties": {
        "direction": {
          "description": "Ken Burns move (default zoom-in): zoom-in, zoom-out, or pan-left/right/up/down.",
          "enum": [
            "zoom-in",
            "zoom-out",
            "pan-left",
            "pan-right",
            "pan-up",
            "pan-down"
          ],
          "type": "string"
        },
        "duration": {
          "description": "Clip length in seconds, 1-30 (default 5).",
          "maximum": 30,
          "minimum": 1,
          "type": "number"
        },
        "fps": {
          "description": "Frames per second, 1-60 (default 30).",
          "maximum": 60,
          "minimum": 1,
          "type": "number"
        },
        "height": {
          "description": "Output height in pixels, 16-3840 (default 720; snapped to an even number).",
          "maximum": 3840,
          "minimum": 16,
          "type": "number"
        },
        "ref": {
          "description": "Reference id from a prior tool call. Use either url or ref.",
          "type": "string"
        },
        "url": {
          "description": "Image URL (HTTP/HTTPS). Use either url or ref.",
          "type": "string"
        },
        "width": {
          "description": "Output width in pixels, 16-3840 (default 1280; snapped to an even number).",
          "maximum": 3840,
          "minimum": 16,
          "type": "number"
        },
        "zoom": {
          "description": "Peak zoom factor, 1.0-2.0 (default 1.3). Panning needs > 1 to have room to move.",
          "maximum": 2,
          "minimum": 1,
          "type": "number"
        }
      },
      "type": "object"
    }
  }
}