If you’re working with videos—whether editing, streaming, or preparing them for different platforms—resizing is often a necessary step. FFmpeg, the versatile and powerful multimedia framework, allows you to resize videos with precision using simple commands. Whether you’re reducing video dimensions for faster web loading or upscaling for a higher-resolution display, FFmpeg provides tools to do it all. This ultimate guide covers the essential commands, tips, and best practices to successfully resize your video content using FFmpeg.
Understanding FFmpeg and Its Capabilities
FFmpeg is an open-source tool capable of handling a wide range of audio and video processing tasks. It supports nearly all known video and audio formats and is widely used for encoding, decoding, transcoding, muxing, demuxing, streaming, and filtering. One of its most practical uses is resizing videos to meet specific requirements without sacrificing too much quality.
Why Resize Videos?
There are numerous scenarios where resizing a video becomes necessary:
- Web Optimization: Smaller resolution means smaller file size, resulting in faster loading times on websites.
- Device Compatibility: Resize videos to fit the resolution of target devices or platforms like mobile phones or tablets.
- Social Media Requirements: Platforms like Instagram or TikTok have specific video size requirements.
- Bandwidth Control: Lower resolutions can be streamed with reduced bandwidth consumption.
Before we dive into commands, make sure FFmpeg is installed. You can download it via FFmpeg’s official site.
Basic Syntax for Video Resize
To resize a video using FFmpeg, the most basic command structure is:
ffmpeg -i input.mp4 -vf "scale=WIDTH:HEIGHT" output.mp4
Replace WIDTH
and HEIGHT
with the desired dimensions. For example, to resize a video to 1280×720:
ffmpeg -i input.mp4 -vf "scale=1280:720" output_720p.mp4
Maintaining Aspect Ratio
To resize while maintaining the aspect ratio and setting one dimension automatically, use -1 as a value:
ffmpeg -i input.mp4 -vf "scale=1280:-1" output_autoheight.mp4
This resizes the width to 1280 pixels and automatically adjusts the height to maintain the original aspect ratio.
Advanced Resize Techniques
FFmpeg provides several powerful options to make more intelligent and controlled resizing decisions.
Using Conditional Logic to Avoid Upscaling
If you want to ensure that a video is only downsized (not upscaled if it is smaller than the target dimensions), use the min()
function:
ffmpeg -i input.mp4 -vf "scale='min(1280,iw)':'min(720,ih)'" output_noupscale.mp4
This ensures your video won’t be enlarged unnecessarily, preserving quality and file size.
Resizing by Percentage
You can also resize a video based on a percentage of its original size:
ffmpeg -i input.mp4 -vf "scale=iw*0.5:ih*0.5" output_halfsize.mp4
This will reduce both the width and height by 50%, effectively halving the resolution.
Resize with Hardware Acceleration
When dealing with large batches of videos or high resolutions, resizing can become computationally expensive. FFmpeg can leverage GPU for faster processing—such as using NVENC (NVIDIA’s encoder) for hardware acceleration:
ffmpeg -hwaccel cuda -i input.mp4 -vf "scale_cuda=1280:720" -c:v h264_nvenc output_hw.mp4
This command uses CUDA for scaling and encodes with the NVIDIA hardware encoder. Remember, you’ll need compatible hardware and drivers to use this functionality.
Choosing the Right Resize Filter
FFmpeg allows you to specify a scaling algorithm or filter to determine how pixels are sampled during resizing. Some popular methods include:
- bilinear – Fast, reasonable quality (default)
- bicubic – Better quality, slower
- lanczos – High quality, ideal for upscaling
Example using lanczos
:
ffmpeg -i input.mp4 -vf "scale=1280:720:flags=lanczos" output_lanczos.mp4
Choosing the right scaling filter can dramatically affect the sharpness and clarity of your final video, especially when upscaling.

Integrating Resize into Larger Workflows
Video resizing is often one part of a larger pipeline that includes trimming, audio adjustments, compression, and format conversion. You can combine filters in a single command using FFmpeg’s filter chains:
ffmpeg -i input.mp4 -vf "scale=1280:720, fps=30" -c:a copy output_workflow.mp4
This command not only resizes the video to 1280×720 but also sets the frame rate to 30 FPS, streamlining your processing pipeline.
Best Practices for Video Resize
To make the most out of FFmpeg’s video resizing tools, follow these best practices:
- Know Your Output Requirements: Have target resolution, bitrate, and codec settings in mind especially when preparing for platforms like YouTube or Instagram.
- Use Presets for Repeated Tasks: If resizing videos is a recurrent task, save your command in a shell script or batch file.
- Avoid Unnecessary Upscaling: Upscaling doesn’t increase quality, but does increase size. Resize smartly using conditional logic.
- Preview Before Final Processing: Generate a small clip to verify settings before applying to the whole file.
- Monitor CPU/GPU Usage: When batch-processing or resizing large files, use hardware acceleration if possible to save time.

Common Use Cases and Recommended Settings
Here are several common scenarios along with recommended FFmpeg commands for resizing:
Resize for Web Upload
ffmpeg -i input.mp4 -vf "scale=854:480" -c:v libx264 -crf 23 -preset fast -c:a aac -b:a 128k output_web.mp4
Resize for Instagram (Square Video)
ffmpeg -i input.mp4 -vf "scale=640:640:force_original_aspect_ratio=decrease,pad=640:640:(ow-iw)/2:(oh-ih)/2" output_instagram.mp4
Resize for Mobile Devices
ffmpeg -i input.mp4 -vf "scale=720:-2" -c:v libx264 -crf 20 -preset veryfast output_mobile.mp4
Each of these examples is tailored for a specific endpoint, ensuring proper formatting and optimized performance.
Conclusion
Video resizing doesn’t have to be complicated or time-consuming. With FFmpeg, you have an incredibly powerful toolbox that can be adapted for virtually any resizing scenario—from casual web uploads to professional production workflows. Understanding how to employ parameters like scale
, filtering options, and aspect ratio correction allows you to achieve high-quality results faster and more efficiently. Paired with hardware acceleration and best practices, you’ll find FFmpeg to be an indispensable component of your video toolkit.
Now that you’re equipped with this knowledge, it’s time to start resizing smarter.