FFmpeg recipe

FFmpeg: Resize a Video to 1080p (1920×1080)

scale=1920:-2 resizes to 1920 wide, height auto-calculated to preserve aspect ratio (rounded to nearest even number for codec compatibility).

Command

ffmpeg -i input.mp4 -vf scale=1920:-2 -c:v libx264 -crf 23 -c:a copy -y output_1080p.mp4
Prefer no terminal?
Use the Resolution Changer in your browser
Open Resolution Changer →

What each flag does

-iInput file. Can be a video, audio, or image. Repeat for multiple inputs.
-vfVideo filter chain. e.g. scale=1280:720, crop=, fps=30.
-c:vVideo codec for output. e.g. libx264, libx265, libvpx-vp9.
-crfConstant Rate Factor — quality target (lower = better, larger file). 23 is visually lossless for libx264.
-c:aAudio codec for output. e.g. aac, libmp3lame, copy.
scale=1920:-2Resize to 1920 pixels wide. -2 = auto height, rounded to even number (codecs require even dimensions).

Notes & gotchas

  • Use scale=-2:1080 to lock height instead of width.
  • For aspect-ratio-preserving fit-into-box, use scale='min(1920,iw)':-2.

Check it worked

ffprobe -v error -show_entries stream=width,height -of csv=p=0 output.mp4

The exact dimensions you asked for, both even numbers.

What to change

-2 keeps the aspect ratioIt picks the matching dimension and rounds to an even number, which H.264 requires. -1 can produce an odd number and fail.
Do not upscaleScaling 720p to 1080p adds pixels and no detail, and makes the file larger for a worse-looking result.
Pick the scaler for big reductionsAdd :flags=lanczos when shrinking a long way. The default bilinear is softer than it needs to be.

If it fails

width not divisible by 2.

Why: H.264 requires even dimensions and the calculated height came out odd.

Fix: Use scale=1920:-2 rather than -1, which rounds the free dimension to an even number.

The picture is stretched or squashed.

Why: Both dimensions were fixed, ignoring the source aspect ratio.

Fix: Set one dimension and let the other follow with -2, or pad to the target shape instead of stretching.

Related recipes