手機端與平臺之間的視頻直播功能,主要通過集成多種開源視頻框架以及採購第三方視頻直播伺服器產品來實現預定業務需求。視頻直播對話功能的實現,主要經歷了三個階段:利用開源視頻框架實現視頻直播、採購第三方視頻伺服器實現視頻直播、系統平臺集成開源框架實現視頻互播。 圖1.視頻互播邏輯框架 1 利用開源視頻框架 ...
手機端與平臺之間的視頻直播功能,主要通過集成多種開源視頻框架以及採購第三方視頻直播伺服器產品來實現預定業務需求。視頻直播對話功能的實現,主要經歷了三個階段:利用開源視頻框架實現視頻直播、採購第三方視頻伺服器實現視頻直播、系統平臺集成開源框架實現視頻互播。
圖1.視頻互播邏輯框架
1 利用開源視頻框架實現視頻直播
首先,視頻流轉播需要獨立伺服器軟體構建視頻流轉播通道,經過框架調研與分析,我們選擇SRS伺服器軟體作為視頻轉播伺服器軟體,而SRS是基於Linux操作系統的伺服器軟體。通過配置搭建CentOS伺服器虛擬機作為SRS軟體的基礎系統環境,再安裝配置開源SRS流媒體伺服器軟體作為推流和播流的服務軟體,為視頻直播模塊的開發提供基礎的測試環境。流媒體伺服器(SRS)在視頻流播放的過程中,起到建立視頻流通道的作用,每個唯一的URL地址代表一個視頻流通道,推流和拉流都是針對該視頻流通道的操作。流媒體伺服器同時可以擔負起上千條視頻流通道轉發操作。
其次,手機端視頻直播客戶端採用開源的主流yaesa框架,實現了較好視頻推流效果。依據業務需求把yaesa推流模塊集成封裝,順利合併到原有的Android系統框架中,完成android客戶端的視頻推流功能,將rtmp格式視頻流推送到流媒體伺服器(SRS)的視頻流通道地址。
再次,系統平臺的視頻畫面播放功能採用video.js播放框架實現,video.js是基於html5的網路視頻播放器,根據指定的視頻流通道地址從流媒體伺服器自動拉取rtmp格式視頻流,並播放實時的視頻畫面。Web頁面中嵌入多個video控制項對象,從多個視頻流通道讀取視頻流,實現了多視頻直播畫面視窗效果。
2 採購第三方視頻伺服器實現視頻直播
為了保障視頻流轉發過程的穩定性,從硬體廠商採購了第三方視頻伺服器TFMS,包含硬體設備和流媒體伺服器軟體兩個部分,替換開源流媒體伺服器軟體SRS產品,其發揮的視頻流轉發作用與SRS是一樣。
對於系統功能實現來說,無需新增開發工作量,只需要修改視頻流通道地址url即可實現流媒體伺服器的切換。
3 系統平臺集成開源框架實現視頻互播
上述第一階段實現了視頻流從手機端到瀏覽器端的單向傳播。根據業務需求的深入,需要再實現視頻流從瀏覽器端到手機端的單向傳播,構建兩條雙向視頻流通道,從而達到視頻播放互動對話的效果。
技術實現上,需要兩個方面的技術準備。瀏覽器集成插件從攝像頭和麥克風獲取視頻流和聲音,並推流到指定的視頻流通道url;手機端集成拉流框架,從指定視頻流通道url拉取視頻流和聲音,並播流到播放視窗控制項中。
系統平臺的推流插件方面,通過市場產品調研和比較,選擇了NodeMediaClient Web推流框架,該框架基於flash實現了連接PC的Camera和microphone硬體設備埠,直接獲取Camera視頻流和microphone聲音,並以rtmp格式把視頻流推送到流媒體伺服器的指定視頻流通道url。
手機端採用vitamio播流框架,從指定的視頻流通道url拉取視頻流,併在手機端彈出視頻播放的浮動視窗,該視窗中實時播放拉取的rtmp格式視頻流播放,從而完成從瀏覽器端到手機端的視頻流的推流和拉流過程。
參考文獻
1 https://github.com/ossrs/srs;
2 https://github.com/illuspas/NodeMediaClient-Web;
3 https://www.cnblogs.com/xiaoniuzai/p/7129036.html;
4 https://www.cnblogs.com/endv/p/7487685.html;
5 http://www.jq22.com/jquery-info404;