2024年最新Kurento实战之二:快速部署和体验,Java入门

最后

面试是跳槽涨薪最直接有效的方式,马上金九银十来了,各位做好面试造飞机,工作拧螺丝的准备了吗?

掌握了这些知识点,面试时在候选人中又可以夺目不少,暴击9999点。机会都是留给有准备的人,只有充足的准备,才可能让自己可以在候选人中脱颖而出。

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

http://127.0.0.1:8888/kurento

  1. 如果控制台响应以下内容,证明KMS已经可以正常服务了:

HTTP/1.1 500 Internal Server Error

Server: WebSocket++/0.7.0

  1. 需要格外注意:从前面的docker run命令的参数可以发现,KMS容器直接使用了宿主机的网卡(–network host),因此,请不要在Mac电脑上执行本篇的的操作,因为Mac电脑的docker不支持host网络模式;
  • 至此,KMS部署完毕(也就是一行命令的事儿),接下来试试如何快速体验官方的多个demo;

关于官方demo

  1. Kurento官方分别基于java和nodejs实现了KMS客户端,并基于这两种客户端分别实现了demo;

  2. 请大家原谅欣宸在nodejs领域的毫无建树,接下来咱们将会体验java版本的demo,重点是如何快速体验这些demo;

  3. java版本demo的地址是:https://github.com/Kurento/kurento-tutorial-java ,如下图,功能非常丰富:

在这里插入图片描述

demo运行环境准备

  1. 由于demo是java版本,所以要安装JDK和Maven,下面是安装步骤;

  2. 请下载Linxu版本的JDK安装包,我这里用的是jdk-8u191-linux-x64.tar.gz,请自行前往Oracle官方下载;

  3. 将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

  1. 在环境变量中写入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

  1. 执行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)

  1. 接下来是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

  1. 执行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”

  1. 为了提高二方库的下载速度,建议配置阿里云仓库,打开文件/usr/local/apache-maven-3.6.3/conf/settings.xml,找到mirrors节点,在里面增加以下内容:

nexus-aliyun

central

Nexus aliyun

http://maven.aliyun.com/nexus/content/groups/public

  1. 保存退出,环境设置已经完成,接下来可以下载demo源码了;

下载官方demo

  1. 现在咱们把官方demo下载下来,用于稍后的体验;

  2. 为了确保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

  1. 解压后是个名为的文件夹,里面是前面截图中的那些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前,先梳理一下数据流

  1. 简单看看当前情况,现在的情况如下图所示,CentoOS电脑上运行着KMS:

在这里插入图片描述

  1. 一旦咱们运行一个demo,就会变成下图的样子:

在这里插入图片描述

  1. 然后,咱们会在另一台电脑上用浏览器访问demo应用的网页,以kurento-hello-world这个demo为例,基本流程如下(省略了WebRTC的复杂流程):

在这里插入图片描述

  1. 上面就是一个最基本的demo所涉及的数据流向,当然了,每个demo都有其特殊性,例如直播的demo是多个浏览器连接到KMS,不过整体上与上面的流程图类似;
  • 做了这么多准备工作还没开始运行demo,可能您已经很愤怒了,好吧我不继续逼逼了,咱们立即开始运行demo;

  • 再多说一句:运行浏览器的电脑上请备好摄像头和麦克风,不然很多demo功能无法体验;

demo之一:本人本地预览+实时播放

  1. 进入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 &

  1. 此时开始编译项目kurento-hello-world,会消耗一定时间,可以执行命令tail -f ~/kurento-hello-world.log查看当前进展,如下所示,我这里还在下载二方库:

Downloaded from nexus-aliyun: http://maven.aliyun.com/nexus/content/groups/public/com/jcraft/jsch.agentproxy.jsch/0.0.9/jsch.agentproxy.jsch-0.0.9.jar (0 B at 0 B/s)

Downloading from nexus-aliyun: http://maven.aliyun.com/nexus/content/groups/public/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar

Downloaded from nexus-aliyun: http://maven.aliyun.com/nexus/content/groups/public/org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-6/plexus-interactivity-api-1.0-alpha-6.jar (0 B at 0 B/s)

Downloading from nexus-aliyun: http://maven.aliyun.com/nexus/content/groups/public/org/apache/maven/wagon/wagon-ssh-common/3.3.2/wagon-ssh-common-3.3.2.jar

Progress (1): 1.9 kB

  1. 漫长等待后输入以下信息,标志着demo启动成功:

[INFO] — spring-boot-maven-plugin:2.2.4.RELEASE:run (default-cli) @ kurento-hello-world —

[INFO] Attaching agents: []

.------------------------------------.

| |

| | |/ / _ _ _ ___ _ | | ___ |

| | ’ < || | '/ -) ’ \ _/ _ \ |

| ||__,|| ___|||____/ |

| |

‘------------------------------------’

Kurento Java Tutorial - Hello World

Version 6.15.0

2021-01-09 15:56:15.348 WARN 35812 — [ main] o.s.boot.StartupInfoLogger : InetAddress.getLocalHost().getHostName() took 10012 milliseconds to respond. Please verify your network configuration.

2021-01-09 15:56:25.366 INFO 35812 — [ main] o.k.tutorial.helloworld.Application : Starting Application on centos7 with PID 35812 (/root/kurento-tutorial-java-6.15.0/kurento-hello-world/target/classes started by root in /root/kurento-tutorial-java-6.15.0/kurento-hello-world)

