The behavior of the -ss option varies depending on where it is put in the command line.
If it is placed before the input (as in your case) it will begin decoding from this time. The result with many codecs is that is delivers the first I frame it encounters as it cannot decode the frames before that. This method is very fast but not frame accurate.
If it is placed after the input like:
ffmpeg -an -i test.flv -ss 00:01:00 test.jpg
...it will decode all of the frames and deliver a frame accurate result. As this requires decoding all frames, it is slower and this is compounded by how far you are seeking into the material. (ie. setting to 59.59:00 will be very slow as it has to decode a full hour of frames just to get the one you want.)