Skip to navigation

Reframe a video to a new resolution

Reframe a video to a new resolution. The model fills in the missing areas with generated content that matches the original. On completion, the result contains video_url, the source video reframed to the requested resolution.

Responds immediately with the job id and created_at timestamp. Poll GET /v2/video-to-video-reframe/{id} until the status is completed.

Billed per second of input video, by output resolution. See Pricing.

Authentication

AuthorizationBearer
API key authentication

Request

This endpoint expects an object.
video_uristringRequired

Input video in HTTPS URL or base64 data URI format. See Input Formats for supported formats and codecs.

Max 60 seconds and 1800 frames (e.g. 60s at 30fps, or 30s at 60fps).

resolutionenumRequired

Target output resolution. The source video is extended to fill this frame. Pass one of the values below; each maps to an aspect ratio:

Aspect ratioResolutions
1:1 (square)720x720, 1080x1080
4:5 (portrait)720x900, 1080x1350
5:4 (landscape)900x720, 1350x1080
9:16 (portrait)720x1280, 1080x1920
16:9 (landscape)1280x720, 1920x1080
placementobjectOptional

Where the source video lands on the output frame: an Anchor such as { "anchor": "top" } to fit and align it, or a Rectangle such as { "x": 0, "y": 0.35, "width": 1 } to set its position and size exactly (see both below). The whole source is always kept and never stretched; the model generates the rest of the frame. Omit to center it at the largest size that fits.

Response

Job submitted successfully
idstring
Unique job identifier. Use this to poll for status.
created_atdatetime
ISO 8601 timestamp of when the job was created.

Errors

400
Bad Request Error
401
Unauthorized Error
402
Payment Required Error
422
Unprocessable Entity Error
429
Too Many Requests Error
500
Internal Server Error
503
Service Unavailable Error