1、 什么是Kurento Media Server前端
Kurento Media Server(KMS)是一个多媒体服务器软件包,可用于为WebRTC平台开发高级视频应用程序。Kurento是一个底层平台,可建立WebRTC应用程序,并且负责管理STUN / TURN服务器,网络,可伸缩性等。node
1.1. Kurento Media Server的特色linux
1.1.1. 模块化管道git
Kurento提供了WebRTC和RTP发送器和接收器、音视频混合器、媒体录制等构建模块。这些媒体元素是具备特定媒体功能的独立对象。经过在任什么时候间点插入,激活或停用它们,它们很是容易组成,即便介质已经在流动。github
扩展Kurento并编写本身的元素也很容易,而后能够将其与现有元素集成在一块儿!web
应用程序开发人员使用Kurento用所需的媒体元素控制所谓的媒体管道,从而有效地造成彻底定制的体系结构,以适应他们的需求。提供了一些内置模块,用于组通讯,媒体格式的代码转换以及视听流的路由。算法
Kurento能够同时实现SFU和MCU应用架构。docker
1.1.2. 内建模块npm
Kurento提供丰富的开箱即用的媒体元素工具集APIubuntu
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等。
2、 什么是OpenVidu
OpenVidu是一个基于Kurento的框架,并封装了其大部分功能,以便简化WebRTC的一些最典型的使用案例,例如会议室。
使用OpenVidu的开发人员无需担忧构成典型WebRTC通讯的全部低级技术和协议。该项目的主要目标是提供一个更简单的API:仅包含OpenVidu客户端库,并使用OpenVidu Server处理媒体流,您将拥有一个功能全面的WebRTC功能的应用程序。
2.1. OpenVidu的特色
2.1.1. WebRTC视频会议
支持一对1、一对多、多对多视频会议
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摄像机进行实时监视
3、 部署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
4、 运行示例 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
5、 结语
到此为止,你们对Kurento Media Server的原理和使用有一个大概的认识了吧,Kurento Media Server是一个很不错的框架,它功能强大并且容易入手,本人所在公司也有产品在使用。
接下来我会讲解其它一些主流的Webrtc流媒体服务器,敬请关注。