天天看點

網絡視訊直播系統開發第一課,開發直播APP軟體一定要懂的基礎知識

“網絡視訊直播系統怎麼開發、有什麼難點”這類文章實在是太難寫了,因為開發直播APP軟體需要至少全國使用者能夠跨平台流暢觀看,這其中涉及到的點太多太複雜了,是以講清楚網絡視訊直播系統怎麼開發、開發途中會有什麼難點,可能出現什麼問題,這件事要細水長流,本篇文章先講一些開發直播app軟體需要用的基礎知識,至于其他的,我們日後再談。

一、 網絡視訊直播系統的基礎環境環境

網絡視訊直播系統的開發環境及工具有很多種選擇,在此提供一套常用的方案

1)安卓方面:Android studio 3.3和Java 1.8,開發語言可以用Java,

2)IOS方面: Xcode 9,開發語言可以用OC

3)服務端基礎環境用LAMP(linux ,apache,mysql,php )或者LNMP(linux,ngnix,mysql,php)開發語言可以用PHP和Node

4)緩存服務可以用Redis ,聊天服務用Node

5)開發架構:服務端主要采用兩個,整個PC端是Thinkphp3.2,接口部分是π架構

二、 所需的流媒體傳輸協定

常見的流媒體傳輸協定有RTMP,HLS,HTTP-FLV,RTCP等

RTMP是最常用的流媒體傳輸協定,HLS常用于微信端直播,流媒體傳輸協定相關的文章我之前寫過,大家有需要進一步了解的可以翻看我之前的文章

三、 開發網絡視訊直播系統所需的CDN方面的知識

用這張圖來展示CDN在網絡視訊直播系統中的作用,CDN是内容分發網絡(劃重點,它是網絡),主要作用是用于分發,它由無數個邊緣伺服器連成的,當主播把直播視訊推流到伺服器(圖中的源站)時,主伺服器會将視訊分發給各個邊緣伺服器,邊緣伺服器會根據使用者所在的位置與網絡擁擠程度自動選擇最佳傳輸路徑,保證直播視訊最快被使用者拉流過去。CDN的優勢在于,降低通路延時,并起到分流作用,減輕主伺服器負擔。

四、 開發網絡視訊直播系統所需的編解碼方面的知識

原視訊在不經過壓縮編碼之前是非常大的,會占用很大的帶寬資源,産生不必要的流量費用,并且由于手機機型、廠家、系統版本不同,手機編解碼格式不同,解碼可能會很費勁,對直播視訊進行視訊資料編解碼壓縮,有兩點好處,一是節約帶寬,二是友善解碼,在此過程中,會涉及到的知識有:

1) 常用編碼方式:CBR、VBR

2) 常用視訊格式:H.265、H.264、MPEG-4等

3) 常用音頻格式:G.711μ、AAC、Opus等

3) 通常網絡視訊直播系統中會配備有與編碼器對應的解碼器,友善解碼,降低解碼時間帶來的直播延遲。

以上就是一些關于網絡視訊直播系統開發的基礎知識,當然啦,隻靠這些知識想去開發直播app軟體是很困難的,更多與直播平台建設、直播軟體開發相關的資訊和分析會在以後逐漸放出,敬請期待,需要的朋友請關注我。

聲明:文章為原創内容,轉載請注明出處及作者

繼續閱讀