Turns out quite a few hours. But it did it! Using nothing but standard Windows cmd and ffmpeg. Not only that, turns out ffmpeg, even though it wasn't designed for this, is quite capable of doing movie rolls all by itself in a single pass, and all it needs is just a set of few clever instructions.
So I made this little script:
@echo off
rem standard WinXP CMD script with FFMPEG being the only external program required
rem originally made by Gregor Brecko, apr-2011
rem
setLocal EnableDelayedExpansion
rem USER SETTINGS
set src=%~1
set ffmpeg=W:\Program Files\3GP\ffmpeg.exe
set /a duration=(1*60+10)*60
set /a countX=8
set /a countY=10
set /a thumbWidth=320
set /a thumbHeight=(thumbWidth * 9) / 16
rem set /a thumbHeight=(thumbWidth * 3) / 4
set /a padding=1
if not exist "%src%" (
echo File not found. Usage: MOVIEROLL1 your-movie-file
exit /b
)
rem BUILD THUMBNAILS (USING 1-PASS FFMPEG -- fast but with limitations)
rem FFMPEG limitations:
rem - each option must be less than 1000 characters long
rem so we temporarily rename the original video to save command-line space
rem - movie-filter's seek_point doesn't work beyond 1:11:00 mark (2^32 microseconds)
rem - creating movie-filters is memory intensive; you may make it with 120 or more for
rem small video frame sizes, and around 80 with 720p ones
for /f "tokens=* delims= " %%f in ("%src%") do (
cd /d "%%~dpf"
if errorlevel 1 exit /b
set ext=a%%~xf
)
set /a interval=duration / (1 + countX * countY)
set /a T=%interval%
set /a forY=padding
for /L %%Y in (1,1,%countY%) do (
set /a forX=padding
for /L %%X in (1,1,%countX%) do (
rem set vf1=!vf1!movie=%ext%:sp=!T!,scale=%thumbWidth%:-1,setpts=PTS-STARTPTS[%%Xx%%Y];
set vf1=!vf1!movie=%ext%:sp=!T!,scale=%thumbWidth%:-1[%%Xx%%Y];
set vf2=!vf2!,[%%Xx%%Y]overlay=!forX!:!forY!
set /a forX=!forX! + padding + thumbWidth
set /a T=!T! + interval
)
set /a forY=!forY! + padding + thumbHeight
)
set /a forX=forX + padding
set /a forY=forY + padding
rem bail out if we failed already, don't want to do a rename and then fail some more, possibly stuck and unable to rename back
if errorlevel 1 exit /b
echo. >"%src%.ren"
ren "%src%" "%ext%"
if errorlevel 1 exit /b
"%ffmpeg%" -i "%ext%" -vframes 1 -vf "[in]scale=%thumbWidth%:-1,setpts=PTS-STARTPTS[i2];%vf1%color=black:%forX%x%forY%,[i2]overlay=%padding%:%padding%%vf2%" "%src%.jpg"
rem reset errorlevel
cmd /c "exit /b 0"
move "%ext%" "%src%"
if errorlevel 1 exit /b
del "%src%.ren"
And the result? See for yourself:

