Skip to main content
Glama
AbyAbyss

ffmpeg-mcp-video-editor

by AbyAbyss

Resize / change aspect ratio

resize_video

Resize video to any resolution or aspect ratio, including presets for social media formats, with cover, contain, blur, or stretch fit modes to handle shape changes.

Instructions

Convert a video to a different resolution or aspect ratio.

Use a named preset for the common targets — 'reel', 'tiktok', 'youtube_short' and 'story' are all 1080x1920; 'youtube_1080p', 'youtube_4k', 'instagram_square' and 'instagram_portrait' do what they say — or give an explicit width and height, or an aspect_ratio such as '9:16'.

'fit' decides what happens to the picture that no longer fits when the shape changes:

  • cover (default) zooms and crops to fill; nothing is letterboxed but the edges are lost. Use 'focus' to choose which part survives.

  • contain fits the whole picture inside and pads with solid bars.

  • blur fits the whole picture inside over a blurred, zoomed copy of itself — the usual look for turning landscape footage vertical.

  • stretch distorts the picture to fit exactly.

For a talking-head video where the subject must stay in frame, prefer track_and_crop, which follows the face instead of cropping to a fixed point.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
fitNoHow the picture fills a different shape. 'cover' crops to fill; 'contain' letterboxes with solid bars; 'blur' letterboxes over a blurred zoomed copy of the video; 'stretch' distorts to fit.cover
focusNoWhich part of the picture 'cover' keeps when it has to crop.center
widthNo
encodeNo
heightNo
presetNoNamed target, e.g. 'reel', 'tiktok', 'youtube_short', 'youtube_1080p', 'youtube_4k', 'instagram_square', 'instagram_portrait'. Takes precedence over width/height and aspect_ratio.
input_pathYesPath to the source media file.
output_pathNoDestination file. If omitted, the output is written into the job's workspace directory and its path is returned by job_result.
aspect_ratioNoTarget shape such as '9:16', '16:9', '1:1', '4:5'. Combined with a width or height to fix the size; on its own the source's pixel count is preserved.
blur_strengthNoBackground blur amount for 'blur'.
background_colorNoBar colour for 'contain'.black

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
toolYes
job_idYes
statusNoqueued
messageNoJob queued. Poll job_status for progress, then job_result.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the key behavioral implications of each fit mode (e.g., cover loses edges, contain pads with bars, blur overlays a blurred copy) and explains how focus affects cropping. With annotations only indicating non-read-only and non-destructive, the description carries significant burden and does so well. It could add more about encoding side effects, but the schema EncodeOptions covers those, and the core transformation behavior is transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is somewhat long but well-structured and front-loaded with a clear summary, then detailed sections for presets, fit modes, and alternatives. Every sentence adds value, though it could be tightened without losing critical information. The use of bullet-like formatting for fit modes enhances readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 11 parameters and complex fit behavior, the description covers the essential decision points: presets, fit strategies, focus, and when to prefer an alternative. The output_path behavior is handled by the schema, and encode options are documented in the nested EncodeOptions, so the description is complete enough for an agent to invoke correctly. Minor gaps remain around default encoding behavior, but these are less critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 73%, but the description greatly enriches parameter understanding: it enumerates specific preset names and their resolutions (e.g., reel, tiktok, story are 1080x1920), explains how aspect_ratio behaves when combined with width/height or used alone, and gives concrete examples of fit modes beyond the schema's brief descriptions. This adds substantial meaning beyond the structured schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Convert a video to a different resolution or aspect ratio.' It clearly distinguishes itself from sibling tools by explicitly recommending track_and_crop for talking-head videos where the subject must stay in frame, making its scope and unique purpose clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance, including when to use a named preset versus explicit width/height/aspect_ratio, and for each fit mode what trade-offs exist. It also names an alternative tool (track_and_crop) for a specific use case, giving clear when-to-use and when-not-to-use direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/AbyAbyss/ffmpeg-mcp-video-editor'

If you have feedback or need assistance with the MCP directory API, please join our Discord server