[FFmpeg-user] Question about random() expression

Michael Koch astroelectronic at t-online.de
Wed Dec 27 23:51:19 EET 2023


Hi,

I'm using this command line to print four consecutive random numbers:

ffmpeg -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));0' 
-frames 1 -y out.png

The output is always the same four numbers:
0.000000
0.000091
0.285346
0.929202

Why is the first number always zero, even if I write different seed 
values (here: 0.123) into variable 0?

The console output is below.

Michael



C:\Users\astro\Desktop\LUT1D>ffmpeg -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));0' 
-frames 1 -y out.png
ffmpeg version 2023-12-23-git-f5f414d9c4-essentials_build-www.gyan.dev 
Copyright (c) 2000-2023 the FFmpeg developers
   built with gcc 12.2.0 (Rev10, Built by MSYS2 project)
   configuration: --enable-gpl --enable-version3 --enable-static 
--pkg-config=pkgconf --disable-w32threads --disable-autodetect 
--enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 
--enable-gmp --enable-bzlib --enable-lzma --enable-zlib --enable-libsrt 
--enable-libssh --enable-libzmq --enable-avisynth --enable-sdl2 
--enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid 
--enable-libaom --enable-libopenjpeg --enable-libvpx 
--enable-mediafoundation --enable-libass --enable-libfreetype 
--enable-libfribidi --enable-libharfbuzz --enable-libvidstab 
--enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm 
--enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc 
--enable-dxva2 --enable-d3d11va --enable-libvpl --enable-libgme 
--enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame 
--enable-libtheora --enable-libvo-amrwbenc --enable-libgsm 
--enable-libopencore-amrnb --enable-libopus --enable-libspeex 
--enable-libvorbis --enable-librubberband
   libavutil      58. 36.100 / 58. 36.100
   libavcodec     60. 36.100 / 60. 36.100
   libavformat    60. 20.100 / 60. 20.100
   libavdevice    60.  4.100 / 60.  4.100
   libavfilter     9. 14.101 /  9. 14.101
   libswscale      7.  6.100 /  7.  6.100
   libswresample   4. 13.100 /  4. 13.100
   libpostproc    57.  4.100 / 57.  4.100
Input #0, lavfi, from 'color=gray:size=1x1,format=gray':
   Duration: N/A, start: 0.000000, bitrate: N/A
   Stream #0:0: Video: wrapped_avframe, gray, 1x1 [SAR 1:1 DAR 1:1], 25 
fps, 25 tbr, 25 tbn
Stream mapping:
   Stream #0:0 -> #0:0 (wrapped_avframe (native) -> png (native))
Press [q] to stop, [?] for help
0.000000
0.000091
0.285346
0.929202
Output #0, image2, to 'out.png':
   Metadata:
     encoder         : Lavf60.20.100
   Stream #0:0: Video: png, gray(progressive), 1x1 [SAR 1:1 DAR 1:1], 
q=2-31, 200 kb/s, 25 fps, 25 tbn
       Metadata:
         encoder         : Lavc60.36.100 png
[image2 @ 000001eec3e15700] The specified filename 'out.png' does not 
contain an image sequence pattern or a pattern is invalid.
[image2 @ 000001eec3e15700] Use a pattern such as %03d for an image 
sequence or use the -update option (with -frames:v 1 if needed) to write 
a single image.
[out#0/image2 @ 000001eec3e15600] video:0kB audio:0kB subtitle:0kB other 
streams:0kB global headers:0kB muxing overhead: unknown
frame=    1 fps=0.0 q=-0.0 Lsize=N/A time=00:00:00.04 bitrate=N/A speed= 
1.8x




More information about the ffmpeg-user mailing list