全部產品
Search
文件中心

ApsaraVideo Live:直播時移

更新時間:Jun 30, 2024

直播時移可以回看從直播開始時間到目前時間之間的直播視頻。通過閱讀本文,您可以瞭解直播時移的實現原理及請求方式。

時移原理

ApsaraVideo for Live流會被切成TS切片,通過HLS協議向播放使用者分發,使用者請求的M3U8播放清單中包含不斷重新整理的TS切片地址。對於常規的HLS直播,TS切片地址及對應的TS檔案無法儲存,因此目前時間之前的ApsaraVideo for Live內容無法進行回溯。在開啟直播時移功能後,TS切片地址及對應的TS檔案會分別在資料庫和OSS中儲存(最長30天),可以回溯從直播開始時間到目前時間之間的視頻。

時移配置

直播時移功能可以在ApsaraVideo for Live控制台配置。具體操作,請參見直播時移

時移請求參數

常規HLS直播地址形如 http://domain/app/stream.m3u8,為實現時移播放需要在此直播地址基礎上追加時移相關參數。

必備參數

aliyunols=on

說明

通過CDN調用時移請求時必須攜帶此參數。

時間相關的參數

key格式:lhs_{type}_{format}_{unit}_{zone}

說明

參數名由4個變數組成,首碼固定為lhs_,變數之間用 "_" 隔開。變數的說明如下:

  • type:表示時間的類型。

    • start:開始時間。

    • end:直播結束時間。

    • vodend:點播結束時間。設定vodend表示使用點播模式回看,一次返回指定時間段內所有的ts,包含endlist標籤。

    • offset:向前位移的時間。

  • format:表示時間的格式。

    • unix:時間戳記。

    • human:形如20170809230130。

  • unit: 時間的單位。

    • s:秒。

    • ms:毫秒。

    • us:微秒。

    • ns:納秒。

  • zone:時區。

    • {0-9}:數字,表示東x區,0則表示UTC時間,中國為8(當format為unix時,該參數值為0)。

樣本

  • lhs_start_human_s_8=20170809200010

  • lhs_start_unix_s_0=1502280113

  • lhs_end_human_s_8=20170809200010

  • lhs_vodend_unix_s_0=1502280113

  • lhs_offset_unix_ms_0=1800000(向前時移30min)

請求樣本

http://example.com/live/channel1.m3u8?aliyunols=on&lhs_start_human_s_8=20171024160220&lhs_end_human_s_8=20171024160420

時間軸查詢

查詢某個流歷史某段時間內哪些時間段有時移資料。

  • url:http://{$domain}/openapi/timeline/query

    說明

    此處的{$domain}需替換為自己的播流網域名稱。

  • method:GET

  • params

    • aliyunols(required):on

    • app(required):app。

    • stream(required):流名。

    • format(required):指定查詢ts或者flv格式的時移資料。

    • lhs_start_unix_s_0(required):開始時間的時間戳記(單位s)。

    • lhs_end_unix_s_0(required):結束時間的時間戳記(單位s)。

      說明

      如果使用者開啟了CDN的鑒權,需要加上對應的鑒權參數。

  • response(JSON格式)。

    • current:表示當前系統時間,播放器可以基於這個欄位對時。

    • timeline:一個數組,數組的元素是一個map,表示一段有效時移時間段,包含如下欄位。

    • timeline[i].start:有效片段的開始時間戳(單位s)。

    • timeline[i].end:有效片段的結束時間戳記(單位s)。

  • example

    http://{$domain}/openapi/timeline/query?aliyunols=on&app=bbb&stream=cc&format=ts&lhs_end_unix_s_0=1513334270&lhs_start_unix_s_0=1513334255

    帶鑒權的樣本:

    http://{$domain}/openapi/timeline/query?auth_key=1606204918-0-0-3e898a5f491fedb113d17aad7c091dde&aliyunols=on&app=zzb-test&stream=zzb-shiyi&format=ts&lhs_start_unix_s_0=1606200900&lhs_end_unix_s_0=1606202520
  • 鑒權產生:直播也提供了API產生鑒權URL的方式,詳情參考鑒權程式碼範例。

  • response

    {"retCode":0,"description":"success","content":{"current":1514269063,"timeline":[{"start":1514269054,"end":1514269058},{"start":1514269058,"end":1514269062}]}}'