It sounds like you have the entire video in S3 as a single file? It's recommended that you break the video into smaller chunks, this will reduce the time to load each and provide a better customer experience. Please take a look at the whitepaper on streaming video, here: https://docs.aws.amazon.com/whitepapers/latest/amazon-cloudfront-media/streaming-techniques-for-media.html
I suggest having a look at the "File Streaming with AWS Media Services" workshop (https://catalog.us-east-1.prod.workshops.aws/workshops/cb172534-d59d-41d1-a9b3-371039593c63/en-US/000introduction) that shows how to convert a single file into an adaptive bitrate HLS stack.
You would then use Amazon Cloudfront for the distribution of the content downstream of your S3 bucket that will host your HLS manifests and segment files.
A prepackaged Cloudformation solution is also available at: https://docs.aws.amazon.com/solutions/latest/video-on-demand-on-aws-foundations/welcome.html
Restricting access to video content using cloudfrontasked 5 months ago
S3 + Cloudfront Combo not working Properly For Video Streaming
Efficiently Signing CloudFront Distribution URL for HLS Video Streaming Stored in S3asked a month ago
Video On Demand: Elemental MediaPackage vs Direct S3 accessasked 3 years ago
Trying To Embed An S3 CloudFront Distribution Video In A Simple PageAccepted Answerasked a year ago
How can i use s3 url as Ingestion endpoint to stream video in IVSasked 4 months ago
AWS S3: Live video streaming data storing into S3asked 4 months ago
How to configure cdn/cloudfront for Amazon interactive video service?asked 3 months ago
AWS bucket vs cloudfront for mp4 streamingasked a month ago