kurento 6.14.0文档翻译 第一章 关于kurento与webrtc
- 第一章:关于kurento与webrtc
Kurento是一个Webrtc媒体服务,通过客户端API为网页和手机平台更轻松的开发高级的视频程序,Kurento包括组通信、转码、录制、混淆、广播和路由音视频流。
通过Kurento以下特性可以更容易的构建多媒体处理程序:
- 动态的webrtc媒体管道:Kurento允许通用的媒体管道连接webrct像浏览器或手机应用程序,这些媒体管道基于诸如播放器,记录器,混音器等可组合元素,即使在媒体已经流通的情况下,也可以在任何时间点进行混合匹配,激活或停用这些元素。
- 客户端/服务器架构:应用App是基于客户端服务器架构,Kurento媒体服务器(KMS)是服务器,并提供实现Kurento协议的WebSocket接口,该接口允许客户端应用程序定义管道拓扑。
- JAVA和javascript应用:使用KMS部署的三层架构,浏览器当前客户端连接KMS服务器,使用官方的kurento客户端库,使用JAVA和javascript开发客户端程序,客户端的其它语言也能基于websocket协议开发出来。
- 第三方模块:kurento媒体服务器可以通过插件扩展,允许添加自定义的媒体流管道,允许集成音视频处理算法在所有的webrtc应用里 像计算机视觉,现实增强,视频索引和语音分析, 所有的这些都要创建一个新的kurento元素,并在所有的媒体流通道上使用。
这个文档包括高层次的说明使你成为KMS服务开发者,开发kurento客户端应用超出了本文档的范围。
Kurento代码是开源的遵循apache开源协议并提交到github上。
1.1 webrtc媒体服务
Webrtc是通过api和协议机制为浏览器和手机应用提供点对点的实时通信能力,它初步设想成没有基础多媒体插件也能通过浏览器与浏览器互联。这个模型仅能够创建基本的网页应用,像群组通信,媒体流录制,媒体流广播,媒体流转码这些比较困难,因此许多应用必须要一个多媒体中间件。
综上所诉,一个webrtc服务只是多媒体的中间件,当这个媒体流需要多一端到另一端,多媒体服务有能力处理输入媒体流和提供不同的输出流比如:
组通信:分布的多媒体流通过一个连接接收比如mcu
混淆:处理多个输入流整合成单个流。
转码:一个适配编码和格式适应兼容的客户端。
1.2kurento媒体服务器
kurento主要的组件是kms,负责媒体流的传输,处理,录制和回放,kms基于非常出色的Gstream多媒体库,并提供以下特性:
1.网络流协议包括http,rtp和webrtc
2.组通信(mcu和sfu功能)提供两种媒体混淆和媒体流路由/调度
3.提供通用的电脑视觉和现实增强算法
媒体存储提供写入格式选项webm和mp4,播放由gstreamer提供。
自动的媒体流转码由gstreamer提供包括Vp8,h.264,h.263,amr,opus,speex,g.711等等
1.3 kurento设计原则
Kurento设计基于以下主要原则:
信号和媒体是两个独立的平面:信号和媒体是两个独立的平面,并且设计了Kurento,以便应用程序可以分别处理多媒体处理的那些方面。
分布式的媒体流和应用服务:kurento媒体服务和应用程序可以在不同的机器之间并行,升级和分布。单个应用可以调用很多的kurento服务,对于kurento服务同样适用,一个kurento服务可以处理多个客户端请求。
更适合云:kurento适合集成到云环境并充当PAAS(平台服务)组件。
多媒体管道:通过媒体管道链接媒体元素是挑战复杂多媒体处理
应用程序开发:开发人员无需了解内部Kurento Media Server的复杂性:所有应用程序都可以部署到开发人员喜欢的任何技术或框架中,客户端到服务器。 从浏览器到云服务。
端到端的通信能力:kurento提供端到端的通信能力所以开发人员不需要详细的了解传输、编/转码和在客户端渲染媒体流。
全部可处理的媒体流:kuento不仅仅可以人与人之间的互动像skype一样,也可以人与机器和机器与机器之间交流。
模块化的媒体处理:横块化是由应用程序的面向图行语言开发自定义的媒体元素与管道功能,程序开发人员可创建期望的逻辑通过适当的功能。
可审核的处理:kurento可以为Qos生成丰富的和详细的信息监控、帐单和审计。
与IMS软件无缝集成:kurento设计成与IMS电话运营商的基础架构无缝集成。
透明的媒体适配层:为了对屏幕尺寸、功耗和传输速率等有不同要求的不同设备之间的融合,kurento提供了透明的媒体适配层
kurento 6.14.0文档翻译 第一章 关于kurento与webrtc相关推荐
- kurento 6.14.0文档翻译第九章 编写Kurento应用程序
目录 编写Kurento应用程序 全局架构 通讯客户端,服务器和Kurento 媒体协商阶段(信令) 媒体交换阶段 使用实时的WebRTC应用 媒体平面 9.1全局架构 可以按照网络的架构原理使用Ku ...
- kurento 6.14.0文档翻译第十一章 Kurento常用问题
11.1关于NAT,ICE,STUN,TURN 这些是非常重要的概念,开发人员必须充分理解才能使用WebRTC,这是有关这些首字母缩略词的所有Kurento的集合: 1.词汇: --什么是NAT -- ...
- NHibernate.3.0.Cookbook第一章第六节Handling versioning and concurrency的翻译
NHibernate.3.0.Cookbook第一章第六节Handling versioning and concurrency的翻译 第一章第二节Mapping a class with XML第一 ...
- 开源代码分析研究 之 BugNet (2008年1月14日更新 第一章BugNet 简介 已完成)
开源代码分析研究 之 BugNet http://www.bugnetproject.com/ 写作目的:BugNet是一个不错的C#开源项目和我最近研究ASP.NET和AJAX的实现,非常的匹配, ...
- [C# 3.0 入门] [第一章 Lambda表达式] 第三节:Lambda与匿名方法的区别(日文翻译)...
Lambda表达式与匿名方法的区别 那么,为什么Lambda表达式比匿名方法写起来要短呢?这种像变戏法一样的手法真的能用吗?有没有重要信息遗漏掉呢?为了回答这些问题,就让我们把匿名方法和Lambda表 ...
- DirectX 9.0笔记]第一章 初始化 Direct3D
1.Direct3D概述 Direct3D的工作框架图如下图所示. 应用程序通过调用Direct3D的API来绘图,Direct3D不直接作用于图形设备,而是通过硬件抽象层(HAL,Hardware ...
- python程序开发入门_Python开发入门14天集训营-第一章
python第一章 python变量 变量存储在内存中的值,数据是临时的.这就意味着在创建变量时会在内存中开辟一个空间. 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中. ...
- 《FLUENT 14.0超级学习手册》——第1章 流体力学与计算流体力学基础1.1 流体力学基础...
本节书摘来自异步社区<FLUENT 14.0超级学习手册>一书中的第1章,第1.1节,作者: 唐家鹏 更多章节内容可以访问云栖社区"异步社区"公众号查看. 第1章 流体 ...
- 第一章:基于Visual C++ 6.0使用运动控制卡控制电机转动实验操作指导
第一章:基于Visual C++ 6.0使用运动控制卡控制电机转动实验 文章目录 第一章:基于Visual C++ 6.0使用运动控制卡控制电机转动实验 一.实验目的: 1.学习运动控制卡的使用 2. ...
最新文章
- [再寄小读者之数学篇](2014-04-18 from 352558840@qq.com [南开大学 2014 年高等代数考研试题]二次型的零点)...
- nginx 日志配置log_format用法
- 机器视觉-halcon学习笔记1
- 从Ecipse中导出程序至apk
- webpack指定第三方模块的查找路径
- java上传png_java上传png图片出现红色背景
- Dotnet中Socket网络通信
- android不能在主线程,android.os.NetworkOnMainThreadException 在4.0之后谷歌强制要求连接网络不能在主线程进行访问(示例代码)...
- [转载]转,Oracle中关于处理小数点位数的几个函数,取小数位数,Oracle查询函数...
- SQOOP 基础及安装
- 从荣耀小米扎堆“滑盖全面屏”,看国产手机的“取巧”式创新
- NLP --- 条件随机场CRF背景
- 【密码学05】加密模式
- 商务经济与统计中涉及到的所有公式
- 计算机wps函数的使用,职称计算机考试WPS 使用技巧
- java 字符替换_java string中的替换字符串
- “/”应用程序中的服务器错误(System.Data.OleDb.OleDbException: 操作必须使用一个可更新的查询)
- 模拟软件-OLED及Solar cell的模拟软件(Absorption模块)-[Setfos]
- PS 动图修改背景坑
- Discovery and auto register
热门文章
- 【FAQ】关于华为地图服务定位存在偏差的原因及解决办法
- 微信中打开链接提示已停止访问该网页
- react proptypes
- 基于python车牌号识别_如何用Python提取和识别车牌号?
- 惊!十二星座程序猿竟然这样写代码
- Ubuntu查看系统版本信息的方法汇总
- 【阅读源码】Transformer的FFN机制源码解读(dropout)
- 红岩网校运维安全部二进制安全方向冬季考核:Winter_Task
- 路由器界面html模板,Javascript实现前端简单的路由实例
- 超全大厂算法岗百问百答(推荐系统/机器学习/深度学习/C++/Spark/python)