阿里雲播放器SDK(ApsaraVideo Player SDK,後續統稱“播放器SDK”)是MediaBox音視頻SDK的子產品之一,提供直播和點播情境中視頻播放功能,支援Web、Android、iOS、Flutter、Windows、macOS等多種平台。通過閱讀本文,您可以瞭解播放器SDK支援的功能。
標準功能
本文以Web、Android和iOS端為例,為您介紹了播放器SDK的標準功能。其中,✔️和❌分別表示支援和不支援該功能。
表 1. 播放協議與格式
功能 | 說明 | Web端 | Android端 | iOS端 |
點播播放 | 支援常見的FLV、HLS、MP4、MP3等點播情境的音視頻格式。 | ✔️ | ✔️ | ✔️ |
直播播放 | 支援常見的RTMP、FLV、HLS等直播情境的音視頻格式。 | ✔️,僅支援FLV、HLS協議 | ✔️ | ✔️ |
直播時移 | 支援直播時移視頻流播放,可設定開始、結束和當前支援時間,支援拖動。 | ✔️ | ✔️ | ✔️ |
H.264編碼協議 | 支援播放H.264編碼協議的視頻流,支援軟硬解切換。 | ✔️ | ✔️ | ✔️ |
H.265編碼協議 | 支援播放H.265編碼協議的視頻流,支援軟硬解切換。 | ✔️ | ✔️ | |
H.266編碼協議 | 支援播放H.266編碼協議的視頻流。 | ❌ | ✔️ | ✔️ |
超低延時直播RTS | 支援高並發、低卡頓、毫秒級延遲的阿里雲超低延時直播RTS。 | ✔️ | ✔️ | ✔️ |
低延時直播 | 支援LL-HLS、DASH協議的低延時流播放。 | 僅支援LL-HLS協議 | ✔️ | ✔️ |
DASH協議 | 支援標準協議的DASH視頻流播放,例如:SegmentBase 、SegmentTemplate。 | ❌ | ✔️ | ✔️ |
HDR視頻播放 | 支援HDR10/HLG等多種HDR格式。 | ❌ | ✔️ | ✔️ |
URL播放 | 支援線上視頻、本地視頻以URL的方式播放。 | ✔️ | ✔️ | ✔️ |
VID播放 | 支援VID方式播放,同時對視頻下發多個清晰度的播放地址(若有),例如:VidAuth播放、VidSts播放。 | ✔️ | ✔️ | ✔️ |
SEI訊息 | 接受讀取SEI訊息。 | ✔️ | ✔️ | ✔️ |
表 2. 網路通訊協定
功能 | 說明 | Web端 | Android端 | iOS端 |
自訂Header | 請求音視頻資源時,自訂HTTP Headers內容。 | ✔️ | ✔️ | ✔️ |
HTTPDNS | 支援標準HTTPDNS,降低DNS劫持風險。 | ❌ | ✔️ | ✔️ |
HTTP/2 | 支援HTTP/2,通過二進位分幀、多工、首部壓縮等最新的特性,能夠大幅度提高Web效能,降低資料互動延遲。 | 取決於瀏覽器是否支援,詳情請參見Can I use http2? | ✔️ | ✔️ |
HTTP/3 | 支援HTTP/3,支援基於QUIC協議進行加速,加速效果更快更優。 | 取決於瀏覽器是否支援,詳情請參見Can I use http3? | ✔️ | ✔️ |
表 3. 播放控制
功能 | 說明 | Web端 | Android端 | iOS端 |
基礎控制 | 支援開始、結束、暫停、seek、自動播放等播放控制功能。 | ✔️ | ✔️ | ✔️ |
seek | 支援拖動到指定位置(UI支援手勢);支援已經緩衝的視頻內容在拖動時不清除緩衝內容並快速拖動。 | ✔️ | ✔️ | ✔️ |
精確seek | 支援精確到幀層級拖動到指定位置。 | 支援毫秒層級的精確seek | ✔️ | ✔️ |
緩衝內seek | 支援已經緩衝的視頻內容在seek時不清除緩衝內容並快速seek。 | ❌ | ✔️ | ✔️ |
續播 | 支援設定續播起播時間點。 | ✔️ | ✔️ | ✔️ |
迴圈播放 | 支援音視頻播放結束後自動重播。 | ✔️ | ✔️ | ✔️ |
列表播放 | 支援短視頻列表播放功能,提升載入速度。 | ✔️ | ✔️ | ✔️ |
倍速播放 | 支援變速播放,支援音頻變速不變調。 | ✔️,0.5~2倍速 | ✔️,0.5~5倍速 | ✔️,0.5~5倍速 |
清晰度(手動)切換 | 可使用視訊點播的多路清晰度流切換。 | ✔️ | ✔️ | ✔️ |
無縫切換 | 針對阿里雲直播流地址,在播放過程中支援無縫切換多個解析度的直播流,提升使用者的播放體驗。 | ❌ | ✔️ | ✔️ |
切換音軌 | 可使用視訊點播的多路音軌流切換。 | ✔️ | ✔️ | ✔️ |
截圖 | 支援截取當前播放畫面幀並儲存為靜態圖片。 | 部分支援,受平台、播放模式的影響略有差異,詳情請參見開啟截圖功能。 | ✔️ | ✔️ |
鎖定螢幕 | 支援鎖屏功能,包含鎖定旋轉和隱藏介面元素。 | ❌ | ✔️ | ✔️ |
表 4. 視頻效果
功能 | 說明 | Web端 | Android端 | iOS端 |
填充 | 支援畫面填充和畫面裁剪兩種填充模式。 | ✔️ | ✔️ | ✔️ |
旋轉 | 支援0°、90°、180°和270°四個視頻畫面渲染角度設定。 | ✔️ | ✔️ | ✔️ |
鏡像 | 支援無鏡像、水平鏡像和垂直鏡像三種鏡像模式設定。 | ✔️ | ✔️ | ✔️ |
亮度調節 | 支援系統的亮度調節(UI支援手勢)。 | ❌ | ✔️ | ✔️ |
自訂播放器尺寸 | 支援自訂設定播放器的寬高。 | ✔️ | ✔️ | ✔️ |
畫中畫(小窗)播放 | 支援切換到畫中畫以小窗形式播放。 | ✔️ | ✔️ | ✔️,iOS14及其以下版本不支援在App外播放 |
表 5. 音頻效果
功能 | 說明 | Web端 | Android端 | iOS端 |
音量大小 | 支援調用系統介面調節觀看視頻的音量。 | ✔️ | ✔️ | ✔️ |
靜音 | 支援開啟和關閉靜音功能。 | ✔️ | ✔️ | ✔️ |
純音頻播放 | 支援只播放視頻檔案中的音頻和常見的音頻檔案,例如:MP3、AAC。 | ✔️ | ✔️ | ✔️ |
後台播放 | 支援介面切到後台後繼續播放音頻。 | ✔️ | ✔️ | ✔️ |
表 6. 播放效能
功能 | 說明 | Web端 | Android端 | iOS端 |
播放失敗重試 | 播放失敗時自動重試。 | ✔️ | ✔️ | ✔️ |
自動重連 | 支援直播的自動重連功能。 | ✔️ | ✔️ | ✔️ |
本機快取 | 可使用視訊播放的同時緩衝下載後面的內容到本地,滿足短視頻情境下的迴圈播放,節約使用者流量。 | ❌ | ✔️ | ✔️ |
預先載入 | 對本機快取功能的升級,提升視頻的起播速度。 | ✔️ | ✔️ | ✔️ |
多執行個體 | 支援在一個介面添加多個播放器同時播放。 | ✔️ | ✔️ | ✔️ |
網路自適應播放多碼率視頻流 | 支援多碼率HLS、DASH的無縫切換。 | 僅支援多碼率HLS協議視頻流切換 | ✔️ | ✔️ |
動態追幀 | 支援直播的動態追幀,降低延時。 | ✔️ | ✔️ | ✔️ |
表 7. 互動功能
功能 | 說明 | Web端 | Android端 | iOS端 |
字幕 | 支援匯入自訂的字幕檔案。 | ✔️,支援VTT字幕 | ✔️,支援SRT、SSA、ASS、VTT字幕 | ✔️,支援SRT、SSA、ASS、VTT字幕 |
表 8. 視頻安全
功能 | 說明 | Web端 | Android端 | iOS端 |
referer黑白名單 | 支援通過播放請求中攜帶的referer欄位識別請求來源,以黑名單或白名單方式對請求來源進行控制。 | ✔️ | ✔️ | ✔️ |
HLS標準加密 | 支援標準AES-128加密方案。 | ✔️ | ✔️ | ✔️ |
阿里雲加密(私人加密) | 支援阿里雲加密(私人加密)方案,防止視頻泄露和盜鏈問題。 | ❌ | ✔️ | ✔️ |
安全下載 | 支援通過唯一應用下載視頻並進行加密。 | ❌ | ✔️ | ✔️ |
DRM加密 | 支援Widevine、Fairplay的DRM加密方案。 | ✔️ | ✔️ | ✔️ |
表 9. 品質服務
功能 | 說明 | Web端 | Android端 | iOS端 |
日誌上報 | 支援上報播放器SDK日誌,統計音ApsaraVideo for VOD、直播相關播放埋點資訊。 | ✔️ | ✔️ | ✔️ |
播放異常追溯 | 支援按照指定使用者、播放會話對播放歷史進行追溯,定位播放異常原因。 | ✔️,免費版支援查詢最近3天資料 | ✔️,免費版支援查詢最近3天資料 | ✔️,免費版支援查詢最近3天資料 |
播放資料大盤 | 支援觀測播放量、播放使用者數等宏觀資料。 | ✔️,免費版支援查詢最近3天資料 | ✔️,免費版支援查詢最近3天資料 | ✔️,免費版支援查詢最近3天資料 |
表 10. 開發支援
功能 | 說明 | Web端 | Android端 | iOS端 |
渲染資料輸出 | 支援邊渲染邊輸出PCM和YUV資料。 | ❌ | ✔️ | ✔️ |
事件回調 | 支援對播放狀態回調、首幀回調、播放完成或失敗回調。 | ✔️ | ✔️ | ✔️ |
解碼策略黑名單 | 支援設定硬解碼黑名單。 | ✔️ | ✔️ | ✔️ |
網速顯示 | 支援播放器執行個體的即時網速上報。 | 僅支援超低延時直播RTS | ✔️ | ✔️ |
UI組件 | 包含完整UI,您可以根據自身需求選用。 | ✔️ | ✔️ | ✔️ |
增值功能
本文以Web、Android和iOS端為例,為您介紹了播放器SDK的增值功能,您需要登入ApsaraVideo for Live、ApsaraVideo for VOD控制台為您的應用申請試用或購買。其中,✔️和❌分別表示支援和不支援該功能。
功能 | 功能概述 | Web端 | Android端 | iOS端 |
Web播放H.265視頻 | 支援在Web瀏覽器中播放H.265的視頻流,相對H.264視頻流有效降低頻寬消耗,改善播放效能。 | ✔️ | ❌ | ❌ |
投屏 | 支援DLNA協議將視頻流投屏至同網接收端,提供常見播放控制功能。 | ❌ | ✔️ | ✔️ |
進階ABR策略 | 相對於普通ABR策略更好地適應多碼率HLS或DASH視頻流,明顯降低卡頓,提昇平均播放碼率。 | ❌ | ✔️ | ✔️ |
VR播放 | 播放全景視頻,支援手勢操作、響應陀螺儀、重力感應器。 | ❌ | ✔️ | ✔️ |
端側超分 | 將低解析度視頻轉換為高解析度視頻,以提高視頻播放的清晰度,改善播放體驗。 在確保視頻主觀體驗的前提下,適應更低碼率的視頻源,降低視頻傳輸費用。 | ❌ | ✔️ | ✔️ |
端側銳利化 | 突出映像的輪廓和銳利化模糊的細節,從而提供更清晰、更銳利的觀看效果。 | ❌ | ✔️ | ✔️ |
端側插幀 | 消除低幀率視頻的卡頓感,從而提供絲滑流暢的播放體驗。 | ❌ | ✔️ | ✔️ |
音頻增強 | 全景聲空間音頻技術,提供更加沉浸、真實的體驗。 | ❌ | ✔️ | ✔️ |
增強型HTTPDNS | 支援阿里雲CDN網路精準調度、即時解析生效,有效提高網路效能。 說明 播放器SDK從6.7.0版本開始支援增強型HTTPDNS。6.7.0~6.11.0版本播放器SDK,請先提交工單或聯絡阿里雲商務經理申請開通;6.12.0及以後版本無需申請,預設開啟。 | ❌ | ✔️ | ✔️ |