400-638-8808
|
微信公眾號




穩(wěn)定可靠 永不間斷

海外收發(fā) 暢通無阻

協(xié)同辦公 資源管理

超大郵件 超級功能

智能反垃圾郵件技術
易管理 免維護

前言
現(xiàn)在大大小小的公司,甚至個人開發(fā)者,都想開發(fā)自己的直播網站或App,本文會幫你理清,開發(fā)視頻直播平臺,你需要注意哪些技術要點。
開源WebRTC能做實時視頻直播嗎?
你以為調用幾個Chrome的API就能直播了?
WebRTC用的不是插件,是Chrome自帶的功能,是原生js的API,也沒有什么瀏覽器自帶的插件。獲取圖像信源之后不應該用websocket發(fā)送圖像數據,而是直接用WebRTC的通信相關API發(fā)送圖像和聲音(這套API是同時支持圖像和聲音的)數據。

最后:如果按照這個方法折騰完了,你認為會得到什么結果呢?1人廣播,39人收看,在一臺i3 + 4G + Centos6.4 mini的機器上跑MCU,連續(xù)運行48小時沒有出現(xiàn)問題,CPU的使用率大概在60%左右。跟現(xiàn)在動輒上十萬的直播相比,是不是弱爆了。
所以,別迷信 WebRTC,WebRTC只適合小范圍(8人以內)音視頻會議,不適合做直播。
開發(fā)實時視頻直播需要哪些技術?
自負前端開發(fā)人員會以為:“熟悉HTML5、1個人大約7個工作日內就可以開發(fā)出來了”。面對這樣的想法,只有一句話:少年,謙虛點。

如果你天賦異稟,一個人解決了以上技術問題。那么,你還需要解決傳輸問題。傳輸好壞,也就是視頻是否延遲、卡頓,取決于網絡條件好壞。而公共互利網復雜的網絡環(huán)境就不用說了吧。在家玩游戲不卡,看視頻就卡。聊QQ斗地主無壓力,看視頻就卡。這怎么辦?
解決辦法有3種:
①用CDN加速;
②花錢自己架服務器;
③或者用別人的云服務。
視頻信號從現(xiàn)場出發(fā),到達分散在全國各地的觀眾,需要經過數據中心和各級節(jié)點的緩存加速,一路上馬不停蹄,可以和楊貴妃的荔枝媲美。而信號在一路上各個環(huán)節(jié)所需要的時間總和,就是你看到的延遲。
用CDN加速,可以盡量減少延遲。目前業(yè)內水準來看,視頻延遲都在3-6秒之間。也就是在視頻直播時,你看到的是幾秒以前的畫面。
自己架服務器,如果你部署的數據中心不夠多,那么遇上跨網、跨省的傳輸,還是得用CDN加速。那么為了盡可能降低延遲,你就需要在全國各省市都部署數據中心,來解決跨網、跨省的傳輸。這種解決方案,相較CDN,非常昂貴。
用云服務的話,就是別人把服務器給你架好了,你只要傻瓜式的用就行了。為防止廣告嫌疑,有關實時直播云,現(xiàn)在有很多服務商提供這一塊,具體情況請自行了解哦。
當然,不管用哪種方式,請綜合權衡利弊,找到適合自已的方案就是最好的方案。
下面,開始講,視頻直播的究竟需要哪些環(huán)節(jié),應該如何處理?
開發(fā)實時視頻直播的流程是什么?

