Why is my video alternating between blurry and sharp?
The effect that you've seen is a side effect of the compression algorithm that was used to encode the video.

The most common compression algorithms (MPEG-4 and MPEG-2 among them) compress different frames with different methods, and that is why two very close and relatively similar frames may look so different.

The frame that looks pretty good is likely a keyframe. This is a frame that has all its pixels represented in the encoded stream. The compression introduces some loss of quality, but since the whole image is encoded the result typically looks good.

The image that looks bad is a frame that is not fully represented in the encoded stream. To make videos smaller, for certain parts of the picture the encoder references parts of previous frames that the player/decoder keeps stored in memory, so only the parts that are different are stored for the frame. Because of this these frames end up being a sort of collage. If the bitrate is too low, then you end up with really washed up images like the one you show. But increasing the bitrate enough helps dissimulate this effect, to the point that it is barely or not noticeable. Consider that all the TV that you watch (digital over the air, satellite, FIOS, cable, etc.) is encoded in this way.

For MPEG-2 it is common practice to insert a keyframe in the stream every half a second (15 frames for 29.97fps video, 12 frames for 25fps). For H.264 sometimes they go even longer than half a second.

In general, the image quality of a compressed video is at its highest at the keyframe points, and then slowly starts to degrade, going up again with the next keyframe.

For a more detailed explanation of frame types used in compression algorithms see the Wikipedia article Video compression picture types.

Unfortunately a player cannot improve the quality of the video, since the problem is that the information to reproduce the frame with better quality isn't there. The only ways to address this is by increasing the bitrate when encoding and/or increase the number of keyframes. 

On the player side I think the only thing you can do is play the video in a smaller window, so then these artifacts will be less visible.