2021-01-09 15:56:25.367 INFO 35812 — [ main] o.k.tutorial.helloworld.Application : No active profile set, falling back to default profiles: default

2021-01-09 15:56:25.984 INFO 35812 — [rbeatExec-e1-t0] o.k.j.c.JsonRpcClientNettyWebSocket : [KurentoClient] Connecting native client

2021-01-09 15:56:25.985 INFO 35812 — [rbeatExec-e1-t0] o.k.j.c.JsonRpcClientNettyWebSocket : [KurentoClient] Creating new NioEventLoopGroup

2021-01-09 15:56:41.079 INFO 35812 — [ntLoopGroup-2-1] o.k.j.c.JsonRpcClientNettyWebSocket : [KurentoClient] Initiating new Netty channel. Will create new handler too!

2021-01-09 15:56:41.140 WARN 35812 — [ main] org.kurento.client.KurentoClient : Connected to KMS in 15142 millis (> 5000 millis)

2021-01-09 15:56:41.704 INFO 35812 — [ main] o.k.tutorial.helloworld.Application : Started Application in 51.601 seconds (JVM running for 51.817)

  1. 我这里CentOS电脑的IP是192.168.133.208,因此用浏览器访问demo的地址是:https://192.168.133.208:8443/ ,即可体验demo的功能,如下图:

在这里插入图片描述

  • 这个服务就让它一直运行吧,接下来咱们继续体验下一个demo;

demo之二:本人本地预览+实时播放(带filter特效)

  1. 马上要体验的demo,其功能和前面的差不多,也是从KMS取得本地的视频数据用来展示,不同的是KMS会对视频做处理,给视频中的人加上一顶帽子;

  2. 进入demo源码的子目录kurento-magic-mirror,在启动此应用之前有个问题要处理:前一个demo已经占用了8443端口,这里就不能再用了,要改;

  3. 打开kurento-magic-mirror目录下的pom.xml文件,找到下图红框位置,这里就是应用端口的值,请改成一个还未占用的值(我这里改成了8444):

在这里插入图片描述

  1. 执行以下命令即可启动demo应用,并且将控制台信息转存到~/kurento-magic-mirror.log:

nohup mvn -U clean spring-boot:run \

-Dspring-boot.run.jvmArguments=“-Dkms.url=ws://localhost:8888/kurento” \

2021年Java中高级面试必备知识点总结

在这个部分总结了2019年到目前为止Java常见面试问题,取其面试核心编写成这份文档笔记,从中分析面试官的心理,摸清面试官的“套路”,可以说搞定90%以上的Java中高级面试没一点难度。

本节总结的内容涵盖了:消息队列、Redis缓存、分库分表、读写分离、设计高并发系统、分布式系统、高可用系统、SpringCloud微服务架构等一系列互联网主流高级技术的知识点。

目录:

(上述只是一个整体目录大纲,每个点里面都有如下所示的详细内容,从面试问题——分析面试官心理——剖析面试题——完美解答的一个过程)

部分内容:

对于每一个做技术的来说,学习是不能停止的,小编把2019年到目前为止Java的核心知识提炼出来了,无论你现在是处于什么阶段,如你所见,这份文档的内容无论是对于你找面试工作还是提升技术广度深度都是完美的。

不想被后浪淘汰的话,赶紧搞起来吧,高清完整版一共是888页,需要的话可以点赞+关注

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

(img-DNmGz2Vj-1715151462266)]

[外链图片转存中…(img-vZnzGRt4-1715151462266)]

[外链图片转存中…(img-Q2wW3BBf-1715151462267)]

对于每一个做技术的来说,学习是不能停止的,小编把2019年到目前为止Java的核心知识提炼出来了,无论你现在是处于什么阶段,如你所见,这份文档的内容无论是对于你找面试工作还是提升技术广度深度都是完美的。

不想被后浪淘汰的话,赶紧搞起来吧,高清完整版一共是888页,需要的话可以点赞+关注

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 11
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kurento的connect方法用于连接两个WebRTC端点(WebRtcEndpoint)。在Kurento中,WebRtcEndpoint是用于处理WebRTC信令和媒体流的核心组件。通过connect方法,可以将一个WebRtcEndpoint的输出连接到另一个WebRtcEndpoint的输入,从而实现媒体流的传输。 在Kurento的官方hello-world示例中,连接的代码位于WebSocket相关的部分。具体来说,通过WebSocket建立连接后,会触发signalIceCandidateFound信号,该信号包含了ICE候选项(IceCandidateFound event)。在这个信号的回调函数中,会将候选项通过socket发送出去。 这个连接的过程是通过调用connect方法实现的。在示例中,通过signalIceCandidateFound.connect方法将回调函数与信号连接起来,当ICE候选项被找到时,回调函数会被触发。在回调函数中,会将候选项通过WebSocket发送出去。 总结起来,Kurento的connect方法用于连接两个WebRtcEndpoint,实现媒体流的传输。在官方hello-world示例中,连接的过程是通过信号和回调函数实现的,当ICE候选项被找到时,会将候选项通过WebSocket发送出去。 #### 引用[.reference_title] - *1* *2* [Kurento实战之四:应用开发指南](https://blog.csdn.net/boling_cavalry/article/details/112504048)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [webrtc入门:10.Kurento流程分析](https://blog.csdn.net/weixin_40425640/article/details/124881576)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值