選擇播放器你需要知道什麼?

2017 年,馬克·扎克伯格接受 CNBC 採訪時說:「視頻是大趨勢,未來我們會在視頻尤其是短視頻上投更多資源。往後五年你會發現,在互聯網大家最樂於傳播的一定是短視頻。」

10 秒時代

圖片描述

現在,似乎沒人會懷疑這個論點了。Vidyard 最新發布的視頻報告更印證了他的論點——短視頻更能吸引觀衆的注意。時長 90 秒以下的視頻播放完成率最高(53%),而 30 分鐘以上的長視頻的完成率只有 10%。

對內容製造者來說殘酷的現實是:大部分觀衆在看視頻時只看了前 10 秒。

圖片描述
當觀衆只有 10 秒鐘決定要不要繼續看這個視頻,播放體驗顯得尤其重要。如果你的視頻首開慢、卡頓,觀衆還有什麼耐心看下去?

影響播放體驗的核心因素

影響用戶播放體驗的核心因素有兩個方面,第一個方面是:網絡傳輸的質量,第二個方面是:播放器的質量。

網絡傳輸的質量主要影響要素是 CDN 和 本地網絡。網絡質量問題固然重要,但這主要是雲服務商和運營商的優化內容。

播放器是離用戶最近的一端,但是在播放器上的技術創新往往最容易被開發者忽略。對有視頻播放的產品來說,一個優秀的播放器 SDK 對提升播放體驗來說事半功倍。

播放器的質量主要體現在兩方面:
對媒體文件的解析和渲染的質量和效率
功能是否豐富,是否能滿足各種應用場景下的需求

一個好的播放器不但要能應對複雜的網絡環境,多樣的編碼算法和封包格式,更需要滿足客戶不同場景下的業務需求,高效高質量播放視頻文件。

在播放器上優化用戶體驗

優秀播放器的標準

從最終觀衆的角度來看,一款優秀播放器應該做到:首開快、不卡頓、功能豐富。
從開發者的角度開看,一款優秀播放器應該做到:跨平臺播放器,包體小,更強的兼容性,更豐富的功能、方便二次開發。

七牛雲播放器架構設計思路

好的架構設計可以讓產品的工程更加靈活、可維護、易讀。這些特點最終會體現在產品的穩定性、靈活性、易用性上。下面我們來說說七牛現有播放器內核的整體架構。
圖片描述

從上圖可以清晰地看到,播放器流程中有諸多功能。這些功能是單獨的組件,他們可以像拼裝玩具一樣,根據業務需要靈活地參與到整個播放過程當中。

如果播放器領域有新技術演進或者新功能需求,可以通過替換上面這些功能模塊靈活組合。比如,H.265 編解碼技術就可以加入到 Decoder 模塊中。七牛雲播放器內核架構如下圖所示。
圖片描述

換一個角度看同樣的過程,我們會發現七牛播放器做了分層設計。所謂分層設計就是控制層和數據層解耦。數據層就像工廠的加工模組,控制層就像總控的流水線。播放器播放過程其實就是一個把數據在不同地方變成另外一種格式的數據,並加以控制的過程。所以我們可以通過數據來驅動各種模塊,反過來獲得自己需要的格式數據。

七牛雲播放器特色功能詳解

七牛完全自主研發新版跨平臺多媒體播放器,可以靈活根據目前市場新興使用場景做針對性優化。
圖片描述

圖片描述

毫秒級首開

我們進行了主流機型在多種環境下的直播流首開測試。測試結果,首開速度控制在 200ms 左右。除了播放器直播流首開速度快以外,在播放點播視頻的首開上也做了深度的優化。

特色功能

1.HLS 自適應碼率切換播放,輕鬆應對終端用戶複雜網絡環境

單碼率視頻無法應對客戶端網絡帶寬環境的變化,七牛雲播放器支持 HLS 協議,讓客戶在不同的網絡帶寬環境下,播放不同碼率、分辨率的視頻,獲得最佳的觀看體驗。

實現原理:
HLS 的實現原理是把整個多媒體文件切成一個個小的基於 HTTP 的資源(Transport Stream 格式的文件),生成一個包含元數據的擴展 M3U (M3U8) Playlist 文件,每次只下載列表中的一些資源,客戶端根據帶寬環境可以選擇不同的的資源。M3U8 是一種播放多媒體列表的文件格式,可以指定一個或多個多媒體資源的位置,並且 M3U8 Playlist 中可以包含多個子 M3U8 文件。

2.獨家自研動態追幀播放策略,有效降低播放延時和卡頓

複雜的網絡抖動是直播最大的挑戰之一,如果採用常規的丟幀或者追幀策略,用戶就會感覺到聲調的異樣。七牛推出的無感知動態追幀策略可以在有效快速追幀的同時,不改變音頻聽感,遇到網絡狀況較差的情況還可以通過調節策略降低卡頓率。

3.DRM 版權保護,防止數字媒體的非法複製

Digital Rights Management,DRM 數字版權保護,可以通過一定的安全算法/協議對視頻進行加密保護,使得視頻在未經授權的條件下即使被非法複製和分發後,也無法正常播放,從而有效地保護了視頻資源,阻止了盜版行爲。 七牛雲 DRM 架構如下圖所示。
圖片描述

4.支持 H.265 播放

H.265 支持是未來音視頻領域的一大趨勢,可以幫助客戶節省將近 40% 的 CDN 帶寬,這些節省的帶寬費用全都是企業的利潤點。但是 H.265 的解碼算法要遠遠比 H.264 複雜,因此播放器解碼 H.265 會有更大的功耗,也對播放器的解碼性能提出了更高的要求。目前七牛播放器已經支持 H.265 軟解。

5.支持軟硬解自動切換

所謂軟解就是用 CPU 對視頻文件進行解碼,而硬解是用 GPU 對視頻文件進行解碼。軟解的好處是比較通用,而硬解的好處就是效率比較高。所以如果要優化播放效率的同時還要兼顧兼容性,就要做到以下兩點:

首先能用 GPU 解碼的就儘量用 GPU 去解碼,這樣就優先做到了高效率;
當有些機型的 GPU 不支持對解碼視頻文件時,又可以自動切回軟解,這樣也解決了硬解不支持的情況下的兼容問題。

目前七牛的播放器同時具備高效和兼容的特點。

6、支持本地緩存、邊下邊播

我們知道網絡傳輸是有一定抖動的,所以播放在線視頻時,播放器一般採取這樣的策略:在網好的時候,多下載一點放到播放的一個隊列裏面暫時存着,網差的時候就可以播放暫存的視頻。這樣整體在線視頻的播放體驗就會比較流暢。這個暫時放視頻內容的地方就是播放器緩存。

邊下邊播其實就是:一邊下載視頻到緩存隊列裏面,一邊直接播放出來。那麼本地緩存功能就多了一個步驟,將緩存裏面已經播放過的視頻存儲到本地的一個 storage 裏面。

總結

2016 年到 2017 年,直播和短視頻產品分別崛起,七牛也提供了完善的直播和短視頻解決方案。同時七牛的播放器產品推出以來一直非常受市場的歡迎,我們在 Github 上收穫了數千 star,運行在諸多知名的應用內。

七牛新版本播放器在原有基礎上進行了深度優化,完全自研了播放器的內核。與目前市面上大多數的播放器相比起來,包體更小、首開更快、功能更加豐富、性能也更加出色,並且提供了極其豐富的接口,方便自定義開發。

關注公衆號七牛雲 瞭解更多信息

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章