I'm afraid the best way to provide a fluid video is to reduce its overall quality, that is to say provide it in 480 p (a resolution of 720×480 pixels).
This will reduce the download size of your video and will make it easier to be read across all computers/browsers.
Once you have such a video, allowing only the user to play it once you have downloaded enough of the video to play it should also help out, as previously hinted.
With videos, preload does not work the same as with audio or layouts.
You have to "delay" the playing of your video until your reach
On playback event
"Can play": triggered when enough data is available to play at least a couple of frames, but there may not be enough data to play through to the end.
"Can play through": triggered when the browser determines that the load progress and transfer rate are sufficient for playback through to the end without stalling for buffering. However this is not a guarantee, since the transfer rate could drop or be cut off completely.
Using "Can play through" will make sure you have loaded the whole video.
But it requires to hold on on playing the video.
Once this event triggers, you may then want to provide your user with a play button of sorts allowing them to launch the video and experience it comfortably.
The user action is also required on certain devices, and some devices (like iPhone) WILL show the controls for the video anyway (because Apple).