Change Video Aspect Ratio Without Re-encoding FFmpeg
Changing the Display Aspect Ratio (DAR) of a video file without re-encoding is a quick way to fix stretched or distorted playback without losing quality or wasting time. By modifying the container metadata using FFmpeg’s stream copy feature, you can instantly update how media players stretch and display the video frames. This guide shows you the exact command-line syntax to achieve this for popular formats like MP4 and MKV.
The FFmpeg Command
To change the aspect ratio without re-encoding, use the
-aspect option combined with -c copy. This
instructs FFmpeg to copy the video and audio streams directly while only
updating the metadata header.
Run the following command in your terminal:
ffmpeg -i input.mp4 -aspect 16:9 -c copy output.mp4Parameter Breakdown
-i input.mp4: Specifies the path to your input video file.-aspect 16:9: Sets the target Display Aspect Ratio. You can use standard ratios like16:9,4:3, or decimal values like1.777.-c copy: Copies all video, audio, and subtitle streams directly to the output file without re-encoding. This process is nearly instantaneous.output.mp4: The name of the corrected output file.
Container-Level vs. Stream-Level Aspect Ratio
When you use -c copy with the -aspect flag,
FFmpeg changes the aspect ratio at the container level
(the wrapper of the file, such as MP4 or MKV).
- Compatibility: Most modern software video players (like VLC, MPV, and PotPlayer) respect container-level metadata and will instantly display the video in the new aspect ratio.
- Limitations: Some older hardware players or strict
web browsers read the aspect ratio embedded directly in the raw video
bitstream (the Sample Aspect Ratio or SAR) rather than the container. If
your video still does not display correctly on a specific device, you
may need to perform a full re-encode to permanently scale the pixels
(e.g., using
-vf scale=1920:1080).