0

我正在播放播放HLS Live內容的播放器。因此,它會定期重新載入測試鏈接的.m3u8索引文件。HTTP Live Streaming播放器行爲

例如玩家重新加載01.m3u8索引文件。

(01.m3u8 - #1) 

     0.ts---the player tried to download this 100.ts file first. 
     1.ts--- 
     2.ts 
     3.ts 

然後,它試圖下載0.ts文件。

但是,網絡帶寬不足以快速下載此0.ts文件。

一個TS下載需要將近24秒。所以,它重新加載了02.m3u8索引文件。

(01.m3u8 - #2) 
     2.ts---the player tried to download 102.ts file first. 
     3.ts 
     4.ts 
     5.ts 

但是,玩家在索引文件中找不到1.ts文件。因爲在玩家下載1.ts文件之前索引文件已被服務器更新。因此,玩家試圖下載2.ts文件而不是1.ts文件。

這意味着玩家丟失了20秒的流數據。那麼,這種行爲是否與規格一致,因爲它似乎令人困惑?

我認爲它應該更新從1.ts開始的m3u8而不是2.ts.或者它是如何決定的。

有人可以提出建議嗎?

回答

0

只要播放列表仍然至少是目標持續時間的三倍,該規範允許服務器從播放列表的開頭刪除URI。 (第6.2.2草案-潘託斯-HTTP-即時串流-08)

服務器不能刪除媒體URL從播放列表文件中指定的段,如果播放列表文件的持續時間減去段的持續時間少於目標持續時間的三倍。

因此,只要播放列表包含4段,長度只有很小的變化,這似乎是一個有效的行爲。對於實時流,我希望服務器以與添加段相同的速度從流中移除段。因此,在10秒內,我發現刪除2個分段,而您花費24秒下載單個分段是合理的。

0

它做了正確的事情。爲了解決你所面對

要麼你應該知道你的網絡帶寬,如果你想只有1比特率[有用的封閉&控制環境]

OR

在多個帶寬編碼,並設置相應的編碼問題將你的m3u8s與多比特率相結合,並確保你給出最低的一個作爲第一個入口,HLS將相應地進行調整。在幾段內,它將達到目標帶寬。這實際上就是HLS的重點。

相關問題