1. 程式人生 > >阿里雲播放器SDK的正確開啟方式 | 功能、架構與應用(一)

阿里雲播放器SDK的正確開啟方式 | 功能、架構與應用(一)

阿里雲播放器SDK(ApsaraVideo for Player SDK)是阿里視訊雲端到雲到端服務的重要一環,除了支援點播和直播的基礎播放功能外,還深度融合視訊雲業務,支援視訊的加密播放、安全下載、首屏秒開、低延時等業務場景,為使用者提供簡單、快速、安全、穩定的視訊播放服務。本文將從產品特點、技術架構、點播和直播場景中播放器的應用等幾個方面來介紹阿里雲播放器SDK。

阿里雲播放器SDK具有哪些特點?

一、 快速接入
因為面對的是不同層次的開發者,在接入成本上需要考慮的儘量全面。為此,阿里雲播放器提供了詳盡完備的文件和場景化的DEMO,為使用者參考使用,另外,視訊指導教程和針對不同問題和場景的專題介紹也能幫助使用者更好、更快地接入。
二、 簡單整合
Android和iOS提供統一介面和錯誤碼,接近系統API的介面設計保證每位開發者能快速整合。
三、 分層架構 按需選配
基礎功能、業務功能、UI元件等分層架構,保證最精簡的包大小,根據業務需求組合選用。
四、 雲和端一體化
雲端加密、客戶端解密,端和雲的聯動保證視訊安全。端上採集資料、雲端分析,為業務運營提供支援。
五、 安全穩定
從防盜鏈、URL鑑權到加密播放和安全下載,全方位保護視訊安全,滿足不同場景的安全需求。

下面我們來看看阿里雲播放器SDK的產品架構

首先,移動端播放器的產品架構,分成基礎播放器、高階播放器、業務元件這三層。在基礎播放器中,播放器實現了視訊流解析、音視訊同步、軟硬解碼等基礎能力,並支援url播放、播放邏輯控制、音量和亮度調節、點播/直播支援、倍數播放、首屏秒開等功能。在此之上,封裝了高階播放器,這個是和業務強相關的播放器,與雲服務深度融合,支援VID播放、加密播放、清晰度切換、安全下載、邊播邊快取等業務相關性的功能,同時,阿里雲播放器還提供一系列業務元件,包括已經推出的UI元件,和即將提供的彈幕元件、分享元件、紅包元件、廣告元件等。這幾個模組化的劃分,滿足了個性化和業務化的各種場景需求。

我們再來看看web端的產品架構,也就是Flash、H5的層次結構。在最底層,其實是一個H5的原生標籤,阿里雲在這裡封裝了一個基礎的H5播放器,在此之上,根據不同業務場景,做了不同播放器型別的劃分。在最上面一層,提供了自適應選擇播放器的功能,當用戶的視訊源過來的時候,可以根據終端型別、平臺型別等資訊自動選擇最佳的播放器。

播放器所支撐的兩大業務包括視訊點播和視訊直播,視訊點播包括音視訊採集、合成、上傳、轉碼、媒資管理、分發及視訊播放等一系列的功能,而視訊直播是基於CDN和MTS所構建的直播平臺,需要為使用者提供低延時、低卡頓與視訊秒開等一系列能力。這兩種業務場景中,視訊播放都作為最貼近觀眾的一環存在,提供最直觀的極致體驗。下面我們介紹以下這兩種場景中,阿里雲播放器都是如何應用的。

_1

播放器在點播服務中的應用

視訊播放器在點播服務中,經過和雲端服務的高度融合,實現了以下功能:

  • 加密播放

在獨播劇、教育、金融等業務場景中,保護視訊內容的安全非常重要,播放器通過視訊加密轉碼和解密播放的過程,可對視訊內容本身做進一步的安全保護,有效保護視訊版權。

實現原理是業務方將視訊上傳到阿里雲的伺服器上的時候,可以配置加密轉碼,轉碼出來的視訊是經過加密的,想要實現播放的話,需要通過業務授權、獲取加密金鑰來進行資料解密。這個方案的優勢是服務端採用信封加密技術,傳輸不是直接的明文傳輸,比其他方案更加安全,同時只需要一個加密開關,播放器開發者無需關心特殊邏輯,傳入相關引數即可,所以易用性極強,成本極底。

  • 離線下載

