Table of Contents

ffmpeg - Video resize

-vf scale=width:height 

Upscaling Video to 1080p

ffmpeg -i input.mp4 -vf scale=1920x1080:flags=lanczos -c:v libx264 -preset slow -crf 21 output_compress_1080p.mp4
 
# Using GPU.
ffmpeg -vaapi_device /dev/dri/renderD128 -i "input.mkv" -vf 'hwupload,scale_vaapi=w=1920:h=1080:format=nv12' -map 0:v -metadata:s:v:0 language=eng -c:v hevc_vaapi -map 0:a -metadata:s:a:0 language=eng -map 0:s? -metadata:s:s:0 language=eng -rc_mode CQP -global_quality 25 -c:a copy -c:s copy -profile:v main -v verbose output_1080p.mkv

NOTE: Lanczos resampling involves a sinc filter as well.

  • It is more computationally expensive but usually described as very high quality and can be used for up- and downsampling.

Upscaling Video to 4K

ffmpeg -i input.mp4 -vf scale=3840x2560:flags=lanczos -c:v libx264 -preset slow -crf 21 output_compress_4k.mp4

Downscaling Video

ffmpeg -i input.mp4 -vf scale=640x480:flags=lanczos -c:v libx264 -preset slow -crf 21 output_compress_480p.mp4

References

https://write.corbpie.com/upscaling-and-downscaling-video-with-ffmpeg/

https://trac.ffmpeg.org/wiki/Scaling

https://write.corbpie.com/a-guide-to-upscaling-or-downscaling-video-with-ffmpeg/

https://superuser.com/questions/547296/resizing-videos-with-ffmpeg-avconv-to-fit-into-static-sized-player/1136305#1136305

https://en.wikipedia.org/wiki/Lanczos_resampling