使用 HTML5 视频播放器流式传输视频

时间:2021-03-14 22:38:28

标签: spring-boot video video-streaming html5-video

我正在尝试了解 HTML5 视频播放器的视频流是如何工作的,并对此有一些疑问。

我的 HTML 页面上有这样的声明

        <video controls  class="card-img-top">
            <source src="/stream/video.mp4" type="video/mp4">
            Your browser does not support the video tag.
        </video>

URL /stream/video.mp4 由发送数据的 Spring Boot 控制器处理。一切正常,但我认为效率很低。

每次我将视频时间线上的滑块移动到任何一点时,我都会看到带有 Range 标题的请求

  • 范围:字节=88375296-
  • 范围:字节=39354368-
  • 范围:字节=60915712-

这意味着在每个视频滚动时,我必须提供从指定点到视频文件末尾的所有数据。这看起来效率很低。

有什么方法可以配置 HTML5 播放器以更高效的方式工作吗?另外,您能否推荐一些有关使用 Spring Boot 实现视频流的文章?

1 个答案:

答案 0 :(得分:2)

<块引用>

这意味着在每次滚动视频时,我都必须提供从指定点到视频文件末尾的所有数据。

浏览器请求所有数据从指定点到文件末尾,但是,当发生搜索时,它可以简单地断开 TCP 会话以停止下载。它尽可能高效。

<块引用>

有没有办法配置 HTML5 播放器

不,当您告诉浏览器播放 MP4 时,您将所有控制权交给浏览器。您无法控制它的工作方式。

如果您想要更多控制,可以使用媒体源扩展。但是随后您将需要使用更高级的文件格式服务器端并实现播放器工作方式的所有细节。见 HLS/DASH