Watch on
#! /bin/sh
pref="`basename $0 .sh`"
base="`basename \"${base}\" .mkv`"

for para in \
    "intensity=1.0:rbal=1.0:gbal=1.0:bbal=1.0:rlum=0.0:glum=0.0:blum=0.0:alternate=0" \
    "intensity=1.0:rbal=1.0:gbal=1.0:bbal=1.0:rlum=0.0:glum=0.0:blum=0.3:alternate=0" \
    "intensity=1.0:rbal=1.0:gbal=1.0:bbal=1.0:rlum=0.0:glum=0.0:blum=0.5:alternate=0" \
    "intensity=1.0:rbal=1.0:gbal=1.0:bbal=1.0:rlum=0.0:glum=0.0:blum=1.0:alternate=0" \
    "intensity=1.0:rbal=1.0:gbal=1.0:bbal=0.0:rlum=1.0:glum=1.0:blum=1.0:alternate=0" \
    "intensity=1.0:rbal=1.0:gbal=0.0:bbal=0.0:rlum=1.0:glum=1.0:blum=1.0:alternate=0" \
    "intensity=1.0:rbal=0.0:gbal=0.0:bbal=0.0:rlum=1.0:glum=1.0:blum=1.0:alternate=0" \
    "intensity=1.0:rbal=1.0:gbal=1.0:bbal=-1.0:rlum=1.0:glum=1.0:blum=1.0:alternate=0" \
    ; do
    ffmpeg -y -i "${src}" -vf "
" "${base}"-`echo ${para} | sed 's@:@_@g'`.mkv

“Vibrance filter” is a filter that can be used with FFMPEG version 4.1 or later.

As always, even if you read the official (very unfamiliar and unfriendly) documentation, it’s very difficult to understand what this filter can do for anyone who doesn’t know the image processing term “Vibrance”.

A quick way to understand what this filter does is to read the FFMPEG source code (libavfilter/vf_vibrance.c). It’s a very simple filter compared to many other filters, so it’s easy to understand.

However, the simplicity of the program and the ease with which you can do what you want to do are completely different issues. The parameter settings for color adjustment by this filter are “not intuitively easy to understand” as shown in my video.

There are many alternative filters available, so if you can’t understand this filter, you don’t need to try to use it.