初识Kurento

Kurento Media Server (KMS) is a multimedia server package that can be used to develop advanced video applications for WebRTC platforms

Kurento 是一个多媒体服务器,能用于开发高级视频应用的WebRTC平台。

Kurento使用一个基于JSON-RPC协议开发的Kurento协议,默认支持js和java。三种典型使用场景为:

  1. 直接在WebRTC浏览器使用Kurento JavaScript SDK和KMS连接。(仅推荐用于快速测试和开发,不推荐用于正式产品)
  2. 创建一个Java EE应用服务器,WebRTC浏览器和应用服务器交互,应用服务器和KMS交互。
  3. 创建一个NodeJS应用服务器,WebRTC浏览器和应用服务器交互,应用服务器和KMS交互。


    三种典型交互模式

Kurento设计原则:

  1. 媒体和应用服务分离。
  2. 使用于云部署。
  3. 媒体流水线,增加,减少和调整处理单元来完成功能。
  4. 服务应用化,给外部完整的功能。
  5. 端到端的交互能力。
  6. 完整的媒体流处理能力。
  7. 媒体处理的模块化。
  8. 处理的可审计,监控。
  9. IMS无缝整合。
  10. 透明的媒体代理适配层。

Kurento模块:

  1. 媒体处理单元和媒体流水线(Media Elements and Media Pipelines)
    1. 媒体单元,一个处理媒体流的功能单元。它又可以分为4种类型:
      1. 输入终端(Input Endpoints)
      2. 过滤器(Filters)
      3. 分线器(Hubs)/ 集线器
      4. 输出终端(Output Endpoints)
    2. 媒体流水线(Media Pipeline),媒体处理单元链,像流水线一样处理媒体。
  2. 终端(Endpoint)
    1. WebRTCEndpoint, 是一个输入输出终端,采用WebRTC技术。
    2. RtpEndpoint, 是一个输入输出终端,采用RTP协议,并使用SDP协议协商媒体和建立会话。
    3. HttpPostEndpoint 是一个输入终端,采用HTTP POST接受媒体文件输入。
    4. PlayerEndpoint 是一个输入终端,从文件系统,HTTP URL或者RTSP URL接受文件播放,并且把内容推向媒体流水线(Media Pipeline)。
    5. RecorderEndpoint 是一个输入终端,记录存储媒体。
终端继承图
  1. 过滤器(Filters)

    1. ZBarFilter 检测视频流中的二维码和条形码。如果检测到,就发送一个事件 CodeFoundEvent,客户端可以监听此事件。
    2. FaceOverlayFilter 检测视频流中的脸,并且可以用一个可配置的图片替换。
    3. GstreamerFilter 是一个通用的过滤器,能够把一个 GStreamer 推向媒体流水线。
  2. Hubs

    1. Composite 把多个视频流合并成一个网格状的单个视频流。
    2. DispatcherOneToMany 单个视频流分发。
    3. Dispatcher 路由视频流。
Hubs继承图

你可能感兴趣的:(初识Kurento)