[FFmpeg-user] Rgbashift T value

emmanuel martin ask.emmanuel at gmail.com
Fri Dec 22 23:42:41 EET 2023

Hello everyone,

The rgbashift command is causing me some trouble when I refer to its documentation. Perhaps the issue stems from a misunderstanding. Here's the part that interests me:

rgbashift AVOptions:
   rh                <int>        ..FV.....T. shift red horizontally (from -255 to 255) (default 0)
   rv                <int>        ..FV.....T. shift red vertically (from -255 to 255) (default 0)
   gh                <int>        ..FV.....T. shift green horizontally (from -255 to 255) (default 0)
   gv                <int>        ..FV.....T. shift green vertically (from -255 to 255) (default 0)
   bh                <int>        ..FV.....T. shift blue horizontally (from -255 to 255) (default 0)
   bv                <int>        ..FV.....T. shift blue vertically (from -255 to 255) (default 0)
   ah                <int>        ..FV.....T. shift alpha horizontally (from -255 to 255) (default 0)
   av                <int>        ..FV.....T. shift alpha vertically (from -255 to 255) (default 0)
   edge              <int>        ..FV.....T. set edge operation (from 0 to 1) (default smear)
     smear           0            ..FV.....T.
     wrap            1            ..FV.....T.

If I understand correctly, 'T' indicates that the option can be set at the video filter level and over time, meaning the value can dynamically change based on the time in a video sequence. In other words, I can change the offset value of each color channel over time.

The simple command below works perfectly:

ffmpeg -i input.mp4 -vf "rgbashift=rh=20:bh=-20" -pix_fmt yuv420p output.mp4

However, as soon as I integrate the 'T' parameter into the offset value, I get error messages. For example:

ffmpeg -i input.mp4 -vf "rgbashift=rh='t*2':bh='t*-2'" -pix_fmt yuv420p output.mp4

Error message:

Undefined constant or missing '(' in 't*2' Unable to parse option value "t*2" Error applying option 'rh' to filter 'rgbashift': Invalid argument

Do I have a misunderstanding of the documentation (ffmpeg -h filter=rgbashift) ? Or do I have a syntax problem somewhere?
Thank you very much.

More information about the ffmpeg-user mailing list