mplayer supports various image formats as video output drivers if compiled with support for them. tga, jpeg, png, gif, pnm all come to mind.
So 'mplayer -vo png video-file.avi' will dump each frame as a png image. You can combine this with the -ss and -frames option to grab a single frame at any given time in the video:
mplayer -vo png -ss 00:30:00 -frames 1 video-file.avi
This will grab one frame, at the 30 minute mark, and save it as a png file.