1. 程式人生 > >搭建一個網際網路直播運營平臺需要多大的投入?

搭建一個網際網路直播運營平臺需要多大的投入?

檢視原文

2013年以來,隨著移動網際網路的火熱,以及李克強總理2015年提出的“網際網路+”行動戰略,導致最近幾年網路直播的異常火爆,各行各業都在向網際網路靠攏。

本人作為一個在流媒體行業沉浸了十年時間的老程式猿,由於自己所發表的一些技術部落格與解決方案吸引了來自全國各地的網際網路創業者、投資者、傳統行業領袖前來諮詢或者尋求專案合作。

這期間大家都要問的一個共同的問題就是:

搭建一個直播運營平臺需要投入多少資金和人力?

由於大部分跨界人士對網際網路業務平臺都不甚瞭解,所以大部分人對目前火熱的網路直播平臺也是隻看到表像,看不到更實質的部分。因此,很多跨界人士都會片面的認為:建設一個直播運營平臺和建設一個普通的內容展示網站沒有太大區別,前期幾萬元投入足矣,大不了做2款手機端APP再投入十來萬元,整個平臺做下來有20萬就足夠了。然後,讓你按照這個思路去做的時候,往往會發現到頭來20萬都打了水漂,連一個可以用起來的平臺的影子還沒看到。

說實話,倘若我不從事這方面工作,我和這些人的認識也是一樣的。為了免於今後不再重複向人解釋做這種運營平臺為啥前期要有幾百萬元的資金儲備,今天抽出一些閒暇時間和各種想投身於網際網路運營的跨界人士簡單介紹一下。

首先,直播運營網站並不是一個簡單的企業網站或者圖文網站,看下圖可以說明問題。

其次,直播運營平臺不是一個簡單的內容展示網站+兩個移動平臺的APP。

仔細看一下上圖就可知道,網站和APP只是使用者端看到的直觀表像,是使用者層面的東西。你還要知道,在直播網站和移動APP的背後,還有一個強大的底層運營支撐平臺,這些使用者看不到的部分才是整個運營平臺投入資金最多的地方。就像當你使用一款銀行APP的時候,其背後有一個龐大的金融業務支撐平臺在為你服務一樣。

再次,前期把平臺功能建設好之後,後期就不需要再投入更多運營資金了,只管發展業務等著賺錢即可,這個也是嚴重的誤區。

當你前期投入了數百萬或者數千萬資金將整個平臺建設起來以後,你會發現這只是馬拉松賽事的起跑階段。前期做了這麼多充分的準備工作只是為接下來的長跑做一個更好的鋪墊,跑到最後的終點還需要你持續不斷的體力與精力投入,這個投入就是平臺運維、不斷擴容的伺服器資源和頻寬資源,以及更多的內容資源,這些都是需要有源源不斷的現金流來支援,如果運營得當的話,你的產出會遠遠大於你的投入。

下面我從具體技術實現環節來講一下自己的經驗和體會。

首先,底層運營支撐系統的技術實現

1. 流媒體直播內容釋出系統

對於這部分,用行業內的術語來講,就是直播流媒體伺服器系統。這個系統主要實現直播資料流的轉發功能。如下圖所示:


別小看這個直播流媒體伺服器,它是整個運營平臺的核心零件。它的效能與穩定性好壞直接決定者核心業務平臺的穩定性與運營成本。

有人說,網上有各種免費的直播流媒體伺服器軟體,比如Live555、Red5等,還有人說可以用破解版的FMS軟體去做。沒錯,如果用來做實驗性平臺,這些免費的或者開源的系統可以用。但是在決定將其用到自己的運營平臺中使用之前,應該親自去測試一下吧,不然就是真得對自己不負責任。只要測試後你就會發現,這些基本上都是實驗室級的產品,無論在穩定性還是在效能方面都遠遠滿足不了運營級平臺的要求。所以,這就很好地解釋了為啥各大直播運營平臺都投入巨大資金開發自己的流媒體伺服器系統了。倘若這些免費或者破解版的系統可以用這些直播運營平臺(映客、一直播、花椒直播、騰訊雲、阿里雲、樂視雲、優酷、愛奇藝等)投入更大的人力物力去開發自己的流媒體直播平臺就沒有任何意義了。

真正運營級的流媒體伺服器系統,可以達到單機支援5000併發線上使用者,這種核心系統通常都是用C或者C++程式語言實現,具有極高的資源利用效率。

這種功能模組如果要採購第三方的,費用大概在5~10萬元/伺服器授權。

2. 流媒體內容分發系統

用行業內術語來講,這個就是流媒體CDN系統,它能夠在多個節點伺服器之間將直播內容進行自動分發,從而實現一點發布,全網播放,終端使用者可以自動選擇離自己最近的伺服器節點來接收內容,

像優酷網、愛奇藝等專業視訊網站,之所以能夠為全國上億網民提供服務,就是因為它們有一個強大、高效的CDN內容分發網路系統。

