Android屏幕共享與直播-初識流媒體服務器

這是我參與8月更文挑戰的第10天,活動詳情查看:8月更文挑戰git

Android屏幕共享與直播-初識流媒體服務器

隨着短視頻的火爆,手機端的直播也愈來愈流行,某音某手的催生下,不少app中也加入了直播功能。按產品經理的話來講:有沒有人看是一方面,可是你的有。 因而乎苦逼的程序員在威逼利誘下苦苦的啃着流媒體等從未接觸過的字眼。程序員

1、效果gif

1.gif

2、屏幕共享與直播模型

graph LR

PC[PC] -- 推流 --> server[流媒體服務器]

Android[Android] -- 推流 --> server[流媒體服務器]

IOS[IOS] -- 推流 --> server[流媒體服務器]

server -- 播放 --> web[web]

server -- 播放 --> Android1[Android]

server -- 播放 --> IOS1[IOS]

3、流媒體的組成

流媒體並非單獨的一門技術,而是一套網絡傳輸和音視頻編解碼的解決方案。github

若是再詳細一些,它能夠分爲如下部分:web

  • 網絡傳輸 socket技術瀏覽器

  • 協議層 rtmp服務器

  • 封裝層 flvmarkdown

  • 編解碼 h264 aac網絡

能夠說上面隨便提到的技術對開發者來講都是難點!app

那麼咱們應該怎麼辦?socket

隨着直播愈來愈火,相應的直播解決方案也應運而生。

若是app上不是專門作直播,只是須要有直播功能,建議使用第三方平臺的解決方案,不少大廠都有了一整套的解決方案,爲了不廣告嫌疑,這裏我就不推薦了,有興趣你們自行搜索看看。

接着一款開源的流媒體的搭建 - Red5

4、應用場景

我研究過一個現象,使用某遠程軟件,局域網中使用Android手機控制Windows,畫面不復雜時,居然能夠達到20ms以內,可把我驚呆了。畢竟編解碼速度加上網絡的速度傳輸,可能到達了極限。

我後來嘗試過Android設置之間進行屏幕共享,使用硬編碼硬解碼能夠達到100ms,並以爲沒有思路能夠再優化了。

因此某軟件確實牛啊牛啊!

這樣再思考一下。

若是對穩定性高實時性要求不那麼高的場景,可使用流媒體,好比直播。

若是對實時性要求高,可使用點對點技術,好比無紙化會議、遠程控制、遠程測試平臺。

5、Red5流媒體的搭建

5.1 下載

官方地址:github.com/Red5/red5-s…

5.2 安裝並配置環境變量

  1. 安裝以前須要配置jdk的環境變量。

  2. 下載後移動red5文件夾到某個目錄

  3. 配置red5的環境變量。

添加變量名:red5_home

變量值:E:\red5-server

添加變量名:ClassPath

變量值:.(不配置此變量,或者此變動的值不是「.」,red5啓動的過程會拋異常)

5.3 啓動與驗證

  1. 到red5目錄下,雙擊「red5.bat」文件,啓動red5

  2. 在瀏覽器中輸入http://localhost:5080/,可成功打開,表示red5部署成功。如圖

2.png

5.4 更改端口

  1. 找到red5-server\conf\red5.properties文件,進行編輯

  2. http.host、http.port 對應 可訪問的地址和端口(無需求可不更改)

  3. rtmp.host、rtmp.port 對應推送流的地址和端口

如圖:

3.png

此時,一個簡單的流媒體服務器已經搭建完成。咱們再使用Android的app進行推流或者播放就能夠了。

相關文章
相關標籤/搜索