Note: This site is currently "Under construction". I'm migrating to a new version of my site building software. Lots of things are in a state of disrepair as a result (for example, footnote links aren't working). It's all part of the process of building in public. Most things should still be readable though.

Resize A Video With FFmpeg

TL;DR

This is the FFmpeg command I use to resize videos:

NOTE: If audio doesn't copy try adding `-c:a copy``

Code

ffmpeg -i "in.mp4" -vf "scale=720:-2" "out.mp4"

It resizes the _in.mp4__ video to a 720 pixel wide version called _out.mp4__. The height is determined automatically.

Details

Resizing videos with FFmpeg by adding this to the command:

Code

-vf "scale:WIDTH:HEIGHT"

The WIDTH and HEIGHT can be set to arbitrary values. That includes values that don't match the original aspect ratio which would result in distorted output.

Using `-2`` on one of the dimensions automatically resizes it to fit the aspect ratio. For example, a 3840x2160 source video resized with this:

Code

ffmpeg -i "in.mp4" -vf "scale=1920:-2" "out.mp4"

produces a video that's 1920x1080.

Putting the `-2`` on the HEIGHT works as well. For example, this also produces a 1920x1080 video from a 3840x2160 source.

Code

ffmpeg -i "in.mp4" -vf "scale=-2:1080" "out.mp4"
  • Link to cropping post - id: 2o4bcmue

  • Link to image quality post - id: 2svphsuw

  • Look at `-c:a copy`` which might be for audio and might be necessary

  • Link to resize with padding example -- id: 2sxx0svx

  • Show examples of cropping and resizing

References