Ubuntu 14.04 64bit上编译安装MonaServer并测试
生活随笔
收集整理的這篇文章主要介紹了
Ubuntu 14.04 64bit上编译安装MonaServer并测试
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.安裝依賴和要求
MonaServer基于C++ 11編寫, 比如會用到std::thread, std::unique_ptr, 要求GCC版本至少為4.8.2
對于Ubuntu 14.04.2來說, 這是滿足的
另外依賴OpenSSL和LuaJIT庫
sudo apt-get install libssl-dev
LuaJIT采用源碼安裝方式, 官網地址
http://luajit.org/download.html
推薦從GitHub上面下載最新源碼安裝,master就是當前穩定版分支,當前是LuaJIT-2.0.3
git clone http://luajit.org/git/luajit-2.0.git
我發現git資源下載失敗,就改為2.0.3版本的源碼包下載
wget http://luajit.org/download/LuaJIT-2.0.3.tar.gz
tar zxf LuaJIT-2.0.3.tar.gz
cd LuaJIT-2.0.3
make
sudo make install
2.下載源碼編譯
git clone https://github.com/MonaSolutions/MonaServer
cd MonaServer
make
如果編譯出錯, 使用下面的命令清除
make clean
編譯完成后,使用
tree -L 2
3.配置
源碼中沒有發現配置文件MonaServer.ini, 將會使用默認值. 我們也可以在安裝目錄手動生成一個配置文件MonaServer.ini
MonaServer.ini中配置項解釋:
host: clients和other servers看到的域名或是ip
socketBufferSize: socket接收和發送緩沖區字節大小
threads: Mona線程池線程個數, 通常等于或是大于CPU的virtual or physic core數, 默認會自動探測CPU核數
[application]
dir:包含data和www的目錄
[servers]
port:接收其它incoming Servers連接的端口, 否則無法與其它Servers建立連接.注意Servers之間的連接是unencrypted TCP方式, 該端口應該在防火墻內部
targets: 啟動時要連接的MonaServer地址, 分號分隔, 每10秒建立一次連接, url中的query部分包含token,比如
targets=192.168.0.2:1936?name=master&arg=val;192.168.0.3:1936
將會生成server對象的動態性質server.name,server.arg
[RTMFP]
port: 偵聽incoming RTMFP request的端口,默認1935
keepaliveServer: servers之間keepalive包周期性發送的時間間隔(單位是秒),默認15s, 5s-255s都是合法的
[RTMP]
port: 偵聽incoming RTMP request的端口,默認1935
[HTTP]
port: 偵聽incoming HTTP request的端口,默認80
timeout: 當沒有數據接收時,服務器kill掉所在connection的最長時間, 默認7秒
index: HTTP協議中默認的index文件名, 假如指定, 每個connection將被redirect到此index文件
[WebSocket]
timeout: 當沒有數據接收時,服務器kill掉所在connection的最長時間, 默認120秒
[logs]
directory: 寫日志文件的目錄,默認MonaServer/logs
name: 日志文件名稱, 默認log
rotation: 在logs目錄下存放日志文件個數
下面是MonaServer.ini的一個樣本
;MonaServer.ini
socketBufferSize = 114688
[RTMFP]
port = 1985
keepAlivePeer = 10
keepAliveServer = 15
[logs]
name=log
directory=C:/MonaServer/logs
4.啟動
MonaServer包含一些啟動參數, 命令行選項僅用作開發和測試情況下, 查看完整的啟動參數, 使用
sudo ./MonaServer --daemon [--pidfile=/var/run/MonaServer.pid]
下面以命令行方式啟動MonaServer:
sudo ./MonaServer --pidfile=/tmp/MonaServer.pid
Flash client使用經典的NetConnection方式連接MonaServer
_netConnection.connect("rtmfp://localhost/");
端口默認1935, 如果你在MonaServer.ini另有配置,請添加在localhost之后
下面的路徑參數允許你連接到要有的Server Application
_netConnection.connect("rtmfp://localhost/myApplication");
下面我們打算測試MonaServer的功能, 按照MonaServer/FunctionalTests/README.txt的提示, 我們在可執行程序所在目錄下面創建兩個子目錄www和data, 創建相應的符號鏈接
cd /home/taoyx/program/MonaServer/MonaServer
mkdir -p www
mkdir -p data
ln -s /home/taoyx/program/MonaServer/FunctionalTests/www/FunctionalTests? /home/taoyx/program/MonaServer/MonaServer/www/FunctionalTests
ln -s /home/taoyx/program/MonaServer/FunctionalTests/data/FunctionalTests? /home/taoyx/program/MonaServer/MonaServer/data/FunctionalTests
下面啟動MonaServer:
http://localhost/FunctionalTests/FunctionalTests.html
每次點擊一個測試項目,運行完后,再選擇下一個測試項目,再繼續測試.目前發現后面的rtmfp等無法測試通過,需要研究源碼,待后續研究.
[1].http://blog.chinaunix.net/uid-11344913-id-4976154.html
[2].http://bbs.chinaffmpeg.com/forum.php?mod=viewthread&tid=254&extra=
MonaServer基于C++ 11編寫, 比如會用到std::thread, std::unique_ptr, 要求GCC版本至少為4.8.2
對于Ubuntu 14.04.2來說, 這是滿足的
另外依賴OpenSSL和LuaJIT庫
sudo apt-get install libssl-dev
LuaJIT采用源碼安裝方式, 官網地址
http://luajit.org/download.html
推薦從GitHub上面下載最新源碼安裝,master就是當前穩定版分支,當前是LuaJIT-2.0.3
git clone http://luajit.org/git/luajit-2.0.git
我發現git資源下載失敗,就改為2.0.3版本的源碼包下載
wget http://luajit.org/download/LuaJIT-2.0.3.tar.gz
tar zxf LuaJIT-2.0.3.tar.gz
cd LuaJIT-2.0.3
make
sudo make install
2.下載源碼編譯
git clone https://github.com/MonaSolutions/MonaServer
cd MonaServer
make
如果編譯出錯, 使用下面的命令清除
make clean
編譯完成后,使用
tree -L 2
我們會看到如下目錄結構
我們看到除了生成可執行文件MonaServer以外, 各個目錄下面會生成一個tmp臨時目錄用來存放編譯生成的中間文件*.o, 最重要的目錄是MonaServer, 另兩個目錄MonaBase和MonaCore僅是提供動態庫調用.
3.配置
源碼中沒有發現配置文件MonaServer.ini, 將會使用默認值. 我們也可以在安裝目錄手動生成一個配置文件MonaServer.ini
MonaServer.ini中配置項解釋:
host: clients和other servers看到的域名或是ip
socketBufferSize: socket接收和發送緩沖區字節大小
threads: Mona線程池線程個數, 通常等于或是大于CPU的virtual or physic core數, 默認會自動探測CPU核數
[application]
dir:包含data和www的目錄
[servers]
port:接收其它incoming Servers連接的端口, 否則無法與其它Servers建立連接.注意Servers之間的連接是unencrypted TCP方式, 該端口應該在防火墻內部
targets: 啟動時要連接的MonaServer地址, 分號分隔, 每10秒建立一次連接, url中的query部分包含token,比如
targets=192.168.0.2:1936?name=master&arg=val;192.168.0.3:1936
將會生成server對象的動態性質server.name,server.arg
[RTMFP]
port: 偵聽incoming RTMFP request的端口,默認1935
keepaliveServer: servers之間keepalive包周期性發送的時間間隔(單位是秒),默認15s, 5s-255s都是合法的
[RTMP]
port: 偵聽incoming RTMP request的端口,默認1935
[HTTP]
port: 偵聽incoming HTTP request的端口,默認80
timeout: 當沒有數據接收時,服務器kill掉所在connection的最長時間, 默認7秒
index: HTTP協議中默認的index文件名, 假如指定, 每個connection將被redirect到此index文件
[WebSocket]
timeout: 當沒有數據接收時,服務器kill掉所在connection的最長時間, 默認120秒
[logs]
directory: 寫日志文件的目錄,默認MonaServer/logs
name: 日志文件名稱, 默認log
rotation: 在logs目錄下存放日志文件個數
下面是MonaServer.ini的一個樣本
;MonaServer.ini
socketBufferSize = 114688
[RTMFP]
port = 1985
keepAlivePeer = 10
keepAliveServer = 15
[logs]
name=log
directory=C:/MonaServer/logs
4.啟動
MonaServer包含一些啟動參數, 命令行選項僅用作開發和測試情況下, 查看完整的啟動參數, 使用
sudo ./MonaServer -h
sudo ./MonaServer --daemon [--pidfile=/var/run/MonaServer.pid]
下面以命令行方式啟動MonaServer:
sudo ./MonaServer --pidfile=/tmp/MonaServer.pid
Flash client使用經典的NetConnection方式連接MonaServer
_netConnection.connect("rtmfp://localhost/");
端口默認1935, 如果你在MonaServer.ini另有配置,請添加在localhost之后
下面的路徑參數允許你連接到要有的Server Application
_netConnection.connect("rtmfp://localhost/myApplication");
下面我們打算測試MonaServer的功能, 按照MonaServer/FunctionalTests/README.txt的提示, 我們在可執行程序所在目錄下面創建兩個子目錄www和data, 創建相應的符號鏈接
cd /home/taoyx/program/MonaServer/MonaServer
mkdir -p www
mkdir -p data
ln -s /home/taoyx/program/MonaServer/FunctionalTests/www/FunctionalTests? /home/taoyx/program/MonaServer/MonaServer/www/FunctionalTests
ln -s /home/taoyx/program/MonaServer/FunctionalTests/data/FunctionalTests? /home/taoyx/program/MonaServer/MonaServer/data/FunctionalTests
下面啟動MonaServer:
sudo ./MonaServer --pidfile=/tmp/MonaServer.pid
http://localhost/FunctionalTests/FunctionalTests.html
每次點擊一個測試項目,運行完后,再選擇下一個測試項目,再繼續測試.目前發現后面的rtmfp等無法測試通過,需要研究源碼,待后續研究.
最后使用Ctrl+C中斷MonaServer,結束功能性測試.
[1].http://blog.chinaunix.net/uid-11344913-id-4976154.html
[2].http://bbs.chinaffmpeg.com/forum.php?mod=viewthread&tid=254&extra=
[3].http://www.monaserver.ovh/installation.html
總結
以上是生活随笔為你收集整理的Ubuntu 14.04 64bit上编译安装MonaServer并测试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ATS无法缓存QQ音乐的音频文件问题
- 下一篇: 在Ubuntu 14.04 64bit上