我想实现一个简单的服务器(C++)来生成(捕获)视频流并将其发送到浏览器。
问题是:服务器应该如何与浏览器交互?
我认为“HTTP Live Streaming (HLS)”技术是最简单的,因为我已经掌握了网络/http交互是可行的。
如果我理解正确的话:
我发现我在这里失去了逻辑......
如何强制浏览器持续获取视频块?
也许我上面的事情是错的?你能解释一下基本步骤吗?
我认为“HTTP Live Streaming (HLS)”技术是最简单的,因为我已经掌握了网络/http交互是可行的。
在大多数情况下,这绝对不是最简单的。处理简单的 HTTP 请求和传输连续流要容易得多。然后,客户端只是一个
<video>
元素。
- 浏览器发送GET请求(?)来接收M3U8,获取块列表,
正确。
- 下一步尚不清楚 - 流(实时)视频正在继续 - 浏览器如何知道 - 下一个块的名称?
它会下载 M3U8 播放列表的新副本以了解下一步。
如何强制浏览器连续获取视频块?
HLS 客户端知道刷新播放列表。还可以构建一个客户端来“知道”接下来会出现哪些细分市场。例如,如果您有一个顺序列表,则客户端没有理由一遍又一遍地请求播放列表。
顺序播放列表在负缓存方面存在一些问题。如果您使用 CDN,请关闭对任何不正常响应的缓存,因为有人可能会在准备好之前访问您的分段 URL,导致您的 CDN 认为它们永远不会存在。