即時主資訊清單更新架構

以下說明瀏覽器TVSDK如何容納更新的主資料清單的資訊和範例。

預設情況下,此功能將關閉。 如果您的應用程式透過設定更新頻率(以分鐘為單位)來開啟它,每次更新間隔後都會執行下列步驟:

  1. 瀏覽器TVSDK會檢查主資訊清單的上次修改時間和etag,以判斷檔案是否已更新。

    如果時間和etag都已變更,則會將檔案視為已修改。

  2. 瀏覽器TVSDK會剖析並分析新資訊清單,並根據更新的性質採取適當動作。

  3. 如果目前的播放位元速率符合已修改資訊清單的位元速率,瀏覽器TVSDK會切換至新的設定檔。

    新的描述檔可以來自不同的伺服器或相同的伺服器,位元速率相同。 在這種情況下,轉場是平穩的。

  4. 如果新資訊清單中不再顯示目前的播放位元速率,瀏覽器TVSDK會嘗試在目前的資料中尋找位元速率,而新資訊清單中也會有此速率。

    • 如果找到匹配,則播放器首先切換到現有清單中的匹配位速率配置檔案,並切換到更新清單中的匹配位速率配置檔案。 這可確保轉換順暢。
    • 如果先前資訊清單和新資訊清單之間沒有共同的位元速率,或如果瀏覽器TVSDK無法切換至相符的位元速率,瀏覽器TVSDK會直接切換至新資訊清單的最低位元速率描述檔,並使用ABR根據頻寬切換至任何允許的位元速率。 這可能會導致播放時出現輕微故障,但影響應該很小。
  5. 如果更新成功,瀏覽器TVSDK會派單MediaPlayerItemEvent.MASTER_UPDATED事件。

  6. 如果更新未成功,則播放會繼續從此更新之前進行設定。

範例1

以下位元速率正在即時廣播:

  • 500k
  • 900k
  • 2100k

2100k串流有一些問題,因此需要重新啟動。 主資訊清單已更新為僅包含500k和900k。 稍後,2100k的觀看者將會體驗到900k的位元速率切換。 90萬觀看的用戶繼續90萬觀看。 之後,2100k串流會繼續,並新增至主資訊清單中。 過了一會兒,900k的觀看者,有頻寬的使用者,會切換到2100k。

範例2

以下位元速率正在即時廣播:

  • 500k
  • 900k
  • 2100k

所有這些比特率都需要重新啟動。 在400k和1500k上,為此設定了兩個時間流。 用戶切換到400k ,這是新配置的最低比特率。 有些使用者在頻寬足夠時會切換至1500k。 之後,備份三位元速率並更新主資訊清單。 使用者在500k時自動切換回觀看,這是修訂(原始)資訊清單中最低的頻寬。 稍後,使用者會切換至其網路允許的最高頻寬(900k或1200k)。

本頁內容