How to change a video’s aspect ratio
Crop to fill a new frame. Add padding to keep the whole shot. Choose with the picture in front of you.
Free toolVideo Cropper & ResizerReframe a video for 9:16, square or a custom size. Drag the crop or keep the whole shot on a blurred or solid background.Crop or resize a videoChange the frame, then decide what happens to the picture
Choose an output shape, then crop or fit the source inside it. Both methods preserve the picture’s proportions. Stretching changes those proportions and can make faces look wider or thinner.
| Method | What you keep | The tradeoff |
|---|---|---|
| Crop to fill | A selected area fills the new frame. | People, text or action near the edges can disappear. |
| Fit with solid padding | The entire source, with space around it. | The subject appears smaller. The padding is visible. |
| Fit with blurred padding | The entire source over an enlarged, blurred copy. | The background moves with the picture and may distract. |
Make a horizontal video vertical
Start with 9:16 and check where the subject moves. In the video cropper and resizer, choose Crop and drag the picture into place. Use Original to see what falls outside the frame.
- Review the beginning, middle and end. A centred subject in the first frame can leave the crop later.
- Choose Blur pad or Solid pad if several people need to stay visible.
- Check the new dimensions and any enlargement before saving.
Floi uses one fixed position throughout the clip. A changing composition needs keyframes or tracking in an editor. Adobe Premiere Pro’s Auto Reframe is one alternative for moving subjects.
What a crop actually removes
A vertical crop can discard most of a landscape picture. The examples below calculate the maximum centred area without extra zoom. They are geometry calculations from floi’s composition model, checked on 29 October 2026, not video-quality benchmarks.
| Source | New shape | Source area kept | Picture retained |
|---|---|---|---|
| 1920 × 1080 | 9:16 | 607.5 × 1080 | 31.6% |
| 1920 × 1080 | 1:1 | 1080 × 1080 | 56.3% |
| 1920 × 1080 | 4:5 | 864 × 1080 | 45.0% |
| 1080 × 1920 | 16:9 | 1080 × 607.5 | 31.6% |
| 1920 × 1080 | Any shape, padded | 1920 × 1080 | 100% |
For the first row, divide 1080 by 16 and multiply by 9 to get 607.5. Divide that by 1920 to get the retained fraction. Half-pixel boundaries describe the sampling area; the saved frame still has whole, even pixel dimensions.
Choose a resolution without promising new detail
Use enough output pixels for the destination, while checking the source area behind them. A 1080 by 1920 export can look soft when it enlarges a narrow crop from a small source.
- A full-height vertical crop from a 1920 by 1080 source is enlarged about 1.78× to fill 1080 by 1920.
- The same crop from a 3840 by 2160 source has 1215 by 2160 pixels available. A 1080 by 1920 result reduces it slightly.
- Padding fits all the source pixels, but a wide picture occupies only part of the vertical frame.
All three floi framing modes re-encode the picture. High quality aims for a higher bitrate than Balanced. Keep the original for another edit, since repeated lossy exports can compound visible damage.
What we checked in the exported files
We exported an original three-second, 960 by 540 test clip on 29 October 2026. It contained 72 frames and AAC sound. These checks used a MacBook Pro with an Apple M1 Max and 32 GB memory. FFprobe inspected each result.
| Browser engine | Result | Observed output |
|---|---|---|
| Chrome 156 | MP4 crop, blur pad and solid pad | 480 × 854, 72 frames, 3.000-second picture and audio tracks. Original AAC packet hashes matched. |
| WebKit 27.2 | MP4 crop, blur pad and solid pad | 480 × 854, 72 frames, 3.000-second picture and audio tracks. Original AAC packet hashes matched. |
| Chrome 156 / WebKit 27.2 | WebM with converted sound | 72 frames in each. Container durations were 3.020 and 3.055 seconds respectively. |
| Both engines | Rotated and variable-frame-rate sources | Rotation was baked into a 540 × 960 result. The variable-rate clip retained 72 frames across 4.500 seconds. |
Compatible AAC or Opus sound is copied without another audio encode. Other sound needs conversion, which can add encoder padding. These are short synthetic tests, not measured browser maxima. WebKit coverage is an automated engine test, not a physical iPhone test. Review your own result before publishing.
Use FFmpeg for repeatable crops and padding
FFmpeg is useful for batches, long clips and formats outside browser support. These examples assume an SDR 16:9 source. They create a new H.264 MP4 and keep an optional primary audio track as AAC.
A centred 9:16 crop
Crop a full-height vertical area, then scale it to 1080 by 1920. Change the crop’s horizontal position to keep a different subject.
ffmpeg -i input.mp4 -map 0:v:0 -map 0:a:0? -vf "crop=ih*9/16:ih,scale=1080:1920,setsar=1" -c:v libx264 -crf 20 -c:a aac -movflags +faststart vertical-crop.mp4Keep the entire shot with padding
Fit the source inside a 1080 by 1920 frame and centre it on black. The even-number calculation suits H.264’s common pixel formats.
ffmpeg -i input.mp4 -map 0:v:0 -map 0:a:0? -vf "scale=1080:1920:force_original_aspect_ratio=decrease:force_divisible_by=2,pad=1080:1920:(ow-iw)/2:(oh-ih)/2,setsar=1" -c:v libx264 -crf 20 -c:a aac -movflags +faststart vertical-pad.mp4See FFmpeg’s crop, scale and pad filter documentation for exact options. These commands do not tone-map HDR sources.
Keep composition guides separate from the final video
Use a thirds grid to judge composition. It does not predict a platform’s captions, controls or preview crop. Check the actual destination and leave room around essential text.
Platform overlays vary with placement and screen. Google’s video-ad safe-zone guidance describes this variation for ads. An advertising template is not a universal safe area for an organic post.
When to choose another tool
Use a desktop editor for animated reframing, HDR, multiple clips or a long recording. Use the video trimmer to shorten time. Use the compressor to reduce bytes, and add captions after framing with the subtitle editor.