阿里雲ApsaraVideo for VOD(ApsaraVideo VOD)是集音視頻管理、處理和分發播放於一體的一站式解決方案。本文介紹如何從零開始完成ApsaraVideo for VOD服務整合,搭建一個安全、經濟且適用於生產環境的視頻播放解決方案。
前提條件
已登入ApsaraVideo for VOD控制台開通服務,可選擇隨用隨付(後付費)或資源套件(預付費),詳情請參見計費概述。
ApsaraVideo for VOD為新使用者提供了新人試用產品,可以充分體驗和使用服務。
地區選擇
ApsaraVideo for VOD存在服務地區隔離。就近選擇服務地區可以有效降低網路延遲,提高資料轉送效率。同時,不同的服務地區支援的功能存在差異,詳情請參見服務地區。
方案搭建
步驟一:配置儲存
進入點播控制台儲存管理,在上方功能表列的服務地區,就近選擇您要開通的服務地區。

單擊啟用點播系統Bucket,選擇儲存冗餘類型。如果業務需要更高的可用性保障,建議選擇同城冗餘儲存。
標準儲存-同城冗餘(ZRS)
採用多可用性區域(AZ)內的資料冗餘儲存機制,將使用者的資料冗餘儲存在同一地區(Region)的多個可用性區域。當某個可用性區域不可用時,仍然能夠保障資料的正常訪問。
標準儲存-本地冗餘(LRS)
採用單可用性區域(AZ)內的資料冗餘儲存機制,將使用者的資料冗餘儲存在同一個可用性區域內多個設施的多個裝置上,確保硬體失效時的資料持久性和可用性。
啟用儲存地址需要一段時間,請您耐心等待。當系統提示儲存地址啟用成功,且儲存地址的狀態為正常後,方可使用該儲存地址。
步驟二:上傳音視頻
在上傳音視頻前配置好轉碼模板組,可以確保視頻上傳後能自動產生多種清晰度的版本,最佳化播放體驗並節省頻寬。
選擇上傳方式
SDK上傳(生產環境推薦)
通過後端服務調用SDK擷取上傳憑證,然後由用戶端(Web/App)直接上傳至點播服務。這是最安全、最高效的方式。
說明詳細程式碼範例請參考媒體上傳概述。
python# Python樣本:後端服務擷取上傳憑證和地址 from aliyunsdkvod.request.v20170321 import CreateUploadVideoRequest from aliyunsdkcore.client import AcsClient import json # 1. 初始化用戶端 # 請替換為您的AccessKey ID、AccessKey Secret和地區ID client = AcsClient('your-access-key-id', 'your-access-key-secret', 'cn-shanghai') # 2. 建立API請求並設定參數 request = CreateUploadVideoRequest.CreateUploadVideoRequest() request.set_Title('My Test Video') request.set_FileName('video_test.mp4') # request.set_TemplateGroupId('your-transcode-template-group-id') # 可選,指定轉碼模板 # 3. 發起請求並擷取響應 response = client.do_action_with_exception(request) response_data = json.loads(response) # 4. 將UploadAddress和UploadAuth返回給用戶端 upload_address = response_data['UploadAddress'] upload_auth = response_data['UploadAuth'] video_id = response_data['VideoId'] # 用戶端拿到憑證後,使用上傳SDK完成檔案上傳。控制台上傳(數量少且檔案小時,可進行上傳或者測試)
進入點播控制台媒資庫音/視頻,點擊上傳音/視頻,進入上傳音/視頻頁面,選擇本地上傳並添加上傳檔案。

URL批量拉取(沒有儲存在本地且支援通過公網URL訪問時,適用於離線搬站),詳細操作可參見URL批量拉取上傳。
Windows用戶端(多個大檔案批量上傳),詳細操作可參見通過Windows用戶端上傳檔案。
步驟三:配置加速網域名稱(可選)
擷取播放地址進行播放會按儲存流出流量計費。配置加速網域名稱後,加速服務費用相較於儲存流出流量費用享有價格優惠。詳情可參見添加加速網域名稱。
步驟四:整合播放
擷取播放憑證(生產環境推薦)
後端API調用
後端服務需要調用API,為每個播放請求動態產生一個有時效性的播放憑證(PlayAuth)。
python# Python樣本:擷取播放憑證 from aliyunsdkvod.request.v20170321 import GetVideoPlayAuthRequest # client已在上傳步驟中初始化 request = GetVideoPlayAuthRequest.GetVideoPlayAuthRequest() request.set_VideoId('your-video-id') # 替換為實際的VideoId request.set_AuthInfoTimeout(3000) # 憑證有效期間,單位:秒。此處為50分鐘。 response = client.do_action_with_exception(request) play_auth = json.loads(response)['PlayAuth'] # 將擷取到的 play_auth 和 video_id 返回給前端前端播放器整合
前端播放器使用從後端擷取的
vid和playAuth來初始化播放。Web端
<!-- Web播放器樣本 --> <div id="player-container"></div> <script src="https://g.alicdn.com/de/prismplayer/2.15.2/aliplayer-min.js"></script> <script> var player = new Aliplayer({ id: 'player-container', width: '100%', height: '500px', vid: 'your-video-id', // 從後端擷取 playauth: 'your-play-auth', // 從後端擷取 cover: 'https://your-domain.com/cover.jpg' // 封面圖URL }, function (player) { console.log('播放器建立成功'); }); </script>Android端
1. 建立播放器 AliPlayer player = AliPlayerFactory.createAliPlayer(context); // 2. 配置播放源 VidAuth vidAuth = new VidAuth(); vidAuth.setVid("your-video-id"); vidAuth.setPlayAuth("your-play-auth"); vidAuth.setRegion("cn-shanghai"); // 設定地區 // 3. 準備播放 player.setDataSource(vidAuth); player.prepare();iOS端
1. 建立播放器 let player = AliPlayer() // 2. 配置播放源 let vidAuth = AVPVidAuthSource() vidAuth.vid = "your-video-id" vidAuth.playAuth = "your-play-auth" vidAuth.region = "cn-shanghai" // 設定地區 // 3. 準備播放 player.setSource(vidAuth) player.prepare()
URL鑒權方式
URL鑒權方式將簽名資訊直接附加在URL中,安全性低於播放憑證方式。適用於一些不方便改造播放器的情境。詳情可參見URL鑒權。
Web播放器線上體驗
進行音視頻上傳測試或體驗時,也可以直接使用Web播放器線上體驗。
進入點播控制台媒資庫音/視頻,單擊對應視頻操作列下的管理。
選擇視頻地址標籤頁,點擊對應清晰度操作欄下的複製地址。

在Web播放器中使用播放地址進行播放。
擴充
常見問題
如何進行批量音視頻上傳?
您可以通過PC用戶端工具、URL批量拉取和上傳SDK進行音視頻批量上傳,詳情請參見媒體上傳概述。
