Je to boj!
Problém spočívá v tom, že avif formát umí i animace. Takže když se do výchozího avif muxeru cpe video, tak si z kontextu nepozná, že by měl dělat individuální soubory.
Musel jsem procházet patche, abych se někam dostal.
ffmpeg -i "input.mkv" -vf "thumbnail=n=50, fps=1/5, scale='if(gt(dar,320/180),180*dar,320)':'if(gt(dar,320/180),180,320/dar)', setsar=1, crop=320:180, tile=6x4, crop=1920:720" -g 1 -flags global_header -c:v libaom-av1 -still-picture 1 -colorspace 1 -color_primaries 1 -color_trc 1 -f image2 "thumb-%03d.avif"
To zásadní je, že se musí použít muxer image2 a zároveň s ním nastavit flag global header, jinak to produkuje nečitelné soubory. Muxer image2 umí jen sekvence statických obrázků, takže je to pak jednoznačné, a začne logicky fungovat i ta printf expanze na číslování.
https://github.com/FFmpeg/FFmpeg/commit/dd99d34d67e2612a8f133f8a86db9f64b4dfa20dOstatní přidané parametry jsou jen tuning enkodéru navíc -still-pictrure a -g 1 jej optimalizuje pro statické snímky.
Ty parametry colorspace, primaries a převodní charakteristika jen přidají metadata, aby se to zobrazovalo s kolorimetrickými parametry Rec 709 (res. sRGB), což bude asi odpovídat většině použitých vstupů.
Zdálo se mi totiž, že různé dekodéry AVIF pak lehce ujížděly s barvami a bylo to desaturované, než jsem tohle přidal.
Ale otestujte si to.