Ubuntu 14.04 64bit上编译安装MonaServer并测试

2024-03-18 15:38

本文主要是介绍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

我们会看到如下目录结构

我们看到除了生成可执行文件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


下面以管理员权限启动MonaServer
sudo ./MonaServer --daemon [--pidfile=/var/run/MonaServer.pid]
下面以命令行方式启动MonaServer:
sudo ./MonaServer --pidfile=/tmp/MonaServer.pid



5.测试
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并测试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/822818

相关文章

2025最新版Android Studio安装及组件配置教程(SDK、JDK、Gradle)

《2025最新版AndroidStudio安装及组件配置教程(SDK、JDK、Gradle)》:本文主要介绍2025最新版AndroidStudio安装及组件配置(SDK、JDK、Gradle... 目录原生 android 简介Android Studio必备组件一、Android Studio安装二、A

CPython与PyPy解释器架构的性能测试结果对比

《CPython与PyPy解释器架构的性能测试结果对比》Python解释器的选择对应用程序性能有着决定性影响,CPython以其稳定性和丰富的生态系统著称;而PyPy作为基于JIT(即时编译)技术的替... 目录引言python解释器架构概述CPython架构解析PyPy架构解析架构对比可视化性能基准测试测

前端Visual Studio Code安装配置教程之下载、汉化、常用组件及基本操作

《前端VisualStudioCode安装配置教程之下载、汉化、常用组件及基本操作》VisualStudioCode是微软推出的一个强大的代码编辑器,功能强大,操作简单便捷,还有着良好的用户界面,... 目录一、Visual Studio Code下载二、汉化三、常用组件1、Auto Rename Tag2

Java编译错误java.lang.NoSuchFieldError的解决方案详析

《Java编译错误java.lang.NoSuchFieldError的解决方案详析》java.lang.NoSuchFieldError是Java中的一种运行时错误,:本文主要介绍Java编译错... 目录前言解决方案1. 统一JDK版本环境2. 优化maven-compiler-plugin配置3. 清

GO语言中gox交叉编译的实现

《GO语言中gox交叉编译的实现》本文主要介绍了GO语言中gox交叉编译的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录一、安装二、使用三、遇到的问题1、开启CGO2、修改环境变量最近在工作中使用GO语言进行编码开发,因

win10安装及配置Gradle全过程

《win10安装及配置Gradle全过程》本文详细介绍了Gradle的下载、安装、环境变量配置以及如何修改本地仓库位置,通过这些步骤,用户可以成功安装并配置Gradle,以便进行项目构建... 目录一、Gradle下载1.1、Gradle下载地址1.2、Gradle下载步骤二、Gradle安装步骤2.1、安

在Ubuntu上打不开GitHub的完整解决方法

《在Ubuntu上打不开GitHub的完整解决方法》当你满心欢喜打开Ubuntu准备推送代码时,突然发现终端里的gitpush卡成狗,浏览器里的GitHub页面直接变成Whoathere!警告页面... 目录一、那些年我们遇到的"红色惊叹号"二、三大症状快速诊断症状1:浏览器直接无法访问症状2:终端操作异常

python依赖管理工具UV的安装和使用教程

《python依赖管理工具UV的安装和使用教程》UV是一个用Rust编写的Python包安装和依赖管理工具,比传统工具(如pip)有着更快、更高效的体验,:本文主要介绍python依赖管理工具UV... 目录前言一、命令安装uv二、手动编译安装2.1在archlinux安装uv的依赖工具2.2从github

Ubuntu向多台主机批量传输文件的流程步骤

《Ubuntu向多台主机批量传输文件的流程步骤》:本文主要介绍在Ubuntu中批量传输文件到多台主机的方法,需确保主机互通、用户名密码统一及端口开放,通过安装sshpass工具,准备包含目标主机信... 目录Ubuntu 向多台主机批量传输文件1.安装 sshpass2.准备主机列表文件3.创建一个批处理脚

JDK8(Java Development kit)的安装与配置全过程

《JDK8(JavaDevelopmentkit)的安装与配置全过程》文章简要介绍了Java的核心特点(如跨平台、JVM机制)及JDK/JRE的区别,重点讲解了如何通过配置环境变量(PATH和JA... 目录Java特点JDKJREJDK的下载,安装配置环境变量总结Java特点说起 Java,大家肯定都