Reputation: 1442
I'm trying to get into how the video streaming with HTML5 video player works and have some questions about that.
I have such a declaration at my HTML page
<video controls class="card-img-top">
<source src="/stream/video.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>
The URL /stream/video.mp4
is handled by the Spring Boot controller which sends the data. All works fine but how I see it very inefficient.
Every time I move the slider on the video timeline to any point I see the requests with Range
header like
That's mean at every video scroll I have to provide all the data from a specified point to the end of the video file. That looks really inefficient.
Is there some way to configure HTML5 player to work in more efficient way? Also, could you recommend something to read about video streaming implementation with Spring Boot?
Upvotes: 1
Views: 1197
Reputation: 31100
That's mean at every video scroll I have to provide all the data from a specified point to the end of the video file.
The browsers requests all the data form the specified point to the end of the file, BUT, it can simply disconnect the TCP session to stop the downloading when a seek happens. Its is as efficient as it can be.
Is there some way to configure HTML5 player
No, When you tell the browser to play an MP4, you give ALL control to the browser. You there are no options to control how it works.
If you want more control, you can use Media Source Extensions. But then you will need to use more advanced file formats server side and implement all the details of how the player works. See HLS/DASH
Upvotes: 2