1. 程式人生 > >直播源碼如何搭建一個屬於自己的直播平臺?

直播源碼如何搭建一個屬於自己的直播平臺?

直播源碼 直播系統 直播軟件

現在直播非常火爆,可以從PC或手機直播,然後從PC或是手機或是 支持HTML5的瀏覽器 收看。但是,你知道直播平臺後面的技術和實現原理碼?
正好去年過年的時候,一個朋友破解了AirPlay和Chromecast協議,然後開發了一套技術能夠截獲和播放任何手機(iOS或是Android)屏幕上的任何內容。想到的第一個應用是做一個 直播的直播服務 。比如,通過屏幕直播,你可以邀請朋友看你正在看的直播的電影,球賽,演唱會,晚會,不管是免費的還是付費的。當初的想法是將屏幕的內容,通過AirPlay或Chromecast,推送到後臺服務器,然後,受邀的朋友就可以從瀏覽器或是其它視頻播放器觀看了。為此,我們搭建和開發了一個直播平臺,現在把我們實現的過程記錄下來和大家共享。首先,視頻有它的播放協議。原則上,RTSP,RTMP,HTTP都可以做直播和點播但一般做直播用RTSP和RTMP,做點播用HTTP。我們選用的是RTMP協議。RTMP(Real Time Message Protocol/實時信息傳輸協議)是應用層協議,靠底層傳輸層協議(通常是TCP)來保證信息傳輸的可靠性的。在TCP鏈接建立後,RTMP協議也要客戶端和服務器通過“握手”來建立RTMP Connection,然後在Connection上傳輸控制信息。RTMP協議傳輸時會對數據格式化,而實際傳輸的時候為了更好地實現多路復用、分包和信息的公平性
發送端會把Message劃分為帶有Message ID的Chunk,每個Chunk可能是一個單獨的Message也可能是Message的一部分,在接受端會根據Chunk中包含的data的長度,message id和message的長度把chunk還原成完整的Message,從而實現信息的收發。我們看看兩個常用的視頻服務。一個是由客戶端向服務器發起請求推流到服務器,這個就是直播的播放服務.另一個是由客戶端向服務器發起請求從服務器端接受數據,可以多次調用這就是播放服務。RTMP是直播後面的協議,有很多的開源軟件實現了,細節我們不再細說下面,我們看看怎麽搭建後臺服務系統。直播客戶端(後面我們要介紹的OBS)將實時視頻推送到NGINX的RTMP模塊。RTMP模塊會根據配置將視頻流轉換成HLS文件。這時,HLS文件可以使用兩種模式播放。一是點播VOD模式,下載當前時間點可以獲取到所有index文件和ts文件,並播放。這種模式允許部內容,不一定是實時內容。二是Live 模式,實時生成m3u8和ts文件。它的索引文件一直處於動態變化的,播放的時候需要不斷下載index文件,以獲得最新生成的ts文件播放視頻一般來說,實況直播時,會有一些延時。下面,來看一個JS實現的HLS player,嵌入到支持HTML5的瀏覽器就可以播放HLS文件。
基於上面描述的技術和開源系統,我們用PHP實現了一個簡單的支持多用戶的直播平臺。用戶可以註冊,登錄,follow/unfollow,評論,標簽,收看,直播(每個用戶有自己的直播密鑰),等等。直播的精髓都應該討論到了,如果將系統sharding,分層,SOA化,負載均衡,cache,就可以搭建出一個可擴展的大規模的直播平臺。為了讓更多的直播人擁有屬於自己的直播平臺和為每一位直播人打造一個直播夢想作為理念,現在的直播軟件源碼有了更多有趣新穎的功能:遊戲直播間、一對一直播、短視頻、私密直播間、奪寶遊戲等等,支持各種二次開發等等。如果您需要進軍直播市場的直播平臺,建議找我們專業的直播APP源碼服務商為您搭建!

直播源碼如何搭建一個屬於自己的直播平臺?