HLS - 如何减少延迟?

时间:2014-05-28 08:48:59

标签: html5 video streaming video-streaming delay

任何人都知道如何配置HLS媒体服务器以减少一点点直播视频的延迟? 我需要更改哪些类型的参数?
我听说你可以使用如下参数进行调整:HLSMediaFileDuration

提前致谢

4 个答案:

答案 0 :(得分:9)

Http Live Streaming系统通常具有生成特定秒数段的编码器和服务于播放列表的媒体服务器(web服务器),播放列表包含这些段到播放器应用程序的URL列表。

媒体文件=细分= .ts文件= MPEG2-TS文件(在HLS中说)

有一些方法可以减少HLS的延迟:

  1. 将编码的段长度从Apple建议的10秒减少到5秒或更短。减少段长度会增加Web服务器上的网络开销和负载。
  2. 使用较低的比特率,较大的.ts文件上传和下载时间较长。如果您使用多比特率流,请确保播放列表中列出的第一个比特率略低于大多数用户使用的比特率。这将减少开始播放流的时间
  3. 更快地从编码器获取片段到Web服务器。如果可能,仍然在编码时上传。片段完成上传后立即更新播放列表
  4. 还要记住,延迟越高,您的流质量越好(低延迟=低质量)。对于较大的段,开销较小,因此视频数据空间更大。花费更长的时间进行编码可以获得更好的质量。更多缓冲可以减少视频流在播放时出现断断续续的可能性。 HLS的重要性在于延迟播放的交易质量,因此您永远无法将HLS用于视频会议之类的事情。 HLS的典型延迟是30-60秒,实际上最小约为15秒。如果你想要低延迟,可以使用RTP进行流媒体播放,但是在低速或变速网络上获得良好的质量会好运。

答案 1 :(得分:0)

请指定您使用的媒体服务器。一般来说,是的 - 改变块大小肯定会影响延迟时间。第一个块越少,视频在播放器中显示的速度就越快。

答案 2 :(得分:0)

实际上,Apple建议将文件分成小块,这个等长的文件,整数。

在实践中,球员之间存在巨大差异。其中一些解析显示更改此值。

已知的做法是在内存中预先缓存低速和低速存储器中的第一个块。中等分辨率(或尝试在app / page的背景下载它们 - 亚马逊这样做,虽然他们的视频是MSS)

答案 3 :(得分:0)

我遇到了同样的问题,关键是我:

  1. 降低线段长度。我把它设置为2s因为我在本地网络上流式传输。在其他类型的网络中,您需要注意低段长度增加的开销,这会影响您的播放质量。
  2. 在您的清单中,确保#EXT-X-TARGETDURATION准确无误。来自here
      

    EXT-X-TARGETDURATION标记指定最大媒体段   持续时间。播放列表中每个媒体段的EXTINF持续时间   文件,当四舍五入到最接近的整数时,必须小于或等于   到目标持续时间;较长的段可以触发播放停顿   或其他错误。它适用于整个播放列表文件。

  3. 出于某种原因,我的清单中的#EXT-X-TARGETDURATION设置为5,我看到了16到20秒的延迟。将该值更改为2后,根据我的细分,这是正确的值。长度,我现在看到6-10秒的延误。

    总之,您应该预计至少会延迟#EXT-X-TARGETDURATION的3倍。因此,降低段长度和#EXT-X-TARGETDURATION值应有助于减少延迟。