javascript - 使用 java 和 video.js 实现无限视频流
问题描述
我试图弄清楚如何使用 Java 和 video.js 提供无尽的视频流。所以在后端,我持有一个.m3u8
文件和几个.ts
文件的播放列表。我的流程包括以下步骤:
在 UI 上提供
.m3u8
文本。.m3u8 端点截图通过 video.js lib 在前端启动流程。video.js 部分截图
.ts
Video.js 请求文件中指示的单个.m3u8
文件。ts端点截图在后台程序的帮助下,我更改了上下文状态
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()
解决方案
推荐阅读
- bash - -exec wc -l {} \; 打印计数和路径,我只需要计数
- emacs - 重命名 ansi-term 缓冲区
- c++ - 循环队列项目输出不正确
- matlab - 我可以使用向量作为 Matlab 中 linspace 函数的边界输入吗?
- android - 如何在 lottiananimation 视图下方添加文本视图?
- elasticsearch - 如何通过查询执行批量删除?
- python - 使用适用于 Django 2.2 的渲染函数使用 Django 3.1.3 渲染视图时出现问题
- javascript - React Js:重新渲染太多。React 限制渲染次数以防止无限循环
- asynchronous - 通知 SwiftUI 父/主机视图结束 Class URLSession 任务的正确方法是什么?
- r - 创建一个简单的代码来在 R 中将我的数据集从宽转换为长