這種底層CDN系統通常都是由運營方自己開發實現,如果要購買商業運營級的功能模組,授權費大概在3~6萬元/節點。而且,搭建一個覆蓋全國的內容分發網路平臺,通常要建設數百個內容分發節點,所以投入還是非常可觀的。

3. 直播錄製與點播回看系統

這部分功能實現相對簡單,但是要達到更高的效能指標,還是需要投入很大的精力去做深入開發。通常,做直播錄製功能大家都會想到ffmpeg,做點播回看大家也會想到用Apache或者Nginx,但是對於運營級的服務平臺來說,如果沒有了穩定性保障、沒有了效能上的保障,那麼你會發現運營成本會越來越高,運營效率越來越低,最終因為使用者體驗差,再加上資金鍊告急而迫使你還需要從底層重新開發,或者購買商業版系統來實現。

4. 線上轉碼系統

這部分主要實現節目的多終端適配。當你用PC終端推送一個1080P的高清節目流到流媒體伺服器後,伺服器端需要將其轉換成適合PC、電視機、手機三種螢幕終端播放的不同解析度和碼流的節目。在日常做節目編輯和格式轉換時我們往往會發現,對一個1080P的高清節目做轉碼時,我們用一臺搭載Intel i7處理器的主機做處理都非常消耗資源,而且轉碼速度極慢,對於一個有上千個使用者同時做直播的運營平臺來說,這個壓力就更大了,因此,我們必須要找到一種更合理的解決方案,既要達到更高的轉碼效率,同時還要能合理地控制成本,這樣才能滿足平臺運營的需要。

在行業內,目前最有效的解決方案不是採用大量通用伺服器+轉碼軟體來實現,而是採用GPU這種技術來加速轉碼,同時還需要採用多程序模式來充分利用伺服器的硬體資源,達到更高的價效比。

在這方面,目前成熟的產品主要有北京順景科技的先鋒雲轉碼伺服器和美國Elemental的MediaConvert(當前已經被亞馬遜以5億美元收購)。

經過測試,在價效比方面,我發現國內的產品比國外的要高出一倍。而且國內的技術在全球已經處於領先水平。

5. 使用者鑑權系統

在當前的政策環境下,每個人都需要為自己釋出的內容負法律責任。所以,平臺要為使用者提供一個真實可靠的許可權控制機制,任何人都不能越權釋出違規的內容,也不能假借第三方的名義來發布違規的內容。

這部分功能通常都是平臺自主開發實現的,通常開發週期在2個月左右。

6. 計費、支付與訂單結算系統

直播運營中的各個環節都會和資金流互動,比如主播的線上收入、主播與平臺的資金結算、使用者的充值與消費記錄等。

這是業務支撐系統的核心,並且要求資料必須準確,由於是和自身實際的業務系統相關,所以這個功能模組往往是需要自主開發實現的。

實現方式主要是通過網站指令碼程式語言 + MySQL/Oracle資料庫。

7. 內容稽核系統

當前,國家對內容的合規性稽核要求越來越嚴格,各大直播運營平臺都建立了自己的直播業務內容稽核團隊,通常意義上的內容稽核是在節目製作完成後,而直播運營平臺的內容稽核是在內容的同步生產過程中。這樣,由於內容生產者眾多,每時每刻都會有新的內容產生,這就對線上的內容稽核提出了更高的時效性要求,而且由於稽核的內容資料龐大,單獨依靠人眼去做內容稽核的壓力可想而知,因此我們必須充分利用計算機技術幫助我們做初步的內容合法性識別,機器無法準備判斷的再交給人去處理,這樣可以極大地節省人力成本。

這種系統的開發需要用到影象智慧識別與比對技術,比如google的Tenserflow技術。所以,這種看上去功能簡單的應用,實現起來卻遠沒有想象的那麼簡單。

8. 彈幕與線上互動聊天系統

對技術方面稍有一些瞭解的人可能會主觀的認為,彈幕與線上聊天應用實現起來很簡單,網上也有很多這方面的開源專案,比如Workerman這類軟體,通常都是基於Websocket的長連線來實現文字聊天功能,但是你經過實際搭建測試後會發現,這種聊天伺服器在windows平臺下只能支援256個併發,在Linux下只能支援2000個併發,如果採用這種技術來部署聊天伺服器,則需要部署超大規模的伺服器叢集才能滿足高併發應用的需要,這種方案對於大的運營平臺來說投資巨大,所以極不可取。由於WebSocket協議使用了自定義的二進位制分幀格式,把每個應用訊息切分成一或多個幀進行傳送,所以單個訊息長度通常不能超過256位元組;其次基於Websocket協議實現的聊天伺服器採用指令碼語言來實現,這導致了其永遠無法實現高效能的應用。因此,你可以在網上看到這篇文章“bilibili高併發實時彈幕系統的實現”,它比較詳細地解釋了為何要投入那麼大的開發力量來親自實現高併發的彈幕系統。

