Michael:

On 2023-12-27 15:20, Michael Koch wrote:
Am 27.12.2023 um 23:59 schrieb Jim DeLaHunt:
Michael:

On 2023-12-27 13:51, Michael Koch wrote:
...I'm using this command line to print four consecutive random numbers:
...
I do not have an answer to your question about the behaviour of the random() function. However, I cannot reproduce your results on my machine. I get an error complaining about the video filter syntax instead.

If not on a Windows machine, you may have to encapsulate the filter thread in double quotes.
Please try this command:
ffmpeg -filter_threads 1 -loglevel repeat -f lavfi -i color=gray:size=1x1,format=gray -vf "geq=lum='st(0,0.123);print(random(0));print(random(0));print(random(0));print(random(0))'" -frames 1 -y out.png

Right you are. Enclosing the filter expression in double quotes, I was able to reproduce your result. Four numbers printed out, and the first of them was 0.000000. The remaining three were exactly the same as your output. That makes those numbers seem not very random.

Interestingly, when I change "random(0)" to "random(0.9)", I get the identical sequence of four numbers. The behaviour of the parameter is not the "seed" behaviour that I expect.

The documentation says, "x is the index of the internal variable which will be used to save the seed/state." (https://ffmpeg.org/ffmpeg-all.html#Expression-Evaluation). I don't know what it means by "index of the internal variable", and I don't know what "save" means. In a function named random(), I expect the parameter to be used as a seed. I guess this is one of the places where one has to read the source code.

Apologies for my confusion,
     —Jim DeLaHunt


_______________________________________________
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to