Cropping a video without upload errors comes down to entering whole-pixel coordinates that fit inside every source frame, waiting for the decoded dimensions to load before you click, and reviewing the downloaded WebM in full before deleting the original file. The Video Cropper processes the file in your current browser tab and never sends the source or the output to a server, so the failure modes are local and predictable: a rectangle that falls outside the frame is rejected without shifting, clipping, rounding, or producing a partial file; values that fail the integer, nonnegativity, or two-pixel-minimum checks are not silently corrected; and a rectangle whose output area exceeds 3840 × 2160 pixels is refused outright. Knowing those four interacting limits before you open the file is what separates a clean export from a rejected crop, a silent output, or a WebM file that some players refuse to open because the container duration was never written. This article walks through each precondition, the exact coordinate math that keeps the rectangle valid, and the verification steps that catch silent audio loss or a missing duration before you treat the file as final.

Where video crops actually fail
When a crop looks wrong, the cause is almost always one of four inputs: dimensions, coordinates, audio expectation, or output verification. The tool does not blur the line between a real failure and a successful export, so each of these shows up as a quiet surprise rather than an explicit error.
- Dimensions were not ready when you typed. Source dimensions only exist after the browser finishes decoding the file. Typing values before that moment means you are entering guesses; the tool rejects them without shifting, clipping, rounding, or producing a partial file.
- Coordinates are fractional, trimmed, or negative. The tool parses values as untrimmed whole pixels. A pasted " 320 " with surrounding whitespace, a copied "319.5", or an offset like "-4" all fail validation, and the rectangle is refused without being snapped to a nearby pixel.
- Audio silently disappears. The tool appends audio only when the browser exposes a capturable track through Media Capture. On some sources the track is muted, attached in a non-capturable form, or absent altogether; the file plays through and finishes without an error, but the output is silent.
- The output is treated as final before review. Streaming MediaRecorder output can omit a finite container duration, and the tool patches that in via a Matroska Duration writer, but downstream players still differ. Confirming duration, picture, and audio in the destination player is the only way to be sure the WebM is usable.
Pre-crop checklist: confirm before you click
Five confirmations make almost every crop succeed on the first attempt. Run through this list before you select Crop video in the tool.
- The source plays in the browser. Open the file directly in the same browser first. If the browser refuses to decode it, no in-page tool can recover; pick an MP4, WebM, MOV, M4V, or Ogg container whose codec your browser actually supports. An accepted extension does not guarantee codec support.
- Source dimensions are visible. Wait until the tool reports the decoded width and height. Anything typed before that is a guess, and guessed rectangles fail.
- The file fits the safety budget. Positive files up to 500 MiB, decoded duration strictly above zero and at most five minutes, no side above 4096 pixels, and no source area above 3840 × 2160 pixels. Files outside those limits are rejected regardless of the extension.
- The rectangle sits inside the frame. X must fall between 0 and (source width minus crop width), Y must fall between 0 and (source height minus crop height), X plus width must stay at or below the source width, and Y plus height must stay at or below the source height.
- Width and height are at least two pixels each. One-pixel rectangles are refused; use a real crop region with at least a two-pixel extent in both directions.
If any of these checks fail, fix the source first, then return to the tool. Skipping ahead wastes the real-time pass because processing takes roughly as long as the source while the tab stays open.
Crop the video in your browser with Video Cropper
This is the exact workflow that the Video Cropper is built around. Each step maps to a specific gate the tool runs before it begins re-recording.
- Choose a browser-decodable video. Use the file picker to select an MP4, WebM, MOV, M4V, or Ogg file from your device. Do not paste a URL; the tool reads from the local file you select and nothing leaves the tab.
- Wait for source dimensions to load. The tool decodes the file once and reports the width and height. Do not enter any coordinates until those numbers appear, because the rectangle is validated against the decoded frame.
- Enter whole-pixel X, Y, width, and height. X moves the rectangle right from the top-left corner, Y moves it down, width is the horizontal extent, and height is the vertical extent. Every value is an untrimmed nonnegative whole pixel, and width and height must each be at least 2.
- Verify the rectangle is inside the frame. Check that X plus width is at most the source width and Y plus height is at most the source height, and that the resulting output area is at most 3840 × 2160 pixels.
- Select Crop video and keep the tab open. The source plays locally while the tool draws the fixed rectangle into a Canvas using drawImage, records that Canvas stream as WebM, and inserts a finite Matroska Duration in timestamp-scale ticks so the container has a known length. Processing is real time, so a one-minute source takes about a minute.
- Download the WebM and review it fully. Open the downloaded file in your destination player and confirm duration, picture, audio, and that the crop region is exactly what you wanted.
- Keep the original until review is complete. Only delete the source file after you have confirmed every property of the output, because the WebM is a re-recording rather than a container-level edit.
Limits that decide whether the crop is accepted
The table below lists every interacting constraint the tool applies when you click Crop video. Treat each row as a hard precondition; failing one row rejects the rectangle, and there is no fallback to the full frame.
| Limit | Threshold | Where it applies |
|---|---|---|
| Source file size | up to 500 MiB | Input |
| Source decoded duration | strictly greater than zero and no more than 5 minutes | Input |
| Source longest side | at most 4096 pixels | Input |
| Source area | at most 3840 × 2160 pixels | Input |
| X offset | nonnegative whole pixel; X + width must be ≤ source width | Coordinate |
| Y offset | nonnegative whole pixel; Y + height must be ≤ source height | Coordinate |
| Crop width | whole pixel, at least 2 | Coordinate |
| Crop height | whole pixel, at least 2 | Coordinate |
| Output area | at most 3840 × 2160 pixels | Coordinate |
| Encoded bitrate | between 180 kbps and 8 Mbps, derived from cropped area at 30 fps | Output |
| Output codec | first browser-reported WebM recorder among VP9, VP8, and generic WebM | Output |
Failed rectangles are refused without shifting, clipping, rounding, or producing a partial file. Running the math against this table before clicking saves an entire real-time pass and a full browser-side recording cycle.
Verify the WebM before you delete the source
A clean download is not the same as a verified crop. Three checks catch the silent failures that look like success on the surface. The first is duration: the tool patches a finite Matroska Duration into the WebM after recording, but some players still misbehave when the value sits at an edge; open the file in your destination player and confirm the seek bar shows the correct length. The second is the picture: the crop is a static rectangle, so the visible region must match X, Y, width, and height on every frame, including during fast motion. The third is audio: if your source has sound, listen to the output, because audio is included only when the browser exposes a capturable track and support varies by browser, codec, and authoring tool. A silent output is not necessarily a processing error, but it is something to confirm before you treat the file as final. For a closer look at how pixels, audio, and duration interact across outputs, see the Video Cropper Accuracy: Pixels, Audio, Duration walkthrough.
What the tool does not do
The Video Cropper applies one fixed rectangle to every frame and re-records that region as WebM. Anything outside that scope is not a mistake you made; it is a feature the tool does not provide, and treating it as a bug is a common source of frustration.
- Not a trim-by-time tool. A trimmer cuts by start and end timestamps; the cropper only changes the visible frame region.
- Not a resize or compress-only tool. The output dimensions equal the crop rectangle. Bitrate is bounded between 180 kbps and 8 Mbps and is derived from cropped pixel area at 30 fps, not from a target file size.
- No moving crop. The rectangle is fixed; if you need the crop to follow a person or object, you need a different tool or manual keyframing, because the tool does not track moving subjects.
- No full container preservation. Subtitles, chapters, attachments, rotation tags, HDR signaling, and color metadata are not carried over. The output is a recorded Canvas stream, so only the video and, when capturable, the audio survive.
- No size or quality guarantee. The bitrate is a single-pass browser setting, not a guarantee of target size or visual quality; fast motion, noise, grain, the source codec, and the browser encoder can all change the result.
Keep the original until the entire output has been reviewed in the player where it will actually be used, and only then delete the source. That last step is the one most often skipped, and it is the step that turns a recoverable crop into a permanent loss.
Related reading: Does Cropping Upload My Video? Browser Croppers Explained.