天天看點

【雲中沙箱】視訊直播技術淺析與實踐!

作者:鮑天舒  公司:上海駐雲資訊科技有限公司

雲中沙箱實驗,教您如何部署視訊直播平台!

<b></b>

<b>什麼是視訊直播?</b>

       随着網民數量指數級增長,網絡帶寬環境提升,中國網絡視訊市場規模不斷擴張,直播網站如同雨後春筍般大量泉湧。

在表現形式上,視訊直播包括:現場演唱會的直播、新聞釋出會的直播、奧運會的直播、電視劇的直播、個人表演show,學術論壇交流會、各類技術教育訓練等。

在播放形式上,使用者隻要具有一個可以上網的裝置,可以是電腦、手機等,無論在何處隻要網絡環境允許,都可以及時地欣賞到正在直播的節目。

在技術實作上,視訊直播不需要像視訊點播一樣進行分段、轉碼、釋出等一系列步驟,它可以做到節目播放的實時性。

視訊直播流程

視訊直播流程主要分為5個階段:采集;前處理;編碼;推流;分發。

【雲中沙箱】視訊直播技術淺析與實踐!

1.     采集

采集是視訊直播的第一步,通過不同的裝置,采集視訊資訊:

 ios 端:因為軟硬體種類不多,硬體适配性較好,是以,采集起來簡單。

android 端:因為市面上硬體機型非常多,難以找到一個庫适配所有硬體,是以采集起來較為困難。

pc 端:與硬體使用的攝像頭驅動有關,推薦目前市面上最好的pc端開源免費軟體obs。

2.     前處理

現在,主播行業非常火熱,同時也流行着一句話:“80%的主播沒有美顔根本沒法看。”其實,對視訊源進行處理,不僅限于美顔,還有許多其他的處理方法,例如水印,模糊特效等。針對不同的手機系統,提供不同的處理庫:

ios 系統: 目前,比較知名的是gpuimage 這個庫。它提供了豐富端預處理效果,還可以基于這個庫自己寫算法實作更豐富效果。

android 系統:使用android-gpuimage庫(由gpuimage這個庫移植),同時,google官方開源了一個偉大的庫,覆寫了android上面很多多媒體和圖形圖像相關的處理。

3.     編碼

對視訊進行編碼時,主要的難點有2個:處理硬體相容性問題;在高fps、低bitrate和音質畫質之間找到平衡。

ios 系統:硬體相容性較好,可以直接采用硬編。

android 系統:硬編的支援難很多,需要支援各種硬體機型,推薦使用軟編。

4.     推流和轉碼

傳輸涉及到很多端:從主播端到伺服器端,從收流伺服器端到邊緣節點,以及從邊緣節點到觀衆端。

      為了讓主播推上來的流适配各個平台端不同協定,需要在服務端做一些流處理工作,比如轉碼成不同格式支援不同協定,如:rtmp、hls和flv,一路轉多路流來适配各種不同的網絡狀況和不同分辨率的終端裝置。

5.     分發

推流端和分發端,理論上需要支援的并發使用者數應該都是億級的,不過畢竟産生内容的推流端在少數,和消費内容的播放端不是一個量級,但他們對推流穩定性和速度的要求比播放端高很多,這涉及到所有播放端能否看到直播,以及直播端品質如何。

<b>阿裡雲視訊直播技術</b>

<b>      視訊直播服務</b>(livevideo)是基于領先的内容接入與分發網絡和大規模分布式實時轉碼技術打造的音視訊直播平台,提供便捷接入、高清流暢、低延遲、高并發的音視訊直播服務。請參考下圖的視訊直播服務的流程:

【雲中沙箱】視訊直播技術淺析與實踐!

            它具有如下功能特點和優勢:

推/拉流

推流:使用标準的rtmp協定;

拉流:支援rtmp、http-flv、hls協定。

終端裝置

支援android、ios、pc端直播流推送

轉碼

      直播流轉碼,可配置區間為500kbps-2.5mbps,預設變清碼率為 750kbps,高清碼率為1.5mbps;

視訊分辨率,可自定義,預設是标清為480p,高清為640p。

自适應

sdk可根據網絡情況動态調整上行傳輸碼率

分發

500+節點數,覆寫所有省份和主流營銷商

安全

防盜鍊,通過referer跟蹤來源,對來源進行識别和判斷,使用者可以通過配置通路的referer黑白名單來對通路者身份進行識别和過濾,進而限制cdn資源被通路的情況。

url加密,url鑒權功能是通過阿裡雲cdn加速節點與客戶資源站點配合實作的一種更為安全可靠的源站資源防盜方法。

視訊加密,可對碼流進行加密,使用特殊的播放器播放。适合于低内容需要保密的場景。

<b>阿裡雲視訊直播實踐</b>

雲中沙箱(http://lab.aliyunedu.net)提供一個阿裡雲線上自主學習的實驗平台。豐富的實驗場景,可以讓使用者可以快速學習和實踐阿裡雲上各種産品。

雲中沙箱提供兩個視訊直播相關的實驗,大家可以通過實驗的方式,快速掌握視訊直播的基本使用方法:

繼續閱讀