Instagram Story expects a 9:16 vertical frame, and the safest local way to produce one from any landscape or square clip is to crop to a fixed pixel rectangle inside the source. Video Cropper draws one rectangle from every decoded frame directly in your browser tab, then records that region as a WebM you can download — no upload, no server, no codec guesswork for you. Because the rectangle is fixed across the entire clip, this approach is ideal when the unwanted edges (black bars, watermarks, bystanders on the side) are static throughout the video. The result is a vertical WebM at 30 fps with a finite container duration, bounded bitrate, and audio attached only when your browser exposes a capturable track. If your source is short enough to meet the safety budget and tall enough to host a 9:16 slice, cropping gives you an exact, repeatable rectangle you can verify before posting.

crop video for instagram story
crop video for instagram story

What Instagram Story Expects from the Frame

Instagram's Story surface is built for vertical phone playback, so the platform tightens the frame to a 9:16 aspect ratio. The widely recommended upload resolution is 1080 pixels wide by 1920 pixels tall, and the visible safe area is the same rectangle without any inset letterboxing. A single Story segment can run up to about 60 seconds; longer Stories are split automatically, so most clips posted to Stories are short vertical clips with no narration, or with narration that fits inside that vertical canvas. The vertical constraint is what triggers most cropping requests.

If your source clip is 16:9 landscape, the only way to land a 9:16 slice inside it is to keep the full source height and carve a narrower window out of the middle. If the source is already square (1:1) or vertical (4:5, 9:16), the rectangle can stretch top-to-bottom and just trim unwanted columns from the sides. The goal is always the same — produce a frame whose width-to-height ratio equals 9:16, regardless of how much of the original frame that rectangle consumes.

For the broader rules around Instagram's exact aspect ratios, codecs, and recommended resolutions across feed, Reels, and Stories, the dedicated Instagram video format and resize guide walks through each surface in detail. Cropping, however, is the focused answer when the frame is the only thing that needs to change.

Cropping never adds pixels, so the cropped output can never be taller than your source. If the source is shorter than 1920 pixels on its tall side, the cropped file will be shorter too. In that case the visual field is correct but the resolution is below the 1080×1920 recommendation, which is a separate problem that Video Resizer solves by adjusting pixel count rather than trimming it.

Why Video Cropper Matches the Job

For a Story crop, the rectangle has to be precise, the rectangle has to stay still, and the operation has to be repeatable. Video Cropper satisfies all three: it draws one fixed source rectangle into a Canvas at the requested coordinates, plays the source video locally, records that Canvas stream into a WebM, and patches a finite Matroska Duration into the container so the output plays back with a real length rather than an open-ended stream.

The tool never uploads the source. Decoding, cropping, recording, and writing the WebM duration all happen inside the active tab. That matters when the clip is personal, recorded on a phone, or pulled from a private folder, and it matters just as much when you simply do not want a third party to hold an intermediate copy of the file.

Other features line up with what a Story clip needs. The cropped rectangle is identical on every frame, so static black bars or unwanted edges stay locked to the same pixels throughout the clip; the output frame is opaque (alpha is cleared), which avoids accidental see-through on dark Instagram backgrounds; and the bitrate is bounded from 180 kbps up to 8 Mbps derived from the cropped pixel area at 30 fps, so very large outputs do not silently balloon in size. The Matroska Duration patch that gives the output a finite length is documented in the Matroska container format specification; the patch writes a big-endian Duration value in TimestampScale ticks so the file is recognized as a finite clip rather than a live stream.

How to Crop a Video for Instagram Story Step by Step

  1. Open Video Cropper and pick a browser-decodable file (MP4, WebM, MOV, M4V, or Ogg). Wait until the source dimensions appear before continuing — those numbers are the pixel canvas you are cropping from.
  2. Decide your 9:16 rectangle inside the decoded source. For a landscape source that means using the full height and a narrower centered slice; for a square or vertical source, use the full height and trim columns from the sides.
  3. Type the X offset (pixels from the top-left), Y offset (pixels from the top-left), width, and height. Each value must be an untrimmed whole pixel, width and height must each be at least 2, and the rectangle must stay inside every decoded frame.
  4. Select Crop video. The tab begins real-time processing, which plays the source at its native pace and records the cropped Canvas stream — leave the tab open until recording finishes.
  5. When the download becomes available, save the WebM and fully review it: duration, the cropped region, audio, and playback in the destination player. Only delete the source once the cropped output is confirmed.

