【云中沙箱】视频直播技术浅析与实践!
作者:鮑天舒? 公司:上海駐云信息科技有限公司
云中沙箱,阿里云官方實(shí)驗(yàn)平臺(tái)。網(wǎng)址:http://lab.aliyunedu.net
云中沙箱實(shí)驗(yàn),教您如何部署視頻直播平臺(tái)!
1. “快速部署低延時(shí)直播平臺(tái)之OBS”
2. “快速部署低延時(shí)直播平臺(tái)之FFmpeg”
什么是視頻直播?
?????? 隨著網(wǎng)民數(shù)量指數(shù)級(jí)增長,網(wǎng)絡(luò)帶寬環(huán)境提升,中國網(wǎng)絡(luò)視頻市場規(guī)模不斷擴(kuò)張,直播網(wǎng)站如同雨后春筍般大量泉涌。
在表現(xiàn)形式上,視頻直播包括:現(xiàn)場演唱會(huì)的直播、新聞發(fā)布會(huì)的直播、奧運(yùn)會(huì)的直播、電視劇的直播、個(gè)人表演show,學(xué)術(shù)論壇交流會(huì)、各類技術(shù)培訓(xùn)等。
在播放形式上,用戶只要具有一個(gè)可以上網(wǎng)的設(shè)備,可以是電腦、手機(jī)等,無論在何處只要網(wǎng)絡(luò)環(huán)境允許,都可以及時(shí)地欣賞到正在直播的節(jié)目。
在技術(shù)實(shí)現(xiàn)上,視頻直播不需要像視頻點(diǎn)播一樣進(jìn)行分段、轉(zhuǎn)碼、發(fā)布等一系列步驟,它可以做到節(jié)目播放的實(shí)時(shí)性。
視頻直播流程
視頻直播流程主要分為5個(gè)階段:采集;前處理;編碼;推流;分發(fā)。
1.???? 采集
采集是視頻直播的第一步,通過不同的設(shè)備,采集視頻信息:
- ?iOS 端:因?yàn)檐浻布N類不多,硬件適配性較好,因此,采集起來簡單。
- Android 端:因?yàn)槭忻嫔嫌布C(jī)型非常多,難以找到一個(gè)庫適配所有硬件,因此采集起來較為困難。
- PC 端:與硬件使用的攝像頭驅(qū)動(dòng)有關(guān),推薦目前市面上最好的PC端開源免費(fèi)軟件OBS。
2.???? 前處理
現(xiàn)在,主播行業(yè)非常火熱,同時(shí)也流行著一句話:“80%的主播沒有美顏根本沒法看。”其實(shí),對(duì)視頻源進(jìn)行處理,不僅限于美顏,還有許多其他的處理方法,例如水印,模糊特效等。針對(duì)不同的手機(jī)系統(tǒng),提供不同的處理庫:
- iOS 系統(tǒng): 目前,比較知名的是GPUImage 這個(gè)庫。它提供了豐富端預(yù)處理效果,還可以基于這個(gè)庫自己寫算法實(shí)現(xiàn)更豐富效果。
- Android 系統(tǒng):使用android-gpuimage庫(由GPUImage這個(gè)庫移植),同時(shí),Google官方開源了一個(gè)偉大的庫,覆蓋了Android上面很多多媒體和圖形圖像相關(guān)的處理。
3.???? 編碼
對(duì)視頻進(jìn)行編碼時(shí),主要的難點(diǎn)有2個(gè):處理硬件兼容性問題;在高fps、低bitrate和音質(zhì)畫質(zhì)之間找到平衡。
- iOS 系統(tǒng):硬件兼容性較好,可以直接采用硬編。
- Android 系統(tǒng):硬編的支持難很多,需要支持各種硬件機(jī)型,推薦使用軟編。
4.???? 推流和轉(zhuǎn)碼
傳輸涉及到很多端:從主播端到服務(wù)器端,從收流服務(wù)器端到邊緣節(jié)點(diǎn),以及從邊緣節(jié)點(diǎn)到觀眾端。
????? 為了讓主播推上來的流適配各個(gè)平臺(tái)端不同協(xié)議,需要在服務(wù)端做一些流處理工作,比如轉(zhuǎn)碼成不同格式支持不同協(xié)議,如:RTMP、HLS和FLV,一路轉(zhuǎn)多路流來適配各種不同的網(wǎng)絡(luò)狀況和不同分辨率的終端設(shè)備。
5.???? 分發(fā)
推流端和分發(fā)端,理論上需要支持的并發(fā)用戶數(shù)應(yīng)該都是億級(jí)的,不過畢竟產(chǎn)生內(nèi)容的推流端在少數(shù),和消費(fèi)內(nèi)容的播放端不是一個(gè)量級(jí),但他們對(duì)推流穩(wěn)定性和速度的要求比播放端高很多,這涉及到所有播放端能否看到直播,以及直播端質(zhì)量如何。
阿里云視頻直播技術(shù)
????? 視頻直播服務(wù)(LiveVideo)是基于領(lǐng)先的內(nèi)容接入與分發(fā)網(wǎng)絡(luò)和大規(guī)模分布式實(shí)時(shí)轉(zhuǎn)碼技術(shù)打造的音視頻直播平臺(tái),提供便捷接入、高清流暢、低延遲、高并發(fā)的音視頻直播服務(wù)。請(qǐng)參考下圖的視頻直播服務(wù)的流程:
??????????? 它具有如下功能特點(diǎn)和優(yōu)勢:
- 推/拉流
推流:使用標(biāo)準(zhǔn)的RTMP協(xié)議;
拉流:支持RTMP、HTTP-FLV、HLS協(xié)議。
- 終端設(shè)備
支持Android、iOS、PC端直播流推送
- 轉(zhuǎn)碼
視頻分辨率,可自定義,默認(rèn)是標(biāo)清為480p,高清為640p。
- 自適應(yīng)
SDK可根據(jù)網(wǎng)絡(luò)情況動(dòng)態(tài)調(diào)整上行傳輸碼率
- 分發(fā)
500+節(jié)點(diǎn)數(shù),覆蓋所有省份和主流營銷商
- 安全
防盜鏈,通過referer跟蹤來源,對(duì)來源進(jìn)行識(shí)別和判斷,用戶可以通過配置訪問的referer黑白名單來對(duì)訪問者身份進(jìn)行識(shí)別和過濾,從而限制CDN資源被訪問的情況。
URL加密,URL鑒權(quán)功能是通過阿里云CDN加速節(jié)點(diǎn)與客戶資源站點(diǎn)配合實(shí)現(xiàn)的一種更為安全可靠的源站資源防盜方法。
視頻加密,可對(duì)碼流進(jìn)行加密,使用特殊的播放器播放。適合于低內(nèi)容需要保密的場景。
阿里云視頻直播實(shí)踐
云中沙箱(http://lab.aliyunedu.net)提供一個(gè)阿里云在線自主學(xué)習(xí)的實(shí)驗(yàn)平臺(tái)。豐富的實(shí)驗(yàn)場景,可以讓用戶可以快速學(xué)習(xí)和實(shí)踐阿里云上各種產(chǎn)品。
云中沙箱提供兩個(gè)視頻直播相關(guān)的實(shí)驗(yàn),大家可以通過實(shí)驗(yàn)的方式,快速掌握視頻直播的基本使用方法:
- 快速部署低延時(shí)直播平臺(tái)之OBS:通過PC端優(yōu)秀的開源軟OBS,將攝像頭采集的視頻信息推送到阿里云視頻直播服務(wù),實(shí)現(xiàn)在線視頻直播功能。
網(wǎng)址:https://edu.cloudcare.cn/courses/cd3fa99dc3784a64805b4584b8aa4cdf/detail
- 快速部署低延時(shí)直播平臺(tái)之FFmpeg:通過PC端的FFmpeg軟件,將本地存儲(chǔ)的視頻源推送到阿里云視頻直播服務(wù),實(shí)現(xiàn)在線視頻直播。
網(wǎng)址:https://edu.cloudcare.cn/courses/86202d2132c841369a4ec1b258683851/detail
總結(jié)
以上是生活随笔為你收集整理的【云中沙箱】视频直播技术浅析与实践!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Redis中bitmap的妙用
- 下一篇: Qt Charts基本组成