iOS调试技巧首页投稿(暂停使用,暂停投稿)开源工具技巧

Kurento架构

2017-01-05  本文已影响848人  happeace

参考 kurento architecture

架构

信令部分 和 媒体部分

Kurento架构,信令和媒体层

Kurento接口

Kurento模块

插件式的模块, KMS默认使用模块:kms-core, kms-elements, kms-filters。其他增强型的模块如:kms-crowddetector, kms-pointerdetector, kms-chroma, 和 kms-platedetector。
用户可通过自定义模块扩展其功能。

模块构架,可使用内置模块扩展功能,也可开发自定义模块

使用Kurento创建应用

可将展现层放在客户端, 服务层放在服务端, 业务逻辑层放二者之一即可:

核心的两部分交互:媒体协商和媒体交换

一般为了简化客户端,业务逻辑层放在服务端。当然也可以使用如 Kurento JavaScript Client将业务层放在客户端。

客户端、服务端及Kurento的交互

web和多媒体层架构

1. 媒体协商阶段(信令)

如上图所示,在第一阶段,客户端向应用服务请求某种媒体能力,此过程可使用任何协议(http, websocket, SIP等)。

当应用服务接到请求,可以执行其业务逻辑,可包括AAA:认证(Authentication)、授权(Authorization)和计费(Accounting), CDR阶段和web服务调用等

之后,应用服务端根据开发自定义的指令决定如何通过媒体组件连接来创建一个pipeline,一旦KMS创建成功pipeline,应用服务将成功消息发送给客户端,告知怎样以及去哪(How and Where)获取媒体服务。

字啊以上的过程中都没有媒体数据(media data)真正交换, 所有的交互都是在协商媒体交换的问题:什么、何时、何地、怎样(whats hosts wheres and whens)。所以称为协商阶段, 显然此阶段之保护指定协议。

2. 媒体流交换阶段

媒体协商过后, 真正专注于媒体数据的交换。客户端使用在协商阶段获取的信息,向KMS获取媒体数据。

使用Kurento做实时WebRTC应用

Kurento允许浏览器建通过WebRTC建立实时媒体会话。另外,可使用KMS作为不同客户端间交互的媒体代理。所以KMS可以扮演会议桥接(conference bridge (Multi-Conference Unit, MCU))、端到端通信系统(machine-to-machine)、视频呼叫录制系统等( video call recording system)。

如下图,客户端通过SDP暴露自己的媒体嗯嗯管理,因此,应用服务能够实例化恰当的WebRTC端点(endpoint),请求KMS,KMS基于自身的和客户端的媒体能力生成相应的SDP回应, 客户端获取到回应后开始媒体数据交换。总结为下图:

在WebRTC会话中的主要交互

应用开发者可在媒体协商阶段根据需要创建pipeline,如:创建一个WebRTC应用录制客户端音视频,并且在识别到人脸时给戴上一个帽子:

pipeline示例

Kurento设计原则:

上一篇 下一篇

猜你喜欢

热点阅读