How to Configure weightp in FFmpeg libx264

This article provides a straightforward guide on how to configure the weightp (Weighted Prediction for P-frames) option in the FFmpeg libx264 encoder. You will learn what the weightp parameter does, the available configuration values, and the exact FFmpeg command-line syntax required to apply these settings to your video encoding pipeline.

Understanding weightp in libx264

The weightp option controls how the libx264 encoder handles weighted prediction for P-frames (predictive frames). Weighted prediction improves compression efficiency and video quality, particularly during fades, flashes, or luminance transitions, by scaling the reference frames.

There are three configuration levels available for weightp:

FFmpeg Command Syntax

To configure weightp in FFmpeg, you must pass the option through the -x264-params flag. Multiple parameters inside -x264-params are separated by colons (:).

Example 1: Disabling weightp (Value: 0)

To disable weighted prediction completely for maximum hardware compatibility:

ffmpeg -i input.mp4 -c:v libx264 -x264-params weightp=0 output.mp4

Example 2: Setting weightp to Smart (Value: 2)

To force the highest-quality smart weighted prediction (useful if you are using a fast preset that disables it by default):

ffmpeg -i input.mp4 -c:v libx264 -preset superfast -x264-params weightp=2 output.mp4

Example 3: Combining with Other x264 Parameters

If you need to define multiple x264 parameters, append them inside the -x264-params argument using a colon:

ffmpeg -i input.mp4 -c:v libx264 -x264-params weightp=2:keyint=24:ref=4 output.mp4

Alternative Syntax: -x264opts

You can also use the older -x264opts syntax, where options are separated by colons:

ffmpeg -i input.mp4 -c:v libx264 -x264opts weightp=2 output.mp4

Using -x264-params is the recommended modern approach for configuring x264-specific library settings in FFmpeg.