1.Kurento是什么
1.1 简介
Kurento Media Server(KMS)是一个多媒体服务器包,是一个从零开始创建WebRTC应用程序的底层平台。提供WebRTC和RTP发送器和接收器、音频/视频混合器、媒体录制等构建块。
官网:Writing Kurento Applications — Kurento 7.0-dev documentation
1.2 内置模块(功能)
Kurento 提供的一些开箱即用的媒体元素
-
WebRtcEndpoint 是一个输入输出终端,采用WebRTC技术
-
RtpEndpoint 是一个输入输出终端,采用RTP协议,并使用SDP协议协商媒体和建立会话。
-
HttpPostEndpoint 是一个输入终端,采用HTTP POST接受媒体文件输入
-
PlayerEndpoint 是一个输入终端,从文件系统,HTTP URL或者RTSP URL接受文件播放,并且把内容推向媒体流水线(Media Pipeline)
-
RecorderEndpoint 是一个输入终端,可以将媒体流存储到本地或远程文件系统中
-
ZBarFilter 检测视频流中的二维码和条形码。如果检测到,就发送一个事件 CodeFoundEvent,客户端可以监听此事件。
-
FaceOverlayFilter是一个简单的计算机视觉示例,它检测视频流上的人脸,并在其上添加覆盖图像
-
GstreamerFilter 是一个通用的过滤器,能够把一个 GStreamer 推向媒体流水线。
-
Composite 把多个视频流合并成一个网格状的单个视频流。 (比较耗内存)
-
DispatcherOneToMany 单个视频流分发
-
Dispatcher 路由视频流。
-
ChromaFilter 色度过滤器 可设置背景
-
Crowddetector 在视频中划定区域(ROI),区域中如果有人群出现,就会闪烁
-
Platedetector 通过摄像头识别车牌
Kurento本身是插件化的框架,所有插件(plugin)都被称为module
官方将所有module分为三大类:main、built-in、custome,
2.交互流程
应用程序:本地流被发送到Kurento媒体服务器,后者将其发送回客户端而无需修改。为了实现这种行为,我们需要创建一个由单个媒体元素组成的媒体管道,即WebRtcEndpoint,它具有交换全双工(双向)WebRTC媒体流的能力。这个媒体元素连接到自己,以便它(从浏览器)接收的媒体被发送回(到浏览器)。此媒体管道如下图所示
如果不具备WebRtc相关知识的话可以先了解下:webrtc流程必备知识(了解Kurento)-CSDN博客
3.项目中场景应用
拉取远端摄像头的视频流及录制视频
后续代码会分享出来