The reason your high quality video has slow playback, by which I assume you mean buffering and pauses rather than playing at a slower speed, is usually because video files are large and the bandwidth to transfer them is limited.
The most common solutions to this are:
- use a more aggressive or bandwidth saving video codec - this will reduce bandwidth at the expense of video quality.
- use a CDN. This is essentially a way of cacheing the video so it is closer to the edge of the network for your viewers.
- Use Adaptive Bit Rate Streaming ABR - this creates multiple bitrate versions of your video and the client downloads the video chink by chunk, selecting the bit rate for the next chunk based on the current network conditions - see: https://stackoverflow.com/a/42365034/334402
Using a provider like Vimeo, YouTube etc to host your videos means that they will take care of all the above and you don't have to worry about it. If you prefer to do it yourself then you can build a solution using AWS Media Services, Wowza, gStreamer etc, but it is a specialist area and will be more complex than using a hosted solution.