實際上,bilibili的運營平臺雖然花那麼大氣力實現了高併發的彈幕和聊天應用,但是它的實現方式也不是最優的,它走了很多彎路,最直接、最高效的實現方式應用通過C++語言自主程式設計來實現,這種不依賴於其它開源產品的實現方式,最直接了當,效率最高,不需要層層呼叫各個開源系統然後再層層包裝。目前,北京順景科技開發的聊天伺服器可以支援數十萬併發連線,並且支援的聊天文字訊息理論上無上限,而這僅僅是基於一臺幾萬元的通用伺服器來完成的。

其次,應用層系統的技術實現

1. PC端推流工具

目前,PC端直播推流工具的開發是一項很複雜的系統工程,它涉及到多方面的專業技術,包括視訊編解碼技術、音訊編解碼技術、影象處理技術、多媒體封裝技術、各種音視訊方面的國際標準與實現、流媒體傳輸協議規範與實現、作業系統原理、C/C++語言程式設計等。

通常,要自主開發一個完整的PC端推流系統,往往要投入3~5年的開發時間。目前,行業內產品級的PC端推流工具主要有以下幾款:


根據以往的專案經驗,做直播運營平臺不建議從零自主開發PC端直播推流工具,耗時太長,這與運營平臺需要快速崛起的運營思路不吻合,最好找一家有實力的技術開發商做OEM定製開發來實現。

2. Android端推流工具

目前,Android端直播推流工具已經有幾個可行的實現案例,比如javavc,yasea等,可以實現軟編碼與硬編碼的RTMP協議推流,開發者也可以根據Android SDK自主開發實現,難度不是特別大。

3. iOS端推流工具

這方面,Apple公司提供了比較好的支援,可以使用iPhone本身整合的GPU進行H.264硬體編碼,實現起來相對容易。

4. Android端播放器

這方面也需要熟悉專業的視音訊編解碼技術和流媒體傳輸協議,以及ffmpeg開源軟體,剛入門的開發團隊也可以參考其它第三方整合好的播放器模組,比如ijkplayer或者OPlyaer。

5. iOS端播放器

主要基於iOS系統本身的VideoToolBox開發,類似的參考專案有SGPlayer,ijkplayer。

6. HTML5播放器

HTML5網頁版播放器,實現起來相對容易,懂HTML5技術開發就比較容易實現,在Android和iOS端通用,此外,網上也有不少HTML5播放器的開源專案可以參考,HTML5作為當前各大主流廠商鼎力支援的標準,肯定是將來的主流。

7. Flash播放器

Flash播放器在最新版的瀏覽器中已經預設不再支援,比如Firefox和Chrome,另外Adobe官方也已經宣佈到2020年停止更新Flash播放器,將來各廠商均會大力支援HTML5標準,因此Flash播放器可以不用重點開發。

8. 使用者認證系統

當前各大直播平臺主要採用線上人臉識別認證,這方面阿里的芝麻信用平臺提供了免費的開放介面,可以基於它做應用層的對接開發。

9. PC端使用者網站

PC端使用者站點模板相對簡單,一般2~3個月即可完成,主要是UI設計要有自己獨特的地方。

10. 移動APP

主要涉及Android和iOS兩個平臺的APP開發,可以採用HTML5方式做UI設計開發,將推流和播放功能整合進去,然後在2個平臺上做封裝,預計每個平臺的APP開發在20萬元左右,2個APP的開發投入在40~50萬元。

再次,物理層服務節點的建設

在前面兩步中,把基礎軟體平臺搭建好之後,整個平臺的主要工作就完成了絕大部分,接下來就是服務節點的部署。根據我個人的經驗,通常在每個節點機房部署5~10臺伺服器,並且在設計上考慮到後期的擴容能力。

在伺服器的選型上,可以選用相同品牌的伺服器,便於後期的維護。設計時一定要考慮到服務的冗餘和容災備份,這點非常關鍵。

通常,每臺硬體伺服器的費用在3萬元左右,一個節點的伺服器部署成本在35萬元左右。

按照這種設計,每個節點可以支援2~3萬個併發使用者,部署3~5個類似的節點即可滿足平臺前期的業務需要。

平臺建設週期方面,根據團隊的能力不同以及採用的技術路線差異,週期在6~10個月之間。

請注意:技術選型與團隊建設很重要,如果有幸找到一個經驗豐富的專案主管,會為你的專案帶來事半功倍的效果。

綜上所述,前期平臺軟體系統開發建設至少需要300萬元以上的資金,再加上硬體與頻寬資源的採購,需要至少500萬元的資金儲備。

和那些動輒需要2千萬投入的大的直播運營平臺相比,我們採用的技術實現路線已經節省了大筆資金,省下來的資金可以投入到後期運營中去,就像前面我說過的一樣,基礎平臺建設好之後只是馬拉松的開始,但是也是產出的開始,後期投入的運營資金會為你帶來源源不斷的現金流,如果你運營得當的話。

看完這些,我想你對這種平臺的建設應該有了一個大體的認識與瞭解,有不同意見或者另有高見歡迎提出建議或指正,但是請勿拍磚,謝謝!