其他常見問題
本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業(yè)務(wù)造成影響,請務(wù)必仔細(xì)閱讀。
本文為您介紹使用視頻點(diǎn)播服務(wù)過程中常見的報錯及相應(yīng)的處理建議。
使用視頻點(diǎn)播服務(wù)過程中報“No 'Access-Control-Allow-Origin'”的錯誤
報錯No 'Access-Control-Allow-Origin'
為跨域錯誤,您需要進(jìn)行跨域配置。您可以參考下述方法進(jìn)行配置:
在左側(cè)導(dǎo)航欄選擇配置管理 > 分發(fā)加速配置 > 域名管理。
選擇您要配置的域名,單擊配置。
在指定域名的左側(cè)導(dǎo)航欄,單擊緩存配置。
選擇自定義HTTP響應(yīng)頭頁簽,單擊添加,配置自定義HTTP響應(yīng)頭。
配置自定義響應(yīng)頭參數(shù)為Access-Control-Allow-Origin,響應(yīng)頭值配置為
*
或需要訪問的完整域名,例如www.aliyundoc.com。 更多詳細(xì)信息,請參見自定義HTTP響應(yīng)頭。單擊確定,完成配置。
有關(guān)阿里云Web播放器SDK相關(guān)的跨域配置,請參見配置跨域訪問。
使用視頻點(diǎn)播服務(wù)過程中報AliyunVODDefaultRole不存在的錯誤
使用視頻點(diǎn)播的HLS標(biāo)準(zhǔn)加密、MNS回調(diào)及STS臨時授權(quán)訪問等部分功能時,會涉及訪問其他云產(chǎn)品的資源,則需要視頻點(diǎn)播擁有相應(yīng)的權(quán)限,例如使用HLS標(biāo)準(zhǔn)加密功能需要KMS的權(quán)限、使用MNS回調(diào)功能需要MNS的權(quán)限等等。
AliyunVODDefaultRole是由點(diǎn)播系統(tǒng)創(chuàng)建的角色,該角色擁有對您OSS、MNS、CDN、以及KMS云資源的部分權(quán)限。當(dāng)提示您AliyunVODDefaultRole不存在時,例如報錯The role not exists: acs:ram::1748098****:role/AliyunVODDefaultRole.
,您可以通過訪問云資源訪問授權(quán)頁面進(jìn)行授權(quán)解決。
播放私有加密視頻時,報”ERROR_SERVER_VOD_FORBIDDEN_ALIYUNVODENCRYPTION“的錯誤
為了保障您的視頻安全,當(dāng)直接調(diào)用GetPlayInfo - 獲取音視頻播放地址接口獲取播放地址進(jìn)行播放時,默認(rèn)不返回私有加密流。因此,通過該方式播放私有加密視頻時,會出現(xiàn)視頻播放失敗并報錯ERROR_SERVER_VOD_FORBIDDEN_ALIYUNVODENCRYPTION
。您可以通過下述方式解決:
方式一:調(diào)用GetPlayInfo - 獲取音視頻播放地址接口時,設(shè)置
ResultType
參數(shù)值為Multiple
來獲取所有轉(zhuǎn)碼完成的播放地址。方式二:經(jīng)阿里云視頻加密(私有加密)方式加密的視頻,支持使用阿里云播放器SDK對視頻進(jìn)行解密播放。建議您使用阿里云播放器SDK播放視頻,詳情請參見使用阿里云播放器。
視頻點(diǎn)播的視頻播放地址過期
問題現(xiàn)象
當(dāng)您使用阿里云視頻點(diǎn)播產(chǎn)品,通過瀏覽器訪問某視頻點(diǎn)播地址時,訪問失敗,出現(xiàn)類似如下錯誤提示。
<Error>
<Code>AccessDenied</Code>
<Message>Request has expired.</Message>
<RequestId>5DF332644EAA4931361D1E43</RequestId>
<HostId>
outin-2cc63XXXXXXe1c955c.oss-cn-shanghai.aliyuncs.com
</HostId>
<Expires>2019-12-13T06:37:22.000Z</Expires>
<ServerTime>2019-12-13T06:40:36.000Z</ServerTime>
</Error>
問題原因
視頻點(diǎn)播產(chǎn)品底層的存儲依賴于OSS產(chǎn)品,如果沒有添加視頻點(diǎn)播域名,那么視頻點(diǎn)播中的原始文件和轉(zhuǎn)碼文件地址,即流暢、標(biāo)清、高清等視頻都是使用類似于outin-6a6fd4XXXXXXe1a65b6.oss-cn-shanghai.aliyuncs.com
樣式的OSS域名。
由于視頻點(diǎn)播底層使用的OSS存儲空間默認(rèn)是私有權(quán)限,所以需要使用帶簽名參數(shù)的URL訪問,即URL中需要攜帶Expires、Signature和AccessKey ID三個簽名參數(shù)。但是該簽名URL是存在過期時間,簽名URL中的Expires字段是UNIX時間戳,標(biāo)識的就是過期時間。綜上所述,當(dāng)以下條件成立時,你可能遇到上述報錯:
沒有為視頻點(diǎn)播產(chǎn)品添加視頻點(diǎn)播域名。
底層OSS存儲權(quán)限并未設(shè)置為公共讀,默認(rèn)情況下底層OSS存儲空間為私有權(quán)限。
解決方案
您可以通過以下兩種方案解決此問題:
當(dāng)使用視頻點(diǎn)播底層的OSS域名進(jìn)行訪問時,不會使用視頻點(diǎn)播的視頻分發(fā)加速功能。這種情況下,播放視頻時沒有加速效果,而且所產(chǎn)生的訪問流量也無法使用視頻點(diǎn)播的流量包抵扣,而是會產(chǎn)生存儲流出流量的費(fèi)用,因為點(diǎn)播流量包只能抵扣使用視頻點(diǎn)播域名播放視頻產(chǎn)生的流量。如果使用視頻點(diǎn)播域名播放視頻,是可以基于點(diǎn)播底層的CDN加速分發(fā)視頻,并且產(chǎn)生的流出流量可以使用流量資源包進(jìn)行抵扣,因此推薦使用方案一。
方案一:為視頻點(diǎn)播配置加速域名(推薦)
注意事項
由于視頻點(diǎn)播域名需要配置CNAME記錄,而CNAME記錄和A記錄是沖突的,具體沖突規(guī)則請參見解析記錄沖突規(guī)則,因此配置CNAME記錄前需要先刪除A記錄。
建議視頻點(diǎn)播域名不要使用網(wǎng)站站點(diǎn)的域名,因為站點(diǎn)域名通常是使用A記錄進(jìn)行解析。如果刪除A記錄后,將無法訪問站點(diǎn),因此建議使用新的域名進(jìn)行配置。
視頻點(diǎn)播加速域名默認(rèn)不開啟鑒權(quán),因此在未開啟鑒權(quán)的情況下,使用視頻點(diǎn)播加速域名的視頻URL是沒有過期時間的。如果開啟了視頻點(diǎn)播域名的URL鑒權(quán)功能,那么視頻URL也是存在過期時間的,鑒權(quán)相關(guān)信息請參見配置URL鑒權(quán)。
配置方法
在左側(cè)導(dǎo)航欄選擇配置管理 > 分發(fā)加速配置 > 域名管理,進(jìn)入到域名管理頁面。
確認(rèn)是否已添加域名。
如果已存在域名,但域名未啟用,則請啟用該域名并確認(rèn)CNAME記錄添加成功即可。
如果不存在域名,則參考下一步進(jìn)行域名添加。
在域名管理頁面,單擊添加域名,配置域名信息后,單擊提交。
詳細(xì)參數(shù)解釋請參見添加加速域名。域名添加完成后,請參見配置CNAME進(jìn)行CNAME配置。添加視頻點(diǎn)播域名以后,為了有更好的加速效果,建議您添加緩存配置,詳情請參見緩存配置。
方案二:將默認(rèn)的OSS存儲權(quán)限設(shè)置為公共讀
將OSS權(quán)限修改成公共讀,然后使用不帶簽名參數(shù)的URL進(jìn)行訪問,排除URL過期時間的影響。
配置為公共讀權(quán)限后,互聯(lián)網(wǎng)上任何用戶都可以對該Bucket內(nèi)的文件進(jìn)行訪問,這可能造成您數(shù)據(jù)的外泄以及費(fèi)用激增,請謹(jǐn)慎配置公共讀權(quán)限。
在左側(cè)導(dǎo)航欄選擇配置管理 > 媒資管理配置 > 存儲管理,進(jìn)入到存儲管理頁面。
單擊目標(biāo)存儲地址操作列的管理。
在權(quán)限區(qū)域,單擊修改配置。
設(shè)置權(quán)限為公共讀后,單擊確定。
修改成公共讀權(quán)限后,視頻點(diǎn)播控制臺默認(rèn)提供的視頻地址還是攜帶簽名參數(shù)的URL。因此,使用時需要去除URL中
?
以及之后的簽名參數(shù),使用類似如下沒有過期時間參數(shù)的URL訪問即可。https://outin-ebdeeXXXXXX3e008181.oss-cn-shanghai.aliyuncs.com/1db42d58e9694bf681d838f0ed9****/d0a5a57cb830412ca133607e****-ld.mp4