gpt4 book ai didi

ffmpeg - ffmpeg过滤器表达式调用了什​​么随机函数?

转载 作者:行者123 更新时间:2023-12-04 22:58:13 28 4
gpt4 key购买 nike

例如这个 random(-1)在 geq 中:

ffmpeg -f lavfi -i nullsrc=s=10x10:r=25:d=4 -vf geq=lum='255':cb='255*random(-1)':cr='255*random(-1)',scale=200:200:flags=neighbor -bf 0 test.mp4
我总是在第一帧中得到完全相同的前 2 个像素的颜色。第一帧总是有非常相似的颜色。从第 3 帧开始,开始变得更好。此外, random() 似乎只在单帧内引入随机。每一帧的第一个像素的顺序完全相同:
ffmpeg -f lavfi -i nullsrc=s=1x1:r=25:d=4 -vf geq=lum=255:cb='255*random(-1)':cr='255*random(-1)',scale=10:10:flags=neighbor -vframes 10 f%05d.png
1st run
2nd run
我查看了 source code ,但我看不到实际调用了什么随机函数:
        case e_random:{
int idx= av_clip(eval_expr(p, e->param[0]), 0, VARS-1);
uint64_t r= isnan(p->var[idx]) ? 0 : p->var[idx];
r= r*1664525+1013904223;
p->var[idx]= r;
return e->value * (r * (1.0/UINT64_MAX));
}

我如何在 geq 中获得适当的随机性?

最佳答案

它使用 linear congruential generator乘数为 1664525,增量为 1013904223。
您当然可以修改它以满足您的需要。查看 av_get_random_seed更多随机性来源。

关于ffmpeg - ffmpeg过滤器表达式调用了什​​么随机函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64260724/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com