全部產品
Search
文件中心

ApsaraVideo Media Processing:視頻播放

更新時間:Jun 30, 2024

ApsaraVideo for Media Processing支援通過播放地址和通過媒體ID播放視頻。本文介紹了視頻播放的方式以及視頻播放步驟。

播放方式

  • 通過播放地址播放:

    • 情境:針對提交轉碼作業的輸出視頻,有確定的輸出地址。直接把需要播放的URL地址(OSS URL或CDN URL)傳給阿里雲播放器SDK。

    • 優點:服務端負責產生最終的播放URL地址,用戶端實現簡單。

    • 缺點:服務端需要實現OSS、CDN的鑒權以及URL網域名稱的拼接等,且用戶端無法實現多個清晰度手動、自動切換。

  • 通過媒體ID播放

    • 優點:使用媒體工作流程時,每個多媒體輸入檔案由媒體ID(MediaId)唯一標識,一一對應。媒體ID可以關聯多個格式、多個清晰度的輸出,所以使用媒體ID播放時,可以實現多清晰度自動切換。多格式支援。

    • 播放方式:使用存取控制RAM服務的安全性權杖。安全性權杖不使用主帳號的許可權,而是使用子帳號的許可權,並且提供了有時效的存取權限,能很好的避免許可權泄露等問題。

    說明
    • 為了保證加密視頻的安全性,加密視頻的播放必須使用媒體ID的播放方式。Web端播放加密視頻請使用Flash播放器(HTML5不支援加密視頻播放)。

    • 直播客戶使用工作流程方式轉點播,可使用RecordUrl查詢出媒體ID進行播放,介面為查詢媒體-使用OSS檔案地址。更多資訊請參見媒資轉碼SDK

播放地址播放

服務端實現OSS、CDN的鑒權以及URL網域名稱的拼接後,直接把需要播放的URL地址(OSS URL或CDN URL)傳給播放器SDK。鑒權詳細資料請參見播放鑒權

媒體ID播放

通過媒體ID播放加密視頻需要使用RAM服務的安全性權杖。安全性權杖詳細資料請參見安全性權杖

通過媒體ID播放加密視頻的流程如下圖:mts_hls_decrypt

請按以下指引完成視頻加密:

  1. 業務方搭建令牌服務,用於頒發令牌MtsHlsUriToken。

    重要

    令牌服務指用於派發MtsHlsUriToken的服務。

  2. 業務方調用KMS解密介面搭建解密服務,用於解密視頻,同時提供資料密鑰(DK)給播放終端。

    重要

    KMS返回Base64加密後的資料密鑰給業務方。業務方需要將調用KMS介面獲得的資料密鑰Base64 Decode之後返回給播放終端。

  3. 業務方調用MPS的QueryMediaList介面擷取視頻M3U8檔案的OSS地址,並將地址拼接MtsHlsUriToken後返回給播放終端。

  4. 播放終端攜帶MtsHlsUriToken、資料密鑰向阿里雲CDN請求播放地址,阿里雲CDN改寫M3U8檔案,將業務方的Key URI與信封加密金鑰返回播放終端。播放終端解密播放視頻。

安全性權杖

  1. 安全性權杖需在RAM使用者授權時,增加角色授權策略,具體操作請參見建立可信實體為阿里雲帳號的RAM角色並授權

  2. 設定好後,獲得安全性權杖,參見請求安全性權杖。更多語言樣本請參Java樣本.NET樣本Python樣本Node.js樣本Go樣本

播放鑒權

播放器SDK主要參數如下表所示:

參數

描述

類型

是否必須

vid

媒體ID

String

source

播放地址

String

accId

STS AccessKeyId

String

accSecret

STS AccessKeySecret

String

stsToken

STS SecurityToken

String

domainRegion

媒體工作流程所在的地區(cn-shanghai,cn-hangzhou等)

String

authInfo

鑒權資訊,JSON字串,組成見下面詳細說明

String

authInfo是一個JSON對象,包含3個屬性:

  • ExpireTime:鑒權到期的UTC時間(其他時區的時間要轉換成UTC時間),只能在設定的到期時間之前擷取播放視頻的URL,否則會導致許可權到期無法播放。格式樣本:2021-03-25T23:59:59Z。

  • MediaId:ApsaraVideo for Media Processing服務的媒體ID。

  • Signature:鑒權簽名,避免偽造的請求。

    Signature的計算過程如下:

    • 參數

      ExpireTime="2017-03-25T23:59:59Z"
        MediaId="5aa0276ff6204ace950f75acf9e6187b"
    • 簽名字串

      把參數按照字母順序排序,key=value的格式,並使用(&)符號進行拼接。其中value遵循RFC-2396(UTF-8編碼,並進行URLEncode)。更多資訊,請參見URL Encoding說明

      ExpireTime=2017-03-25T23%3A59%3A59Z&MediaId=5aa0276ff6204ace950f75acf9e6187b
    • 簽名演算法

      用HMAC_SHA1計算出二進位的結果後,做Base64編碼。

      在類Unix系統中,可以使用openssl+base64命令來產生,在類Unix系統中,可以使用openssl+base64命令來產生,假設鑒權Key=”secret”,執行如下命令:

      $echo -n 'ExpireTime=2017-03-25T23%3A59%3A59Z&MediaId=5aa0276ff6204ace950f75acf9e6****' | openssl sha1 -binary -hmac 'secret' | base64
        z7mmSRuTXo4mydiWhRtbu8JKDpM=
    • 最終結果

      {
          "ExpireTime":"2017-03-25T23:59:59Z",
          "MediaId":"5aa0276ff6204ace950f75acf9e6****",
          "Signature":"z7mmSRuTXo4mydiWhRtbu8JKDpM="
        }

播放器的使用

MPS播放器已和點播播放器合并。具體使用請參見播放器SDK簡介

說明

MPS使用者可以使用新版提供的進階播放器進行升級。