- 前期處理:現(xiàn)在直播美顏已經是標配了,80%的主播沒有美顏根本沒法看。美顏算法需要懂圖像處理算法的人,沒有好的開源實現(xiàn),要自己參考論文去研究。算法設計好了還要優(yōu)化,無論你打算用CPU還是GPU優(yōu)化,算法優(yōu)化本身也需要專業(yè)知識支持。GPU雖然性能好,但是也是有功耗的。GPU占用太高會導致手機發(fā)燙,而手機發(fā)燙會導致攝像頭采集掉幀,iPhone6尤其明顯。因為iPhone6的CPU和前置攝像頭很近,在算法開發(fā)、算法優(yōu)化、效果平衡上需要大量的開發(fā)調試工作。而這一切都是需要經驗支撐。
- 編碼:如果你要上720p,肯定要采用硬編碼。軟編碼720p完全沒希望,硬件編碼不靈活。兼容性也有問題。如何適應紛繁復雜的網絡和紛繁復雜的上下行設備?安卓和芯片的坑,開發(fā)過的人都知道。那有人問,要求不高,上軟編碼低分辨率360p行不行?就算上低分辨率,軟編碼還是會讓CPU發(fā)燙,CPU過熱燙到攝像頭,長期發(fā)燙不僅直接反應是費電。既然是手機直播,插著電源和充電器實在說不過去吧。還有,CPU發(fā)燙會降頻,怎么辦?這還是只說性能方面。和前處理只影響圖像質量和功耗不同,視頻編解碼技術還關聯(lián)成本計算和網絡對抗?紤]性能、功耗、成本、網絡這四個之后你編碼的碼率、幀率、分辨率。軟硬件開發(fā)該如何選擇?
- 傳輸:自己做不現(xiàn)實,交給第三方服務商吧。
- 解碼:如果你用硬解碼,一定要做容錯處理,一定要做適配。突然一個crash導致手機重啟不好吧。安卓的硬解碼,不說了。如果你加了網絡目前手機的硬解碼還不一定支撐用軟解碼,功耗發(fā)熱的問題又來了。
- 渲染:為什么手機明明解碼出好多幀數據。就是渲染不出來。為什么畫面就是不同步。
好了,以為完了吧?
還有音頻呢。mic資源被搶占怎么辦?為什么錄音線程老是出問題?音頻的前處理更復雜。什么時候開啟三A引擎噪聲抑制?回聲消除?增益控制?為什么AAC比Opus質量好?什么是aac,he-aac,heaacv2?如何選擇?要不要加混響?播放和錄音模式該如何選擇?如果你想互動回聲消除就要適配N多機型。
以上是媒體模塊,還有信令控制,登錄、鑒權、權限管理、狀態(tài)管理等等,各種應用服務,消息推送,聊天,禮物系統(tǒng),支付系統(tǒng),運營支持系統(tǒng),統(tǒng)計系統(tǒng)等。
后臺還有數據庫,緩存,分布式文件存儲,消息隊列,運維系統(tǒng)等。
小結
以上技術要點的小結,確實能說明開發(fā)一個能用于生產環(huán)境的實時視頻直播平臺確非易事,跟IM里傳統(tǒng)的實時音視頻一樣,這樣的技術都是音視頻編解碼+網絡傳輸技術的綜合應用體,沒有一定的技術積累,確實有很多坎需要邁過去。。。

天下數據視頻直播服務器解決方案請戳:m.51huadong.com/2016/vod.asp
天下數據手機站 關于天下數據 聯(lián)系我們 誠聘英才 付款方式 幫助中心 網站備案 解決方案 域名注冊 網站地圖
天下數據18年專注海外香港服務器、美國服務器、海外云主機、海外vps主機租用托管以及服務器解決方案-做天下最好的IDC服務商
《中華人民共和國增值電信業(yè)務經營許可證》 ISP證:粵ICP備07026347號
朗信天下發(fā)展有限公司(控股)深圳市朗玥科技有限公司(運營)聯(lián)合版權
深圳總部:中國.深圳市南山區(qū)深圳國際創(chuàng)新谷6棟B座10層 香港總部:香港上環(huán)蘇杭街49-51號建安商業(yè)大廈7樓
7×24小時服務熱線:4006388808香港服務電話:+852 67031102
本網站的域名注冊業(yè)務代理北京新網數碼信息技術有限公司的產品