If you want to generate 1 million unique videos reusing the same video, you need to put something random into the video each time.
Add the following to vf options and replace bold variables.
drawtext=text='yourrandomvariabletext':fontsize=1:fontcolor=black:x=(w-text_w)/2:y=(h-text_h)/2:fontfile=pathtofontfile.ttf
It will add text that you should randomize using a programming language of your choice.
Changing contrast and similar will result in duplicates early. Plus it may influence video looks with diverse values.
Wrong.
If you want to generate million videos, you need
speed.
How to do that?
1. Generate a unique video based on original video.
Take original video as input. Let's call it "originalVideo.mp4".
Make 1 second long video off the original video using seeking. https://trac.ffmpeg.org/wiki/Seeking
Name output something like "firstSecondOfOriginalVideo.mp4"
ffmpeg -ss 00:00:01 -i originalVideo.mp4 -frames:v 1 firstSecondOfOriginalVideo.mp4
2. Modify "firstSecondOfOriginalVideo.mp4", so it contains unique data.
Add some text to it. Do whatever you want with it, so it is unique.
Name output something like "firstSecondOfOriginalVideoEdited.mp4"
The rerender of one second video shouldn't take more than a few seconds.
3. Concatenate edited, unique one second of original video with the original video
Use https://trac.ffmpeg.org/wiki/Concatenate#demuxer to concatenate both videos without rerendering, thus saving time and CPU resources.
Following points 2 and 1 you should create a file named list.txt and put that data there:
file 'originalVideo.mp4'
file 'firstSecondOfOriginalVideoEdited.mp4'
Then concatenate both videos using
ffmpeg -f concat -safe 0 -i list.txt -c copy uniquevideo.mp4
The CPU usage will go down drastically. New video will be ready in several seconds with one new, unique part which is 1 second with random data. Important part is we aren't adding much new, so the whole video doesn't contain something irrelevant.