Fai*_*med 2 amazon-s3 live-streaming node.js http-live-streaming m3u8
我想做一个直播。而且,我想使用 HLS。
我知道 HLS 直播流只是一个带有“.m3u8”扩展名的主播放列表文件,其中列出了所有要播放的文件。
但是,对于实时流,由于并非所有文件都可以随时使用,因此它们会在进来时添加。
我现在想使用 S3 来托管这些文件和播放列表文件。
现在,我想更新 S3 中的播放列表文件。但它实际上将替换现有的播放列表文件,而不是仅仅更新它(根据这个答案)。
所以,我假设在文件替换期间不会有死区时间。如果有死区时间,我该如何克服它?这是这样做的方法还是有其他更好的方法来做到这一点。
我正在使用 NodeJS 服务器,仅供参考。
*没有文件时的死区时间。
我想做一个直播。而且,我想使用 HLS。
为什么是 HLS?为什么不是 DASH?DASH 也几乎完全按照 HLS 进行分段和实现,但在编解码器选择方面具有更大的灵活性,以及其他方面的灵活性。两者都可以,但如果您今天从头开始,我推荐 DASH 和 DASH.js 参考播放器代码,它使用媒体源扩展。
我知道 HLS 直播流只是一个带有“.m3u8”扩展名的主播放列表文件,其中列出了所有要播放的文件。
正确的。
但是,对于实时流,由于并非所有文件都可以随时使用,因此它们会在进来时添加。
正确的。
现在,我想更新 S3 中的播放列表文件。但它实际上将替换现有的播放列表文件而不是仅仅更新它
是的,正如另一个答案所指出的,没有区别。播放列表文件将被新的完整副本覆盖。S3 API 不允许附加到文件,除非进行真正不同的多部分上传。在任何情况下,您的实时流播放列表文件都不会包含每个片段。通常您只保留播放列表中的最后几个片段,但这由您决定回溯多远。
所以,我假设在文件替换期间不会有死区时间。
在上传和存储完整的新对象之前,S3 不会替换该对象。永远不会有部分文件存在的情况。S3 不像一个普通的文件系统。此外,如果后续上传失败,旧对象仍将保留。
HLS 和 DASH 播放器在开始播放之前读取播放列表并缓冲大量数据。(这就是他们众所周知的高延迟的原因。)在新片段上传并添加到播放列表之前需要几秒钟的时间,所以重要的是他们已经在缓冲区中有数据可以播放。这就是为什么您不必担心任何辍学的原因,除非出现无法及时上传的情况。
我正在使用 NodeJS 服务器,仅供参考。
是这样吗?听起来你在使用 S3 对我来说......不确定 Node.js 与这些有什么关系。
| 归档时间: |
|
| 查看次数: |
961 次 |
| 最近记录: |