離線下載是將視訊資源下載到本地,在沒有網路的情況下實現播放,其實這個功能很常見,阿里雲播放器是在基礎能力之上提供了更多屬性。它可以支援安全下載,把加密的視訊快取在本地,對它進行重新加密,與APP進行繫結,即使被拷貝走了也無法播放。並且支援斷點下載和並行下載,當異常中斷後,再次啟動可以繼續上次下載,節省了C端使用者的流量和時間。另外,開發者可以在控制檯靈活配置是否離線下載某個視訊,或者是否禁止視訊離線下載,靈活控制視訊資源等情況。

  • 邊播邊快取

對於使用者來說,非常關心的是流量成本。阿里雲播放器支援邊播邊快取功能,當用戶一次觀看後視訊會快取到本地,重複觀看時,使用者無需再次消耗流量。另外,使用者可以靈活配置快取和自動管理快取目錄。在短視訊場景中十分常用。

  • 變速播放

阿里雲播放器實現了變速的同時聲調不改變,保持音視訊同步。在視訊點播播放過程中,可以支援0.5x-2x的變速播放的動態配置,對直播場景,也能夠自動判定。可以根據使用者的興趣和喜好來控制視訊播放速度,比如在教育視訊中,使用者可以對感興趣的地方慢速播放,對不感興趣的內容快速跳過。

  • UI播放器

阿里雲提供了一整套UI的播放器SDK,能夠滿足使用者快速上線,整個播放的邏輯已經固化在UI之中,比如首屏、標題、進度條、全屏、鎖屏、清晰度切換、手勢控制等功能,它是一個完整的播放器,使用者只需要呼叫整個VIEW的顯示,將檢視貼在APP上,就可以簡單、快速地實現播放功能了。

  • 國際化多語言

播放器SDK也逐步走向海外,通過配置實現多語言版本。首先,它可以根據使用者系統的語言自動適配選擇播放器SDK的語言,其次,它可以通過新增配置檔案,無需修改SDK,就靈活切換語言版本,最後,播放器SDK也支援Android、iOS、Flash、H5等多個平臺的國際化多語言的需求。

播放器在直播服務中的應用

整個視訊直播是通過直播SDK將音視訊推流,到大規模分散式流媒體實時轉碼,再到CDN內容高效分發,最終到達視訊直播終端播放的流程。我們需要為使用者提供的是便捷接入、高清流程、低延遲、高併發的整套服務,其中播放器需要實現首幀秒開、低延時、低卡頓、超時重連等等的功能,才能讓直播服務變得完整、流暢。視訊播放器在直播服務中實現了以下功能:

  • 首幀秒開

在優化之前,播放器拿到解碼後的資料,是需要經過一個音視訊同步等待,下載一定的資料才能看到視訊的。在進行了一系列優化之後,拿到資料之後,阿里雲先對第一幀進行解碼出來,省去了緩衝的時間,使用者可以直接看到,從而實現了秒開的效果,提升了使用者體驗。

  • 低延時策略

當直播中網路抖動或其他因素導致延時很大的情況下,播放器SDK也要配合進行處理。在阿里雲播放器中提供了一個引數,用來控制播放端延時的大小。播放器中的下載快取區有一定的快取視訊,我們將快取視訊的長度和使用者延時的長度進行對比,當快取視訊長度超過了使用者延時長度的時候,採取動態丟幀策略,找到快取區中最後一幀,將之前的幀丟棄,從而控制了延時長度,確保了終端觀看直播的效果。

除了以上技術亮點,阿里雲播放器SDK基礎功能也是十分完備的,包括播放控制(開始結束、恢復暫停,重播,自動播放,Seek),診斷工具(環境診斷、網路診斷、切換播放器診斷),音量/亮度調節,UI設定(封面、水印、面板)等,另外,也有一些個性化功能正在規劃開發中,包括彈幕、截圖gif、進度條打點、VR全景播放、貼片廣告、投屏等等。

_2

同時,阿里雲播放器SDK也可以聯動短視訊SDK、上傳SDK、視訊點播、視訊直播和OSS、CDN等產品,形成不同的產品組合。使用者可以像搭積木一樣,根據自己的業務場景選擇不同的服務,一站式搭建自己的視訊業務。

隨著阿里雲視訊點播、直播的業務不斷壯大,阿里雲播放器SDK也已經為眾多教育、社交、視訊、遊戲、新聞行業客戶服務,我們希望能夠提供易用、穩定、強大的視訊服務,為更多極致的使用者體驗努力。

原文連結:https://yq.aliyun.com/articles/229957