天天看點

MonaServer 源碼編譯安裝

MonaServer 是Cumulus這個項目衍生出來的新項目,前身Cumulus在github中注明了Cumulus已經比較老,希望使用最新的RTMFP的server的話可以嘗試MonaServer,跟着github中的引導,就到了MonaServer的項目目錄中,看了看Readme之類的說明文檔後,發現MonaServer所支援的功能還是比較多的:

點選(此處)折疊或打開

  1. 1. RTMP 常見的流媒體直播,實時性相對來說還可以
  2. 2. RTMFP 常見的p2p的流媒體直播,實時性相對來說還可以
  3. 3. RTMPE 加密RTMP資料
  4. 4. WebSocket HTML5最近比較火的基于HTTP的Socket通信
  5. 5. HTTP HTTP傳輸的FLV直播,就是HDL或者HLV

MonaServer的編譯要求相對來說比較簡單,環境需求也比較簡單,依賴包:

  1. 1. SSL庫
  2. 2. LUA庫

       依賴環境:

  1. GCC 4.8.x +

       CentOS Linux 6.5 預設的編譯器是4.4.7 編譯的話會提示libstdc++支援的錯誤,是以需要更新GCC編譯器。

       我是用的源碼編譯的GCC,是以,可以再http:/gcc.gnu.org中找到對應的源碼包,在gcc對應下載下傳目錄的裡面可以找到gmp、mpfr、mpc的對應的檔案,編譯安裝即可;

       統一編譯方法:

  1. ./configure –prefix=/usr –libdir=/usr/lib64;make;make install

       接下來編譯gcc

  1. mkdir build;../configure;make;make install

       編譯安裝完GCC之後,在MonaServer目錄中直接編譯即可:

  1. make;make install

       編譯完成之後,會在MonaServer目錄下面看到MonaServer子目錄,裡面生成了一個MonaServer應用程式,

  1. [root@www MonaServer]# pwd
  2. /root/MonaServer/MonaServer
  3. [root@www MonaServer]# ls
  4. logs Makefile MonaServer MonaServer.vcxproj MonaServer.vcxproj.filters sources tmp www
  5. [root@www MonaServer]#

       以及www目錄,

       需要注意的是,如果想使用rtmp,需要先在www目錄下建立一個目錄,以確定可以正常推流,如果想省略這一步,可以修改代碼來完成靈活的支援。

  1. [root@www MonaServer]# mkdir www/myapp
  2. [root@www MonaServer]# ls www
  3. myapp

       通過使用推流工具來進行測試,可以使用OBS或者FMLE:

MonaServer 源碼編譯安裝

然後點選Connect,及可看到MonaServer輸出的log:

  1. [root@www MonaServer]# ./MonaServer
  2. Mona/Protocols.h[68] RTMFP server started on 0.0.0.0:1935 (UDP)
  3. Mona/Protocols.h[68] RTMP server started on 0.0.0.0:1935 (TCP)
  4. Mona/Protocols.h[68] HTTP server started on 0.0.0.0:80 (TCP)
  5. Mona/Protocols.h[68] RTSP server started on 0.0.0.0:554 (TCP)
  6. sources/Server.cpp[137] 1 clients

可以看到log中多出來一條sources/Server.cpp[137] 1 clients

這個時候點Start,可以看到輸出的log:

  1. sources/FlashMainStream.cpp[162] Method 'releaseStream' not found on application /myapp
  2. sources/FlashMainStream.cpp[162] Method 'FCPublish' not found on application /myapp
  3. sources/Publication.cpp[97] Publication gosun started
  4. sources/Publication.cpp[256] Write gosun publication properties
  5. sources/FlashStream.cpp[195] Message 'onFI' unknown on stream 1

這時說明流已經推至MonaServer了,可以通過播放器進行播放确認:

MonaServer 源碼編譯安裝

當播放器連接配接上來時,會看到log如下:

  1. sources/FlashStream.cpp[209] setBufferTime 1000ms on stream 0
  2. sources/Listener.cpp[211] Properties sent to one listener of gosun publicaition
  3. sources/FlashStream.cpp[209] setBufferTime 1000ms on stream 1
  4. sources/Server.cpp[137] 2 clients
  5. sources/Listener.cpp[164] H264 codec infos sent to one listener of gosun publication

RTMP的播放功能是支援了,那麼RTMP轉HTTP的功能如何,同時也可以驗證:

MonaServer 源碼編譯安裝

HTTP的功能同樣可以,看一下server部分的log:

  1. sources/Writer.cpp[57] writeMedia method not supported by this protocol for 03 type

從此RTMP與HTTP的直播輸出功能已經驗證完畢,這是最基本的功能

阿虎追女仔

MonaServer 源碼編譯安裝
MonaServer 源碼編譯安裝
MonaServer 源碼編譯安裝