Format a Video for Instagram Reels
Produce a Reels-ready 9:16 MP4: 1080×1920, H.264 High@4.1, capped bitrate, constant 30 fps. Run the preset directly on this page or call the same agent-ready endpoint from your product.
See what the tool changes.
A real example: the after side is the unedited output of a KinoPipe job. Run the live form above to generate the same result from your own media.
Demo footage: public-domain timelapses (Bureau of Land Management, Oregon · NASA SVS). Processed by the same pipeline the API and MCP tools call.
Useful defaults, typed options.
The tool slug stays stable while your agent supplies named media inputs and a narrow set of documented options.
- Reels delivery spec built in
- Crop or blurred-pad framing
- No re-encode surprises at upload
- 01Reframe to 9:16 at 1080×1920
- 02Crop to fill or pad over a blurred background
- 03Encode H.264 High@4.1 within platform limits
- 04Deliver a fast-start MP4
POST /api/v1/tools/instagram-reelThe command this runs
ffmpeg -i input.mp4 -vf "scale=1080:1920:force_original_aspect_ratio=increase,crop=1080:1920,setsar=1" -c:v libx264 -preset slow -crf 20 -profile:v high -level:v 4.1 -maxrate 6000k -bufsize 12000k -r 30 -g 60 -c:a aac -b:a 160k -movflags +faststart output.mp4- -profile:v high -level:v 4.1
- The decoder profile every phone in circulation handles. Go above it and the platform re-encodes you, which costs a generation of quality you already paid for.
- -maxrate 6000k -bufsize 12000k
- A ceiling rather than a target. CRF still decides the quality; this only stops a busy scene from spiking past what the ingest accepts.
- -r 30 -g 60
- Constant 30 fps with a keyframe every two seconds. Variable frame rate is the most common reason audio drifts out of sync after an upload, and a short GOP is what lets the player scrub without stalling.
- -preset slow -crf 20
- Better than our default, deliberately. This file is about to be re-encoded by somebody else, so it is worth arriving in better shape than it needs to look.
One file works on all three
Reels, TikTok and Shorts all take 1080x1920 H.264 at 30 fps, and this page renders the same bytes as the other two. If you are publishing to more than one, render once and upload the same file rather than paying for three encodes.
What differs between the platforms is the length they allow and where their own interface covers the frame, and neither of those is an encoding setting. Trim with trim_video before you get here, and keep anything that must stay readable away from the bottom fifth.
What this will not do
It will not cut your clip to a platform length. The preset frames and encodes; it never shortens your content without being asked.
It will not follow the speaker when it crops. The 9:16 frame is a fixed centre cut, so a presenter who moves walks out of shot. smart_crop_video is the one that tracks.
It will not upload anything. You get a signed URL for a finished file, and posting it is yours to do.
Know the boundaries before you run.
About instagram reel
Related media tools
Color Grading and LUT for Video
Apply a film look, a LUT of your own, or plain brightness and contrast, in one pass over the whole clip.
ExploreFrame Interpolation to a Higher Frame Rate
Raise a clip to a higher frame rate by synthesising the frames in between, rather than repeating the ones you have.
ExploreGet Video Metadata with an API
Read duration, dimensions, codecs and audio tracks from any media URL.
Explore