So, I couldn't sleep. Well, I worked a bit an produced a stupid script using bash (I have cygwin on windows) and mplayer to almost do what I what. I'd like to share it: for ff in "$@"; do /cygdrive/c/Program\ Files/mplayer/mplayer.exe -ss 15 -ao null -vo jpeg -frames 5 "$ff" ; mv 00000002.jpg "$ff.001.jpg" ; /cygdrive/c/Program\ Files/mplayer/mplayer.exe -ss 30 -ao null -vo jpeg -frames 5 "$ff" ; mv 00000002.jpg "$ff.002.jpg" ; /cygdrive/c/Program\ Files/mplayer/mplayer.exe -ss 45 -ao null -vo jpeg -frames 5 "$ff" ; mv 00000002.jpg "$ff.003.jpg" ; /cygdrive/c/Program\ Files/mplayer/mplayer.exe -ss 60 -ao null -vo jpeg -frames 5 "$ff" ; mv 00000002.jpg "$ff.004.jpg" ; /cygdrive/c/Program\ Files/mplayer/mplayer.exe "mf://$ff.*.jpg" -vo jpeg -vf tile=2:2:4:4 ; rm -f "$ff.001.jpg" "$ff.002.jpg" "$ff.003.jpg" "$ff.004.jpg"; mv 00000001.jpg "$ff.jpg"; done I use it like "./script /dir/to/videos/*" and it produces a bunch of jpgs each one with 4 frames taken at 15, 30, 45 and 60 secs. It's good because mplayer plays anything I trow at it (MKV,OGM, etc). It's bad because it's a really ugly script. I'd like to extract frames at (say) 20%, 40%, 60%, 80% of the video files, but mplayer doesn't understand percentiles. Suggestions?