kurento 6.14.0文档翻译 第六章(第四部分)计算机视觉例子(JAVA版) 教程

书接上回:kurento 6.14.0文档翻译 第六章(第三部分)Node.js版 教程

这个web应用包括一个WebRTC环回视频通信,添加了一个有趣的帽子到检测到人脸,这个例子是一个视觉例子和增强现实。

6.2.1Java-WebRTC魔镜

这个web应用继承这个HelloWorld教程,添加一个媒体处理基于WebRTC回环

提示:这个教程已经配置了https,跟道这个教程(file:///features/security.html#configure-java-applications-to-use-https)

你可以配置你的加密应用

对于不耐烦:运行这个例子

首先,你应该在运行这个演示程序前安装kurento媒体服务,请访问安装教程(ps:第四章)了解更多信息。

运行这个应用,你需要克隆这个github项目,当你运行在本主机

git clone https://github.com/Kurento/kurento-tutorial-java.git

cd kurento-tutorial-java/kurento-magic-mirror

git checkout master

mvn -U clean spring-boot:run

这个web应用在端口8443本主机启动,因此在一个符合webrtc浏览器(chrome,firefox)打开这个URL“https://localhost:8443/”。

提示:仅当Kurento Media Server在与本教程相同的机器上启动并运行时,这些说明才有效,你也可以连接远程KMS,可以添加kms.url到这个JVM执行中我们也会用maven,你应该执行以下命令:

mvn -U clean spring-boot:run \      -Dspring-boot.run.jvmArguments="-Dkms.url=ws://{KMS_HOST}:8888/kurento"

理解这个例子:

这个应用计算机视觉和增强现实技术去添加一个有趣的帽子到脸部上方,以下图片显示浏览器的演示程序截图。

这个应用接口(一个HTML web页面)由两个html5 video标签,一个为了摄像视频流(本地客户流)另一个是镜像(远程流),这个摄像视频流发送到KMS服务,处理并作为远程流将其发送回客户端,实现这个,我们需要创建一个媒体管道由以下媒体元素组成。

• WebRtcEndpoint: 提供全工(双向)WebRTC 能力。

FaceOverlay 过滤器: 计算机视觉过滤器侦测到视频流中存在脸,就把一个图片放到这个脸的上方,这个演示程序过滤器配置了一个超级马里奥帽子。

这个web应用,是一个C/S架构,在客户端实现逻辑是javascript,在服务器我们使用了基于spring-boot应用服务使用Kurento Java客户端API去控制kurnto媒体服务,此演示的高层架构是三层的去传输这些实体,两个websocket被使用了,第一个websocket创建客户端与应用服务去实现通用的信令协议,第二个websocket 用于在Kurento Java客户端和Kurento媒体服务器之间执行通信。这个通信使用kurento协议,更多相关的信息可以看第16章相应的文档。

客户端与应用服务相互通信是在websocket之上传输JSON消息,正常的客户端与服务之前的序列是1)客户端开始这个魔镜2)客户端结束这个魔镜

如果有任何异常发送,服务发送一个错误信息到客户端,客户端和应用程序服务器之间的详细消息序列如下图所示:

从这个图你可以看到,在Kurento客户端和服务器之间建立WebRTC会话中需要在客户端和服务器之间交换SDP和ICE候选对象,。特别,这个SDP协商连接浏览器的webrtcpeer和服务器的webrtcendpoint,完整的原码可以在github上找到(https://github.com/Kurento/kurento-tutorial-java/tree/master/kurento-magic-mirror)。

 

应用服务方面

这个演示程序服务器用java语言开发,基于spring-boot框架,嵌入一个Tomcat服务,这样可以更简单的开发和部署

提示:你可以用其它的java技术服务器,比如javaee,sip servlet,play

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值