# 前言
kurento 是一个WebRtc 流媒体服务服务器,Kurento媒体服务器提供即时可用的组通信,混合,转码,录制和播放。另外,它还提供一些高级的媒体处理模块,包括有计算机视觉,虚拟现实,透镜等
# 功能
kurento-room 是kurento Media Server 的一个客户端demo,包含Rooms API客户端的实现,并且嵌入了房间服务器以提供群组通信所需的功能(房间的概念)。
kurento-room 是java语言开发的,基于springBoot框架,它是启动kurento-room-server模块的主要应用程序,通过websocket借口公开房间API。
客户端部分使用AngularJS和LumX实现,客户端主要使用room的JavaScript库(KurentoRoom.js)。
此应用程序允许Web客户端:
* 登录一个房间(创建房间,如果它不存在)
* 离开这个房间
* 发布其媒体流
* 静音他们的视频和/或音频
* 进入全屏
* 自动订阅在房间中发布的任何流,并在屏幕上播放(视频)和通过系统扬声器(音频)
* 取消订阅流
* 取消发布媒体
* 向其他对等体发送消息
* 在其发布的视频流上应用或移除媒体过滤器(使用在识别的人脸上添加帽子的面部覆盖过滤器)
* 从可用的缩略图中选择要在浏览器的较大区域中显示的视频源
# 安装Demon
在git clone 完项目后,可以使用Maven在这终端执行。为了保证Demo的正确构建和执行,在构建之前需要先 checkOut出一个稳定的版本(或标签)
$ git clone[https://github.com/Kurento/kurento-room.git](https://github.com/Kurento/kurento-room.git)
$ cd kurento-room
$ git checkout $(git describe --abbrev=0 --tags)
$ cd kurento-room-demo
$ mvn compile exec:java
安装完成 并且没有报错后,在兼容WebRtc的浏览器(谷歌/火狐)中打开下面的url
[https://localhost:8443](https://localhost:8443/)
# 修改Demo的kms服务器地址
需要在配置文件中修改 kms媒体服务器的安装后的可访问的地址
配置文件的地址 kurento-room/kurento-room-demo/src/main/resources/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.35 F,
"offsetYPercent": -1.2 F,
"widthPercent": 1.6 F,
"heightPercent": 1.6 F
//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
}
~~~
}
另外也可以在启动服务的使用 使用命令覆盖配置文件的属性
$ mvn compile exec:java -Dkms.uris=\[\\"ws://192.168.1.99:9001/kurento\\"\]
# 效果图
![](https://img.kancloud.cn/cf/d5/cfd5a4b4294cac547e035c6790de8580_1564x544.png)
![](https://img.kancloud.cn/e0/9d/e09db9f8c3ca61142218af4da780e0dc_1586x793.png)