【发布时间】:2021-03-02 15:13:58
【问题描述】:
如果我不需要自适应视频,我可以不用分段吗?例如,我可以只打开WebSocket连接并传输视频文件,客户端收到新部分后立即播放。这种方法有什么缺点吗?
【问题讨论】:
标签: video video-streaming html5-video http-live-streaming live-streaming
如果我不需要自适应视频,我可以不用分段吗?例如,我可以只打开WebSocket连接并传输视频文件,客户端收到新部分后立即播放。这种方法有什么缺点吗?
【问题讨论】:
标签: video video-streaming html5-video http-live-streaming live-streaming
比这更容易。您可以在没有 Web 套接字的情况下执行这种类型的流式传输并使用普通 HTTP。客户端是这样的:
<video src="https://stream-server.example.com/stream"></video>
然后,无论您在服务器端使用什么,只需要生成一个带有适当初始化信息的流,然后是您在直播流中的任何位置。浏览器会尽快开始播放,一切正常。
这是直接正常的 HTTP 渐进式流式传输。它一直用于音频,在大多数情况下不需要自适应比特率,并且可以轻松自同步(MP3、ADTS 等)。如果您不需要自适应比特率,您也可以将它与视频一起使用,并且可以发送初始化数据并将流分块在正确的位置。 (如果您不确定如何执行此操作,请使用十六进制编辑器和您使用的任何容器格式的规范。我发现 WebM/Matroska 非常易于使用,并且以这种方式流式传输一些用于 Node.js 服务器的 EBML NPM 包。)
有几点需要牢记:
另外,请考虑将 Icecast 用于您的服务器。我曾经通过这种方式发送视频......多年来没有尝试过,但我想它仍然有效。如果没有,一个简单的 Node.js 服务器就可以做到。
【讨论】: