一、 什么是Kurento Media Server

Kurento Media Server(KMS)是一个多媒体服务器软件包,可用于为WebRTC平台开发高级视频应用程序。Kurento是一个底层平台,可创建WebRTC应用程序,而且负责管理STUN / TURN服务器,网络,可伸缩性等。

1.1. Kurento Media Server的特点
1.1.1. 模块化管道

Kurento提供了WebRTC和RTP发送器和接收器、音视频混合器、媒体录制等构建模块。这些媒体元素是具有特定媒体功能的独立对象。通过在任何时间点插入,激活或停用它们,它们非常容易组成,即使介质已经在流动。

扩展Kurento并编写自己的元素也很容易,然后可以将其与现有元素集成在一起!

应用程序开发人员使用Kurento用所需的媒体元素控制所谓的媒体管道,从而有效地形成完全定制的体系结构,以适应他们的需求。提供了一些内置模块,用于组通信,媒体格式的代码转换以及视听流的路由。

Kurento可以同时实现SFU和MCU应用架构。

1.1.2. 内建模块

Kurento提供丰富的开箱即用的媒体元素工具集API

1.1.3. JSON-RPC协议

KMS通过JSON-RPC协议公开其所有API功能,可以通过WebSocket连接直接访问。以下为三种使用情况:

1.2. 为什么使用Kurento Media Server

Kurento Media Server(KMS)提供媒体传输、处理、录制 和回放。KMS建立在出色的GStreamer多媒体库之上,并提供以下功能:

a. 网络流协议,包括HTTP,RTP和WebRTC。

b. 支持MCU和SFU媒体混合和媒体路由与调度。

c. 对实现计算机视觉和增强现实算法的过滤器的通用支持。

d. 媒体存储支持WebM和MP4的写入操作以及GStreamer支持的所有格式的播放。

e. GStreamer支持的任何编解码器之间的自动媒体转码,包括VP8,H.264,H.263,AMR,OPUS,Speex,G.711等。

二、 什么是OpenVidu

OpenVidu是一个基于Kurento的框架,并封装了其大部分功能,以便简化WebRTC的一些最典型的使用案例,例如会议室。

使用OpenVidu的开发人员无需担心构成典型WebRTC通信的所有低级技术和协议。该项目的主要目标是提供一个更简单的API:仅包含OpenVidu客户端库,并使用OpenVidu Server处理媒体流,您将拥有一个功能全面的WebRTC功能的应用程序。

2.1. OpenVidu的特点
2.1.1. WebRTC视频会议

支持一对一、一对多、多对多视频会议

2.1.2. 开源

OpenVidu是根据Apache License v2许可的OpenSource的开源项目

2.1.3. 多平台

兼容Chrome,Firefox,Safari,Opera,Edge,Android,iOS,桌面应用程序

2.1.4. 使用简单

OpenVidu提供了即用型组件,您只需将其粘贴到代码中即可快速启动和运行视频通话。

2.1.5. 部署容易

OpenVidu提供Docker部署方案,只需简单几步,就可以成功部署OpenVidu

2.1.6. 提供教程/演示

OpenVidu提供许多教程和示例,对开发人员是非常友好

2.1.7. 保持视频会议的私密性

提供WebRTC加密,可确保您的所有通话都完全私密

2.1.8. 兼容许多前端技术

支持JavaScript,TypeScript,Angular,React,Vue.js,Ionic …您只需选择喜欢的语言和框架

2.1.9. 与任何后端技术兼容

OpenVidu提供了开箱即用的Java和Node客户端,用于控制视频通话,但它还公开了REST API以允许使用任何后端技术。

2.1.10. 使用预定义角色限制客户端功能

确定允许哪个用户订阅,发布或主持具有预定义角色的视频流以保护您的视频通话

2.1.11. 信息广播

您可以使用OpenVidu在几行代码中实现聊天。您的应用程序可能需要任何用户到用户的基于文本的通信,都可以轻松实现

2.1.12. 录制

完全自由地录制视频通话:OpenVidu提供了预定义的布局,您也可以使用自己的自定义布局来完成任何类型的结果

2.1.13. 屏幕共享

OpenVidu允许您的客户端共享他们的屏幕

2.1.14. 音频和视频过滤器

OpenVidu是唯一允许您应用实时音频和视频过滤器的WebRTC技术。检测条形码,设置色度键背景或放大客户端的声音只是使用OpenVidu过滤器可以实现的几个示例。

2.1.15. 网络摄像机

您可以使用OpenVidu接收IP摄像机进行实时监视

三、 部署OpenVidu

# 安装DOCKER$ sudo apt remove -y docker docker-engine docker.io containerd runc$ sudo apt install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common$ sudo curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -$ sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"$ sudo apt update$ sudo apt install -y docker-ce docker-ce-cli containerd.io# 安装DOCKER-COMPOSE$ sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o $ /usr/local/bin/docker-compose$ sudo chmod +x /usr/local/bin/docker-compose# 安装OPENVIDU$ sudo curl https://s3-eu-west-1.amazonaws.com/aws.openvidu.io/install_openvidu_latest.sh | bash

四、 运行示例 Hello-world

# 安装NODE$ sudo apt install -y nodejs npm$ sudo npm config set registry https://registry.npm.taobao.org$ sudo npm install n -g$ sudo n stable# 安装GIT$ sudo apt install -y git# 下载与运行Hello-world示例$ git clone https://github.com/OpenVidu/openvidu-tutorials.git$ npm install -g http-server$ http-server openvidu-tutorials/openvidu-hello-world/web

五、 结语

到此为止,大家对Kurento Media Server的原理和使用有一个大概的认识了吧,Kurento Media Server是一个很不错的框架,它功能强大而且容易入手,本人所在公司也有产品在使用。

接下来我会讲解其它一些主流的Webrtc流媒体服务器,敬请关注。

主流Webrtc流媒体服务器之Kurento Media Server相关推荐

  1. Kurento Media Server源码编译

    前言 文章首发于Noah Sun's Home Kurento Media Server源码编译 Build dependency Module dependency graph Kurento模块的 ...

  2. webrtc笔记(5): 基于kurento media server的多人视频聊天示例

    这是kurento tutorial中的一个例子(groupCall),用于多人音视频通话,效果如下: 登录界面: 聊天界面: 运行方法: 1.本地用docker把kurento server跑起来 ...

  3. linux vlc流媒体服务器,vlc media server rtsp 流媒体服务器搭建成功经验分享

    vlc 由videolan.org 出品,开源免费的一款本地和网络播放器,支持个音视频格式非常多,还可以用来搭建 rtsp 流媒体服务器,非常好用,支持的平台很多:windows.mac.linux都 ...

  4. flash media server播放实时视频流

    标签: 图2.连接到电脑的所有摄像头 注意:你可以使用多种摄像头甚至是数字视频录像机来捕获视频.正如FME支持文档中所阐述的那样:Flash Media Live Encoder被用来和微软遭人抱怨的 ...

  5. How to protect video content (Flash Media Server)

    Stream capture software providers are trying many ways to capture and archive video delivered to Ado ...

  6. Intel® Media Server Studio Support

    复制自网址:https://software.intel.com/en-us/intel-media-server-studio-support/code-samples Code Samples M ...

  7. Wowza Media Server媒体服务器应用

    http://blog.chinaunix.net/uid-25530360-id-3681411.html 简介 Wowza media server最新版本是Wowza media server3 ...

  8. FMS(Flash Media Server)共享内存问题解决

    FMS(Flash Media Server)共享内存问题解决 1)FMS报错信息 Apr 16 10:21:56 LSCRtest2 Server[21642]: Process (21642) : ...

  9. Adobe Media Server 5(AMS)的安装及使用

    一.什么是Adobe Media Server? Adobe Media Server也叫Adobe Flash Media Server(FMS),是Adobe出品的一款流媒体服务器,它使用Adob ...

最新文章

  1. [文摘]Maven安装jar包的命令
  2. [原创].使用Nios II 9.1中的Flash Programmer无法固化程序到EPCS上
  3. Boost Asio总结(15)class basic_stream_socket
  4. 【thymeleaf】分页代码
  5. spring-注入map集合
  6. 你知道吗…我不知道…你知道吗
  7. Magento教程 8:如何新增首页选单?
  8. Docker-创建和分享应用(3)
  9. MTK 驱动(38)---MTK 待机问题分析
  10. 吴恩达|机器学习作业7.0.k-means聚类
  11. intellij idea rearrange code
  12. Docker安装Mysql8.0,并配置忽略大小写,一句命令搞定
  13. 别乎略安身立命的基础本领
  14. python——周边
  15. .Net 并发写入文件的多种方式
  16. a标签点击中文文件名乱码_a标签文件下载文件名乱码问题
  17. TCP/IP(3)——IPV6
  18. 关于hibernate检索策略
  19. 测试人员的KPI考核指标
  20. 第一章 神经网络如何工作(附Python神经网络编程.pdf)

热门文章

  1. 读取jar中MF文件以及pom.xml中的版本号
  2. 在本地计算机无法启动错误1068,win7新建IIS站点出现错误1068:依赖服务或组无法启动如何解决...
  3. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java速到校园网上订餐网站5n2pv
  4. java web 医疗器械_基于jsp的医疗器械进销存管理-JavaEE实现医疗器械进销存管理 - java项目源码...
  5. UG12.0绿色版(可选中文)安装教程
  6. 数字图像处理Python实战--高斯拉普拉斯金字塔图像重建
  7. 推荐一个免费7天天气预报API服务:和风天气
  8. android线性布局设置控件固定在底部,Android UI组件LinearLayout线性布局详解
  9. 最小二乘法拟合圆(PythonC++实现)
  10. 通过Wireshark来了解Zigbee协议