GitCommit: 269548fa27e0089a8b8278fc4fc781d7f65a939b
runc:
Version: 1.0.0-rc92
GitCommit: ff819c7e9184c13b7c2607fe6c30ae19403a7aff
docker-init:
Version: 0.19.0
GitCommit: de40ad0
- 设置镜像加速,否则下载镜像慢并且时常超时,执行以下命令完成镜像加速的设置并使其生效:
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-‘EOF’
{
“registry-mirrors”: [“https://registry.docker-cn.com”]
}
EOF
systemctl daemon-reload
systemctl restart docker
环境准备完成,接下来安装KMS;
安装KMS
- 执行以下命令即可完成KMS安装,下载镜像有些耗时请耐心等待:
docker run -d \
–name kms \
–network host \
kurento/kurento-media-server:6.15
- 等待控制台输出完成即代表KMS部署和启动完成,查看容器情况:
[root@centos7 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4265203b2baa kurento/kurento-media-server:6.15 “/entrypoint.sh” 3 minutes ago Up 3 minutes (healthy) kms
- 执行以下命令确认响应是否正常:
curl -i -N \
-H “Connection: Upgrade” \
-H “Upgrade: websocket” \
-H “Host: 127.0.0.1:8888” \
-H “Origin: 127.0.0.1” \
http://127.0.0.1:8888/kurento
- 如果控制台响应以下内容,证明KMS已经可以正常服务了:
HTTP/1.1 500 Internal Server Error
Server: WebSocket++/0.7.0
- 需要格外注意:从前面的docker run命令的参数可以发现,KMS容器直接使用了宿主机的网卡(–network host),因此,请不要在Mac电脑上执行本篇的的操作,因为Mac电脑的docker不支持host网络模式;
- 至此,KMS部署完毕(也就是一行命令的事儿),接下来试试如何快速体验官方的多个demo;
关于官方demo
-
Kurento官方分别基于java和nodejs实现了KMS客户端,并基于这两种客户端分别实现了demo;
-
请大家原谅欣宸在nodejs领域的毫无建树,接下来咱们将会体验java版本的demo,重点是如何快速体验这些demo;
-
java版本demo的地址是:https://github.com/Kurento/kurento-tutorial-java ,如下图,功能非常丰富:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210109110740602.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2JvbGluZ19jYXZhbHJ5,size_16,color_FFFFFF,t_70)
demo运行环境准备
-
由于demo是java版本,所以要安装JDK和Maven,下面是安装步骤;
-
请下载Linxu版本的JDK安装包,我这里用的是jdk-8u191-linux-x64.tar.gz,请自行前往Oracle官方下载;
-
将jdk-8u191-linux-x64.tar.gz上传到CentOS电脑上,再执行以下命令,将JDK包解压到合适的位置:
mkdir -p /usr/lib/jvm
tar -C /usr/lib/jvm/ -xzf jdk-8u191-linux-x64.tar.gz
- 在环境变量中写入JDK相关的信息,并使之生效:
echo ‘export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_191’ >> ~/.bashrc
echo ‘export JRE_HOME=${JAVA_HOME}/jre’ >> ~/.bashrc
echo ‘export CLASSPATH=.:
J
A
V
A
H
O
M
E
/
l
i
b
:
{JAVA_HOME}/lib:
JAVAHOME/lib:{JRE_HOME}/lib’ >> ~/.bashrc
echo ‘export PATH=
J
A
V
A
H
O
M
E
/
b
i
n
:
{JAVA_HOME}/bin:
JAVAHOME/bin:PATH’ >> ~/.bashrc
source ~/.bashrc
- 执行java -version看看设置是否已经生效:
[root@centos7 ~]# java -version
java version “1.8.0_191”
Java™ SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot™ 64-Bit Server VM (build 25.191-b12, mixed mode)
- 接下来是maven,执行以下命令,即可完成下载、解压、环境变量设置等所有工作:
wget https://mirrors.bfsu.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
tar -C /usr/local/ -xzf apache-maven-3.6.3-bin.tar.gz
echo ‘export MAVEN_HOME=/usr/local/apache-maven-3.6.3’ >> ~/.bashrc
echo ‘export PATH=
M
A
V
E
N
H
O
M
E
/
b
i
n
:
MAVEN_HOME/bin:
MAVENHOME/bin:PATH’ >> ~/.bashrc
source ~/.bashrc
- 执行mvn -version看看设置是否已经生效:
[root@centos7 ~]# mvn -version
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /usr/local/apache-maven-3.6.3
Java version: 1.8.0_191, vendor: Oracle Corporation, runtime: /usr/lib/jvm/jdk1.8.0_191/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: “linux”, version: “3.10.0-1160.11.1.el7.x86_64”, arch: “amd64”, family: “unix”
- 为了提高二方库的下载速度,建议配置阿里云仓库,打开文件/usr/local/apache-maven-3.6.3/conf/settings.xml,找到mirrors节点,在里面增加以下内容:
nexus-aliyun
central
Nexus aliyun
http://maven.aliyun.com/nexus/content/groups/public
- 保存退出,环境设置已经完成,接下来可以下载demo源码了;
下载官方demo
-
现在咱们把官方demo下载下来,用于稍后的体验;
-
为了确保demo的稳定,就不下载最新代码了,而是已经归档的6.15.0版本,执行以下命令完成下载和解压:
wget https://github.com/Kurento/kurento-tutorial-java/archive/6.15.0.tar.gz
tar -xzf 6.15.0.tar.gz
- 解压后是个名为的文件夹,里面是前面截图中的那些demo:
[root@centos7 ~]# tree -L 1 kurento-tutorial-java-6.15.0/
kurento-tutorial-java-6.15.0/
├── kurento-chroma
├── kurento-crowddetector
├── kurento-group-call
├── kurento-hello-world
├── kurento-hello-world-recording
├── kurento-hello-world-repository
├── kurento-magic-mirror
├── kurento-metadata-example
├── kurento-one2many-call
├── kurento-one2one-call
├── kurento-one2one-call-advanced
├── kurento-one2one-call-recording
├── kurento-platedetector
├── kurento-player
├── kurento-pointerdetector
├── kurento-rtp-receiver
├── kurento-send-data-channel
├── kurento-show-data-channel
├── LICENSE
├── NOTICE
├── pom.xml
└── README.md
18 directories, 4 files
- 至此,运行官方demo前的准备工作已经完成,开始体验精彩的官方demo吧!
运行官方demo前,先梳理一下数据流
- 简单看看当前情况,现在的情况如下图所示,CentoOS电脑上运行着KMS:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210109123600286.png)
- 一旦咱们运行一个demo,就会变成下图的样子:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210109123529833.png)
- 然后,咱们会在另一台电脑上用浏览器访问demo应用的网页,以kure
《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》
【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享
nto-hello-world这个demo为例,基本流程如下(省略了WebRTC的复杂流程):
![在这里插入图片描述](https://img-blog.csdnimg.cn/2021010913000652.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2JvbGluZ19jYXZhbHJ5,size_16,color_FFFFFF,t_70)
- 上面就是一个最基本的demo所涉及的数据流向,当然了,每个demo都有其特殊性,例如直播的demo是多个浏览器连接到KMS,不过整体上与上面的流程图类似;
demo之一:本人本地预览+实时播放
- 进入demo源码的子目录kurento-hello-world,执行以下命令即可启动demo应用,并且,将控制台信息转存到~/kurento-hello-world.log:
nohup mvn -U clean spring-boot:run \
-Dspring-boot.run.jvmArguments="-Dkms.url=ws://localhost:8888/kurento" \
~/kurento-hello-world.log \
2>&1 &
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)