實現簡單,邏輯易懂。
在播放器與視頻源服務器之間加了壹層代理服務器,截取視頻播放器發送的請求,根據截取的請求,向網絡服務器請求數據,然後寫到本地。本地代理服務器從文件中讀取數據並發送給播放器進行播放。
在第二次播放時,如果文件中有空洞,無論片段再小,也會保存到片段中,最後當配置數組為{0, length}的時候,length為視頻長度大小,也會存到片段中。
Qzone的日均視頻播放量破十億,其中Android端的總播放量占比超過70%。所以Qzone的實現方案對我們來說很有借鑒意義。
優化主要從如下幾個方面入手:
這裏主要解決的問題是,之前單個的順序存儲方式無法對於播放空洞(非順序播放場景,例如拖動、續播等)進行緩存,降低了緩存率和命中率。
H265是新壹代視頻編碼標準,相比原有使用H264編碼的視頻,具有更高的壓縮比,在畫質近似的前提下,H265編碼的視頻文件體積只有H264的壹半甚至更少,因此,播放H265編碼的視頻能極大減少帶寬消耗。
具體編碼相關內容,請看 直播技術點之編解碼基礎(壹)