Reading the Input Limits Before You Click Crop

Video Cropper enforces an explicit safety budget on the source so the tab stays responsive. The limits are not arbitrary — they are the same audited gates used by Video Compressor, so the input the Story cropper accepts is the input the rest of the local video pipeline can handle.

Source limitAllowed value
File sizeUp to 500 MiB
Decoded durationAbove 0 and at most 5 minutes
Longest sideNo more than 4096 pixels
Source areaNo more than 3840 × 2160 pixels

On the output side, the cropped rectangle is capped at 3840 × 2160 pixels, the recorder runs at 30 fps, and the bitrate is bounded between 180 kbps and 8 Mbps. The first browser-reported WebM codec among VP9, VP8, and generic WebM is selected automatically. Audio is appended only when the browser exposes a capturable track through media capture — and even then, support varies, so the source may play audibly while the tab is processing.

Picking the Right Pixel Coordinates

The rectangle is described by four whole-pixel numbers, and the math is the same regardless of source size.

  • X — horizontal offset from the top-left corner, in source pixels; larger X moves the rectangle right.
  • Y — vertical offset from the top-left corner, in source pixels; larger Y moves the rectangle down.
  • Width — horizontal extent of the rectangle; must be at least 2.
  • Height — vertical extent of the rectangle; must be at least 2.

For a 9:16 Story crop from a 3840 × 2160 source, the formula is straightforward: use the full source height, divide by the ratio you want, then center horizontally.

Worked example: source 3840 × 2160, target 9:16.

  • Height = 2160 (full source height)
  • Width = 2160 × 9 ÷ 16 = 1215
  • X = (3840 − 1215) ÷ 2 = 1312 (rounded down to a whole pixel; the remaining one pixel stays on the right)
  • Y = 0

Sanity-check those four values: 1312 + 1215 = 2527, less than 3840; 0 + 2160 = 2160, equal to the source height. The cropped output is 1215 × 2160 = 2,624,400 pixels — well inside the 3840 × 2160 output cap. When the math does not divide evenly and you want exact visual centering, pick X so the right-side remainder is one pixel larger than the left; the integer constraint is preserved either way.

Verifying the WebM Before You Post

A cropped file that looks right on screen can still hide problems: an open-ended duration that confuses the Story uploader, a missing audio track, or a rectangle that clipped past the source edge by a single pixel. Run through this short checklist before deleting the source.

  • Open the WebM in the destination player and confirm the duration matches the original clip rather than appearing as "live stream" or zero. The Matroska Duration patch is what gives the file a finite length, and if it is missing, the Story uploader may treat the file as a still image.
  • Scrub to the first and last frames. Because the rectangle is fixed, the same pixels should be cut off throughout the clip, so any drift means the coordinates were entered wrong.
  • Play audio. If your source had sound and the cropped WebM does not, the browser did not expose a capturable audio track — re-run on a different browser if audio is required.
  • Test the file in the actual Instagram upload path. A local player saying "fine" is not the same as the Story uploader accepting the file as a 9:16 vertical clip.

When Cropping Alone Is Not Enough

Cropping changes the visible frame region; it does not add pixels or retime the clip. If your source is shorter than 1920 pixels on its tall side and you need a true 1080 × 1920 file, the cropped output will be smaller than the recommended resolution — correct aspect ratio, lower resolution. In that case Video Resizer produces a 1080 × 1920 file by adjusting pixel count, and you can follow it with Video Compressor to land inside Instagram's upload budget.

Cropping is also the wrong tool if the unwanted content moves with a subject. A fixed rectangle cannot follow a person across the frame. For static edges, watermarks, logos, or empty black bars, the rectangle holds them out cleanly; for moving subjects, you need a tracker rather than a crop. Cropping does not change duration, either. If you need a 30-second segment from a 4-minute clip, Video Trimmer handles that task without re-encoding the full timeline.

For the specific job of fitting a clip into Instagram's 9:16 vertical frame, however, cropping at exact source pixels is the most predictable move: one rectangle, every frame, recorded locally, exported with a finite duration, and easy to verify before the source is deleted.