Seriously? I should know because I send the exact time via Sleep… why would another thread have an effect of this?
Because there's only one OS, a few CPU cores, and hundreds of threads to run. Once your thread sleeps, there are a lot of things to do for the CPU, the OS scheduler can't guarantee your thread to come back to top priority as soon as you want.
why not implement the Ogre technique within SFML to fix the bug?
It's not straight-forward.
But guess what? It's in the task tracker so it means that it's going to be implemented
I don't know how to help you more, but I really think that other video players (source codes, blogs, tutorials, ...) can help you better.