Kurento Room Demo 教程 (发布)

原创
2017/02/20 11:43
阅读数 1.4K

在满足以下要求的机器上,可以将Kurento Room应用程序安装为系统服务(例如kurento-room-demo)。

本节介绍如何部署(安装,配置和执行)Room Demo应用程序。 我们还提供了一种方法来运行演示,而不诉诸于系统级安装。

** 系统需求 **

  • Ubuntu 14.04

  • Git (to obtain the source code)

  • Java JDK version 8

  • Maven (for building from sources)

  • Bower (which in turn requires Node.js)

curl -sL https://deb.nodesource.com/setup | sudo bash -
sudo apt-get install -y nodejs
npm install -g bower
  • Kurento Media Server 或连接至少有一个正在运行的实例(要按照官方安装指南

Installation procedures

Demo binaries

目前,没有Kurento房间演示的二进制版本。 为了部署一个新的演示服务器,需要从源代码构建它。

$ git clone https://github.com/Kurento/kurento-room.git
$ cd kurento-room
# checkout the latest tag
$ git checkout $(git describe --abbrev=0 --tags)

Build from source

该演示已配置为在Maven构建的打包阶段生成压缩归档。 要获得它,建立kurento-room-demo项目及其所需的模块:

$ cd kurento-room
$ mvn clean package -am -pl kurento-room-demo -DskipTests

现在解压生成的执行二进制文件:

$ cd kurento-room-demo/target
$ unzip kurento-room-demo-6.6.0.zip

未压缩二进制文件的目录结构:

  • bin/ : 包含安装和执行脚本
  • files/ : 演示的可执行文件JAR文件和其他配置文件
  • sysfiles/ : 在作为系统服务安装时使用

Configuration

当以正常的用户权限执行演示时,配置文件kurento-room-demo.conf.json位于文件文件夹中。 当将演示应用程序安装为系统服务时,配置文件将位于/etc/kurento内。

$ cd kurento-room-demo-6.6.0
$ vim files/kurento-room-demo.conf.json
## or ##
$ vim /etc/kurento/kurento-room-demo.conf.json

此文件的默认内容:

{
   "kms": {
      "uris": ["ws://localhost:8888/kurento", "ws://127.0.0.1:8888/kurento"]
   },
   "app": {
      "uri": "https://localhost:8443/"
   },
   "kurento": {
      "client": {
         //milliseconds
         "requestTimeout": 20000
      }
   },
   "demo": {
      //mario-wings.png or wizard.png
      "hatUrl": "mario-wings.png",
      "hatCoords": {
         // mario-wings hat
         "offsetXPercent": -0.35F,
         "offsetYPercent": -1.2F,
         "widthPercent": 1.6F,
         "heightPercent": 1.6F

         //wizard hat
         //"offsetXPercent": -0.2F,
         //"offsetYPercent": -1.35F,
         //"widthPercent": 1.5F,
         //"heightPercent": 1.5F
      },
      "loopback" : {
         "remote": false,
         //matters only when remote is true
         "andLocal": false
      },
      "authRegex": ".*",
      "kmsLimit": 1000
   }
}

具有以下主要含义:

  • kms.uris是一个WebSocket地址数组,用于初始化KurentoClient实例(每个实例代表一个Kurento Media Server)。在默认配置中,对于相同的KMS,应用程序将创建两个KurentoClient对象。这个演示的KurentoClientProvider实现org.kurento.room.demo.FixedNKmsManager)将在循环基础上返回KurentoClient实例,或者,如果用户的名称遵循某个模式,将返回较少加载的实例。模式检查是硬编码的,SLA用户被认为是那些以字符串special(例如specialUser)开头的用户。

  • kurento.client.requestTimeout是一个调整,以防止在重负载(例如很多同行)KMS通信中的超时。超时的默认值为10秒。

  • app.uri是演示应用程序的URL,主要用于构建媒体过滤器(例如帽子过滤器)中使用的图像的URL。此URL必须可从kms.uris中定义的任何KMS访问。

  • demo.hatUrl将用于FaceOverlayFilter的图像设置为在用户按下演示界面中的相应按钮时应用于流媒体。映像的文件名是相对于静态Web资源文件夹img/。

  • demo.hatCoords表示配置覆盖图像所需的参数的JSON编码。我们提供两个帽子图像,mario-wings.png和wizard.png的坐标。

  • demo.loopback.remote如果为true,用户将看到他们自己的视频使用来自服务器的环回流。因此,如果用户在她的视频流上启用帽子过滤器,她将能够在应用过滤器之后可视化最终结果。

  • demo.loopback.andLocal如果为true,除了显示环回媒体之外,客户端接口还将提供原始(和本地)媒体流。

  • demo.authRegex是一个用户名模式,允许创建一个房间,只有当它匹配模式。这是在获取KurentoClient的实例的调用期间完成的,如果指定了模式并且它与名称不匹配,提供程序将抛出异​​常。

  • demo.kmsLimit是可以在KurentoClient中创建的最大管道数。

