Back to MCP tools

pre-alpha · v0.1.0

meme_render_video

Render a local video/GIF or still image/cached template to H.264 MP4 (AAC when source has audio), optionally a companion GIF.

Inputs

Types and defaults come from source annotations. Constraints described below still apply; the schema is not runtime SDK output.

textsRequired
list of text
videoOptional
text Default: ""
imageOptional
text Default: ""
templateOptional
text Default: ""
layoutOptional
text Default: ""
aspectOptional
text Default: "1:1"
outOptional
text Default: ""
fitOptional
text Default: ""
fontOptional
text Default: ""
regionsOptional
list of list of number or empty Default: null
plateOptional
true or false Default: false
shadowOptional
true or false Default: false
rotationOptional
number Default: 0
startOptional
number Default: 0
endOptional
number or empty Default: null
max_durationOptional
number Default: 30
durationOptional
number Default: 5
zoomOptional
number Default: 0
fpsOptional
whole number Default: 30
widthOptional
whole number or empty Default: null
gifOptional
true or false Default: false
gif_fpsOptional
whole number Default: 10
gif_widthOptional
whole number Default: 640
gif_durationOptional
number Default: 8
atOptional
list of number or empty Default: null
untilOptional
list of number or empty Default: null
overwriteOptional
true or false Default: false
Full input schema
{
  "type": "object",
  "properties": {
    "texts": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "video": {
      "type": "string",
      "default": ""
    },
    "image": {
      "type": "string",
      "default": ""
    },
    "template": {
      "type": "string",
      "default": ""
    },
    "layout": {
      "type": "string",
      "default": ""
    },
    "aspect": {
      "type": "string",
      "default": "1:1"
    },
    "out": {
      "type": "string",
      "default": ""
    },
    "fit": {
      "type": "string",
      "default": ""
    },
    "font": {
      "type": "string",
      "default": ""
    },
    "regions": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "array",
            "items": {
              "type": "number"
            }
          }
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "plate": {
      "type": "boolean",
      "default": false
    },
    "shadow": {
      "type": "boolean",
      "default": false
    },
    "rotation": {
      "type": "number",
      "default": 0
    },
    "start": {
      "type": "number",
      "default": 0
    },
    "end": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "max_duration": {
      "type": "number",
      "default": 30
    },
    "duration": {
      "type": "number",
      "default": 5
    },
    "zoom": {
      "type": "number",
      "default": 0
    },
    "fps": {
      "type": "integer",
      "default": 30
    },
    "width": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "gif": {
      "type": "boolean",
      "default": false
    },
    "gif_fps": {
      "type": "integer",
      "default": 10
    },
    "gif_width": {
      "type": "integer",
      "default": 640
    },
    "gif_duration": {
      "type": "number",
      "default": 8
    },
    "at": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "number"
          }
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "until": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "number"
          }
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "overwrite": {
      "type": "boolean",
      "default": false
    }
  },
  "required": [
    "texts"
  ]
}

Outputs and behavior

Render a local video/GIF or still image/cached template to H.264 MP4 (AAC when source has audio), optionally a companion GIF. Requires myzing[memes], FFmpeg and ffprobe. No network. Maximum selected duration 30s; trim with source start/end. Still duration defaults to 5s; zoom is 0..0.25. Layouts and text caps match meme_render. at/until arrays give one inclusive output-time window per text, relative to the trimmed clip. GIF limits: 8s, 10fps, 640px wide; parameters may lower these. Existing outputs require overwrite=true. Returns paths, dimensions, durations, byte sizes and text boxes, never media bytes.

The tool description documents its results and behavior. An exact output schema is not supplied; fields not described here are unknown.

What touches the network

From this tool's description:

No network.

Network behavior beyond these details is not specified in the tool description.

Zing's network policy

Studying, rendering and memes run locally by default. Reference URL downloads require explicit consent. Requested model and font downloads are pinned by URL and SHA-256, cached locally and reported. Uoink is reached only through a peer you configure on your machine. Zing has no telemetry or analytics.

Source

Generated from the site's synced MCP inventory on every build. Descriptions and input schemas refer to this pinned source snapshot.

Source commit: d308dc3f9c2b42e305afd4d7d61e4bfa2f276bc4

Read the tool manifest