本文為您介紹使用ApsaraVideo for VODHLS標準加密、阿里雲視頻加密(私人加密)、DRM加密過程中遇到的常見問題及解決方案。
HLS標準加密相關
播放HLS標準加密視頻時,需要傳入的使用者令牌(MtsHlsUriToken)參數是什嗎?如何擷取?
MtsHlsUriToken參數是使用者自訂參數,常規的HLS標準加密下,加密串寫到HLS流裡後,會在m3u8索引檔案中加入一個解密伺服器的地址,當有需求需要只允許部分使用者訪問時,這個解密地址就需要一個驗證身份的功能,MtsHlsUriToken參數就是在您的解密伺服器上加一層驗證邏輯,然後根據這層驗證邏輯產生一個特殊的參數加入解密驗證。
您需要在配置加密時,搭建令牌頒發服務產生MtsHlsUriToken,詳細內容請參見播放視頻步驟1。
如何使用產生的密鑰?
GenerateKMSDataKey介面會返回兩種密鑰:一種是密文密鑰(CiphertextBlob),另一種是清除金鑰(Plaintext)。使用者只需要將密文密鑰傳遞給ApsaraVideo for VOD服務即可,具體參數傳遞請參見提交媒體轉碼作業中的加密配置 EncryptConfig參數。
推薦業務方對產生的密文密鑰和清除金鑰進行緩衝。
建立的Service Key不可刪除、不可更新,只用於產生加密金鑰。
產生的令牌如何傳遞到解密介面?
業務方必須使用網域名稱進行加速播放,才能將令牌重寫到解密介面上。在請求M3U8地址時需要將產生的令牌通過MtsHlsUriToken參數傳遞,網域名稱會自動將該參數重寫到解密介面上並請求解密介面。
如何快速驗證加密播放?
可以通過阿里雲播放器診斷平台,播放標準加密的M3U8播放地址,可以快速驗證播放是否正常。拷貝M3U8播放地址(如有MtsHlsUriToken參數一併拷貝)到阿里雲播放器診斷平台上進行嘗試標準加密的解密播放。
其它常見問題
介面提示
調用提交媒體轉碼作業提示KeyNotFound相關資訊,請先聯絡點播後台在相應的地區(例如:華北2、華東2)建立Service Key 並用於產生加密金鑰。
非加密檔案
產生的檔案未加密,請確認轉碼模板是否開啟視頻加密並勾選了私人加密。
自訂密鑰
加密的清除金鑰必須使用建立KMS資料密鑰介面產生,不能使用自訂字串產生加密金鑰,否則加密轉碼失敗。
加密失敗
標準加密轉碼失敗或沒有任何加密檔案產生,請確認建立KMS資料密鑰產生的密鑰類型是否為AES_128密鑰,否則加密轉碼會失敗導致不會產生任何加密檔案。
解密失敗
標準加密檔案解密播放失敗,請確認是解密介面將ApsaraVideo for VOD的DecryptKMSDataKey介面返回的清除金鑰再次base64decode之後給播放器解密播放,不然解密播放會失敗。
重複產生
標準加密轉碼觸發都是由使用者主動觸發,如果重複產生加密檔案,請確認是否重複調用提交媒體轉碼作業介面。
DRM加密相關
發起DRM加密轉碼失敗,報錯提示Submit transcode job failed
問題現象:發起DRM加密轉碼時,報錯TranscodeJob.SubmitFailed,錯誤碼為 TranscodeJob.SubmitFailed。
問題原因:
ApsaraVideo for VOD暫不支援在視頻上傳完成後通過點播控制台 > 媒資庫 > 音/視頻 > ApsaraVideo for Media Processing > 用轉碼模板組處理的方式觸發DRM加密轉碼。
解決方案:
您可以將DRM加密的轉碼模板組添加到工作流程中,以工作流程方式觸發轉碼,詳情請參見工作流程。
上傳DRM認證失敗,報錯提示Can not found user info
問題現象:上傳DRM認證時,報錯NotUserInfoExist。錯誤碼為 NotUserInfoExist。
解決方案:
請確認您上傳DRM認證的對應服務地區已經存在啟用的點播系統bucket,啟用點播系統bucket請參見管理儲存Bucket。
其他加密相關問題
如何確認當前視頻使用的加密方式?
可通過控制台或 API 兩種方式確認。方式一(控制台):登入ApsaraVideo for VOD控制台,在左側導覽列選擇媒資庫 > 音/視頻。找到目標視頻,單擊管理。在視頻詳情頁單擊視頻地址頁簽,查看格式列。若為 mp4 通常未加密;若為 m3u8 且播放地址含加密參數,則為 HLS 標準加密。
方式二(API):調用 GetPlayInfo 介面,查看返回參數。Encrypt 欄位表示是否加密(0:未加密,1:已加密)。若 Encrypt 為 1,查看 EncryptType 欄位確認加密類型:AliyunVoDEncryption 表示阿里雲視頻加密(私人加密),HLSEncryption 表示 HLS 標準加密。視頻未加密時,EncryptType 欄位為空白。
視頻解密報錯缺少 KMS 許可權怎麼辦?
使用 HLS 標準加密時,若解密環節報錯提示缺少 KMS 許可權,請為點播服務角色授予 kms:Decrypt 許可權,並在 RAM 權限原則中指定對應的 KMS 密鑰資源,確保密鑰與業務使用的密鑰一致。
License 加密視頻能否跨帳號遷移?
不支援隨即轉移。加密金鑰與帳號綁定,需在新帳號中重新完成 License 加密,並同步更新播放器側的 LicenseKey 配置。
DRM License 報錯 InvalidParameter.ResourceNotFound 且僅部分機器受影響如何排查?
該報錯通常是因為用戶端未能正確擷取或配置 DRM 認證(License)。雖然 License 本身有效,但受影響的機器未完成下載和配置步驟。請檢查並確保所有用戶端已按照文檔要求正確下載並配置了 License 檔案,可對比正常機器進行排查。
同一視頻資源能否同時產生 DRM 加密和私人加密兩種碼流?
支援。同一個 videoId 下,DRM 加密碼流和私人加密(阿里雲視頻加密)碼流可以共存,無需針對同一份視頻源重複上傳。播放時需明確指定加密類型以匹配對應碼流:
- App 端播放私人加密碼流,需配置
encryptType: 1。 - Web 端播放 DRM 加密碼流,需設定
isDrm: true。
Web 端 STS 播放出現異常怎麼辦?
當新舊轉碼流共存時,調用 GetPlayInfo 介面可能因舊的加密碼流變為 Invisible 狀態、且播放器不支援混合返回情境,而錯誤回退至私人加密碼流,導致播放失敗。
解決方案:調用 DeleteStream 介面刪除該視頻的私人加密流,僅保留 DRM 加密流後重試。
刪除視頻流後無法恢複,請謹慎操作。
播放器 SDK 版本與瀏覽器核心不相容怎麼辦?
舊版本的阿里雲播放器 SDK(如 2.20.0)與高版本 Edge 瀏覽器核心存在相容性問題,可能導致 HLS 載入異常,或關閉瀏覽器控制台後無法播放。
解決方案:將阿里雲播放器 SDK 升級至最新版本,並確保已申請免費的 License 進行授權接入。