A browser-based video resizer for Instagram changes the pixel dimensions of a short local video so it fits one of Instagram's accepted placements for Feed posts, Reels, or Stories — without uploading the source file. The tool opens your selected video inside the current tab, draws each frame onto a canvas sized to your request, and captures that canvas through the browser's WebM encoder, so the only data that leaves your computer is the resulting file when you save it. Because Instagram's recommended dimensions vary by placement, a resizer is most useful when you can set a maximum width and height, decide whether to preserve the source aspect ratio or hit the target size exactly, and let the browser complete the encoding pass in real time. The Fit versus Stretch choice is what turns a generic resize into an Instagram-ready clip: Fit scales the picture inside a bounding box without cropping or distortion, while Stretch applies your width and height as literal pixel targets and may warp subjects that do not already match. Knowing which mode matches the placement you intend to upload to, and entering that placement's pixel size as the bounding box, is the core workflow covered below.

video resizer for instagram
Video Resizer for Instagram: Pick Fit or Stretch

What Video Resizer Does to a Local Video

For a video resizer for Instagram that runs entirely in the browser, the pipeline stays close to the same one any local re-encode uses. Video Resizer reads the chosen file with the browser's built-in video decoder, computes a target canvas size from your width, height, and Fit or Stretch choice, draws each decoded frame onto that canvas, captures the live canvas stream, and records the capture through the MediaRecorder API as described on MDN. The recorded output is a WebM container with VP9 or VP8 video and any browser-exposed audio track from the source. Once recording ends, the tool patches a finite duration through an audited Matroska duration writer and exposes a local object URL you can save from your browser's download dialog. Canvas captureStream, the upstream API that feeds MediaRecorder, is documented separately on MDN.

Inputs are limited to MP4, WebM, MOV, M4V, or Ogg files with whole-number pixel values from 2 to 1920 on each axis, source files up to 500 MiB and five minutes long, and dimensions no greater than 4096 pixels per side or 3840 × 2160 in total area. Each output dimension is rounded down to a positive even integer before encoding — common browser video encoders are more reliable with codec-safe even pixel sizes, which is why an odd request like 1081 becomes 1080. Files outside those bounds fail visibly inside the resizer rather than producing a misleading download, so a too-tall story clip or a multi-gigabyte concert recording surfaces a clear error before you wait on a re-encode. The resizer also does not upscale detail, remove black bars, crop a subject, preserve subtitles or alternate audio tracks, or bypass any source DRM, and it does not pretend to change container metadata to claim a smaller file size.

Instagram Placements and the Dimensions They Need

Instagram accepts different ratios across Feed posts, Reels, and Stories, so the maximum width and height you enter into the resizer depend on where you plan to post. The exact pixel sizes Instagram currently recommends for each placement are covered in detail in our Best Video Format for Instagram: Exact Specs and How to Resize guide, but the broad shapes stay consistent across placements. The table below maps each placement to its aspect ratio so you know which box to feed the resizer before you look up the exact width and height.

Instagram placementAspect ratioFraming notes
Feed (square)1:1Balanced grid framing for still-style posts
Feed (portrait)4:5Taller crop that uses more of the viewport
Feed (landscape)1.91:1Cinematic crops of horizontal source footage
Reels9:16Full-screen vertical playback in the Reels tab
Stories9:16Same vertical ratio as Reels, expires after 24 hours

Every ratio in the table can be written into Video Resizer as a width × height bounding box. Fit will scale inside that box while preserving your source framing; Stretch will hit the literal pixel size you entered and may distort subjects whose source ratio differs. Choosing the wrong mode is the most common reason an Instagram-ready clip looks squashed or stretched after encoding, which is why the next section walks through each step.

Resizing a Video for Instagram Step by Step

The actual resizing flow takes only a handful of clicks once you know which Instagram placement you are targeting. The steps below assume you already have the source file on disk and a working browser that supports the MediaRecorder API.

  1. Open the Video Resizer tool in your browser tab.
  2. Click the file picker and choose a supported local video in MP4, WebM, MOV, M4V, or Ogg format. Wait for the browser metadata to load before continuing.
  3. Enter the maximum width and height that match the Instagram placement you are targeting — for example, the bounding box for a Reels or Stories ratio if that is where the clip will land.
  4. Pick Fit to preserve the source aspect ratio inside that bounding box, or Stretch to force the exact width and height you entered.
  5. Select Resize video and keep the tab open and in the foreground while the browser re-encodes in real time. The pass normally takes about as long as the source clip.
  6. When the WebM download appears, save it from your browser's download dialog and then upload it to Instagram through the placement you prepared for.

If the resizer surfaces an error instead of a download, the most likely causes are an unsupported codec, dimensions outside the 2 to 1920 range, or a source that exceeds the 500 MiB or five-minute limit. Shorten the clip, downscale the request, or convert the source into a supported container before retrying.

Choosing Fit or Stretch for an Instagram Clip

Fit and Stretch produce very different Instagram uploads, and picking the right one depends on how close your source ratio is to the placement you are targeting. The table below compares the two modes side by side before the practical guidance.

PropertyFit modeStretch mode
Resize goalScale the picture to fit inside the bounding boxHit the exact width and height you entered
Aspect ratio handlingPreserved from the sourceIndependent on each axis
Subject behaviorLetterboxes or pillarboxes when ratios differUses literal pixels and can stretch faces or backgrounds
Best match for InstagramWhen source ratio is close to but not exactly the placement's ratioWhen source ratio already matches the placement's ratio exactly
Cropping or distortionNo cropping, no distortionNo cropping, but possible distortion

Fit is the safer default when you are not sure your source ratio matches the placement exactly, because thin letterboxing bars are usually less noticeable than an elongated subject. Stretch is the right choice when you have already verified the source ratio lines up with the placement — for example, exporting a vertical recording at the same pixel dimensions you plan to upload at. If the source ratio is far from the target, neither mode can save the framing on its own; in that case reframe with Video Cropper first, then run the cropped result through the resizer to lock in the final pixel size for Instagram.

Output Format, Limits, and When to Use Another Tool

Because the resizer is a real-time re-encode rather than a metadata-only dimension change, the saved WebM will differ from the source in quality, bitrate, frame timing, audio layout, color metadata, and file size — the result is exactly what the browser encoder produced during the recording pass, no more and no less. The download is a WebM container with VP9 or VP8 video because MediaRecorder only exposes codecs built into the browser, and the tool does not pull in a heavier media library to offer MP4 output. Most modern browsers and the Instagram app accept WebM uploads, but older schedulers or third-party social tools sometimes expect MP4. If your upload path requires MP4, remux the WebM through a dedicated desktop encoder rather than running it through another lossy re-encode.

The resizer is also not a full video editor. It cannot make a low-quality clip look sharper than the file you start with, and eight independent geometry fixtures cover landscape, portrait, square, same-ratio, bounding-box, stretch, and odd-dimension cases so the encoded output reflects the requested geometry exactly. Unsupported codecs, invalid dimensions, excessive source metadata, empty recorder output, and browser capability gaps fail visibly instead of producing a misleading download — this is by design, so you do not waste a real-time encoding pass on a request the browser cannot satisfy. For frame-accurate delivery, long footage, MP4 output, color-managed workflows, or exact bitrate control, a dedicated desktop encoder is the right tool. To shrink the file size further after resizing, Video Compressor runs against the same local file without uploading it and exposes balanced, small, or quality-focused WebM presets.