HTTPS

应用程序使用包含自签名证书的Java密钥库(keystore.jks),该证书位于与JAR可执行文件相同的文件夹中。

密钥库的配置是从典型的application.properties文件读取的,在启动应用程序时由Spring Boot框架读取。 虽然在开发期间可以使用默认名称,但为了安装,我们已将名称更改为kurento-room-demo.properties。 在安装演示之后,可以直接在files/文件夹中或在服务的配置文件夹(/etc/kurento)中进行编辑。

任何更改(如密钥库的名称或密码)都可以直接应用到此文件中。

这些设置由应用程序自动读取(不需要在命令行上)。

server.port: 8443
server.address: 0.0.0.0
server.ssl.key-store: keystore.jks
server.ssl.key-store-password: kurento
server.ssl.keyStoreType: JKS
server.ssl.keyAlias: kurento-selfsigned

为了禁用HTTPS,要删除或重命名文件,或删除包含ssl的那些行,并将server.port的值更改为更合适的值(仅在使用带有SSL的安全代理时才推荐)。

server.address配置嵌入式Tomcat容器绑定到的IP地址(默认值为0.0.0.0,它在所有可用地址上侦听)。 在通过指示回送IP并通过安全代理服务所有连接来保护应用程序时非常有用。

Logging configuration

可以通过编辑文件kurento-room-demo-log4j.properties(也可以在文件文件夹(或用于系统范围安装的/ etc/kurento/)中)来覆盖默认日志配置。

$ cd kurento-room-demo-6.6.0
$ vim files/kurento-room-demo-log4j.properties
## or ##
$ vim /etc/kurento/kurento-room-demo-log4j.properties

在其中,可以设置服务器的输出日志文件的位置,默认位置将是kurento-room-demo-6.6.0 / logs / kurento-room-demo.log(或/ var / log / kurento / kurento -room-demo.log用于系统范围的安装)。

要更改它,请将$ {application.log.file}变量替换为系统上的绝对路径:

log4j.appender.file.File=${application.log.file}
# e.g. -->
log4j.appender.file.File=/home/user/demo.log

Running the application

在构建和解压缩安装文件后,有两个选项用于运行演示应用程序服务器:

  • user-level execution - 不需要额外的安装步骤,可以在解压缩安装程序后立即完成

  • system-level execution - 需要将演示应用程序作为系统服务安装,这样可以在系统重新启动后自动启动

在这两种情况下,应用程序都使用Spring Boot框架在嵌入式Tomcat容器服务器中运行,因此不需要在现有的servlet容器中部署。 如果这是一个要求,则必须对项目的构建配置(Maven)进行修改,以便代替具有依赖关系的JAR,构建过程将生成WAR文件。

Run at user-level

配置好服务器实例后,只需执行启动脚本:

$ cd kurento-room-demo-6.6.0
$ ./bin/start.sh

Run as daemon

首先在构建和解压缩生成的二进制文件后安装演示。 需要sudo权限才能将其安装为服务:

$ cd kurento-room-demo-6.6.0
$ sudo ./bin/install.sh

服务kurento-room-demo将自动启动。

现在,您可以按照上一节中所述配置Room demo服务器,然后重新启动服务。

$ sudo service kurento-room-demo {start|stop|status|restart|reload}

Troubleshooting

对于快速启动和故障排除演示使用以下命令从lib文件夹执行fat jar:

$ cd kurento-room-demo-6.6.0/lib
$ java -jar kurento-room-demo.jar

Version upgrade

要更新到较新版本,请重复安装过程。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部