首页 > 解决方案 > 使用 java 和 video.js 实现无限视频流

问题描述

我试图弄清楚如何使用 Java 和 video.js 提供无尽的视频流。所以在后端,我持有一个.m3u8文件和几个.ts文件的播放列表。我的流程包括以下步骤:

  1. 在 UI 上提供.m3u8文本。.m3u8 端点截图

  2. 通过 video.js lib 在前端启动流程。video.js 部分截图

  3. .tsVideo.js 请求文件中指示的单个.m3u8文件。ts端点截图

  4. 在后台程序的帮助下,我更改了上下文状态streamContentContext.setCurrentChunkId(streamContentContext.getCurrentChunkId() + 1),当 video.js 意识到唯一的 ts 文件结束时,他尝试更新.m3u8文件。此时,ts 的索引已经被调度器更新,它应该请求/ts/2端点。

问题是:.ts前端的所有后续文件根本无法播放,也许应该有某种属性或事件会开始在前一个视频中添加一段新视频。

UPD:在我阅读了这篇文章(https://developer.apple.com/documentation/http_live_streaming/example_playlists_for_http_live_streaming/live_playlist_sliding_window_construction)之后,我清楚地知道从.m3u8文件中删除一些属性是值得的,所以我只离开了#EXTM3U, #EXT-X-VERSION:3, #EXT-X-TARGETDURATION:11, #EXT-X-MEDIA-SEQUENCE: + streamContentContext.getCurrentChunkId()

浏览器截图

标签: javascriptjavavideohttp-live-streamingm3u8

解决方案


推荐阅读