FMS之Multi-point publishing技术
采用该技术,能large-scale你的直播系统,结构如图所示:
A. Live Video B. Server 1 (New York City) C. Server 2 (Chicago) and Server 3 (Los Angeles) D. Users
1.客户端代码:ns.publish("localnews", "live");
2.LiveVideo代码:
// Called when the client publishes
application.onPublish = function(client, myStream) {
trace(myStream.name + " is publishing into application " + application.name);
// This is an example of using the multi-point publish feature to republish
// streams to another application instance on the local server.
if (application.name == "livestreams/_definst_"){
trace("Republishing the stream into livestreams/anotherinstance");
nc = new NetConnection();
nc.connect( "rtmp://localhost/livestreams/anotherinstance" );
ns = new NetStream(nc);
// called when the server NetStream object has a status
ns.onStatus = function(info) {
trace("Stream Status: " + info.code)
if (info.code == "NetStream.Publish.Start") {
trace("The stream is now publishing");
}
}
ns.setBufferTime(2);
ns.attach(myStream);
ns.publish( myStream.name, "live" );
}
}
ns.onStatus = function(info) {
trace("Stream Status: " + info.code)
if (info.code == "NetStream.Publish.Start") {
trace("The stream is now publishing");
}
}
application.onUnpublish = function( client, myStream ) {
trace(myStream.name + " is unpublishing" );
}
3.Server1 和 Server2采用正常服务器流程
需要说明的是,FMS分为FMSS/FMIS/FMES/FMDS,FMSS因为不能配置成edge服务器,不适合提供运营级别的高性能/高分布的视频应用方案FMIS/FMES/FMDS除了都能配置成edge服务器外,还是有些区别的,FMDS是试用版本,有10个连接数的现在,FMES除了具备FMIS功能外,还多了P2P的功能;通过edge服务器,用户连接到的是edge服务器,而不是origin服务器,Edge分为是聚合大量的来自客户端的请求,并发送到源服务器,这样可以将负载的请求连接分布化,保证了流媒体高并发情况下的带宽及系统资源分配合理性,他管理连接,缓存内容,推送数据到客户端,文件缓存在edge端,降低了访问源服务器文件存储的需求量,突破了大规模视频应用的服务器瓶颈
上述的结构解决了S->C的问题,C->S的问题是需要采用Edge服务器,就要对Edge服务器进行配置,修改<RootInstall>/conf/_defaultRoot_/_defaultVHost_/Vhost.xml中的Mode/Anonymous/CacheDir/LocalAddress/RouteTable/RouteEntry;比如有以下两个服务器:
Edge服务器为edge1.adobe.com
Origin服务器为fms.adobe.com
Client连接Edge服务器就可以采用以下两中方式:
1).Explicit显式:Anonymous字段为false,直接将edgeURL作为originURL的前缀
rtmp://edge1.adobe.com/?rtmp://fms.adobe.com/app/instance
2).Implicit隐式:Anonymous字段为true,修改RouteTable/RouteEntry值为Edge/Origin的IP和Port
<RouteTable protocol="">
<RouteEntry>edge1.adobe.com:*;fms.adobe.com:1935</RouteEntry>
</RouteTable>
如果是多级就以此类推,比如Edge1->Edge2->Origin,注意哥没写错
<RouteEntry>edge1.adobe.com:*;edge2.adobe.com:1935</RouteEntry>
<RouteEntry>edge1.adobe.com:*;fms.adobe.com:1935</RouteEntry>
FMS之Multi-point publishing技术的更多相关文章
- 低功耗设计技术--Multi VDD--Level shifter
本文转自:自己的微信公众号<集成电路设计及EDA教程> 前面的推文中我们分别介绍了低功耗设计中的Multi-VDD技术以及门控电源技术.在实际的低功耗设计中,门控电源技术中也常常结合Mul ...
- 基于Kurento的WebRTC移动视频群聊技术方案
说在前面的话:视频实时群聊天有三种架构: Mesh架构:终端之间互相连接,没有中心服务器,产生的问题,每个终端都要连接n-1个终端,每个终端的编码和网络压力都很大.群聊人数N不可能太大. Router ...
- 分布式锁1 Java常用技术方案
前言: 由于在平时的工作中,线上服务器是分布式多台部署的,经常会面临解决分布式场景下数据一致性的问题,那么就要利用分布式锁来解决这些问题.所以自己结合实际工作中的一些经验和网上看到的一些资 ...
- Ant搭建 一键生成APP技术 平台
1.博客概要 本文详细介绍了当今流行的一键生成APP技术.介绍了这种设计思想的来源,介绍了国内外的研究背景,并介绍了这个技术体系中的一些实现细节,欢迎各路大神们多提意见.一键生成技术,说的通俗点就是, ...
- 分布式缓存技术redis学习系列(三)——redis高级应用(主从、事务与锁、持久化)
上文<详细讲解redis数据结构(内存模型)以及常用命令>介绍了redis的数据类型以及常用命令,本文我们来学习下redis的一些高级特性. 安全性设置 设置客户端操作秘密 redis安装 ...
- MySQL Group Replication 技术点
mysql group replication,组复制,提供了多写(multi-master update)的特性,增强了原有的mysql的高可用架构.mysql group replication基 ...
- SELINUX、Security Access Control Strategy && Method And Technology Research - 安全访问控制策略及其方法技术研究
catalog . 引言 . 访问控制策略 . 访问控制方法.实现技术 . SELINUX 0. 引言 访问控制是网络安全防范和客户端安全防御的主要策略,它的主要任务是保证资源不被非法使用.保证网络/ ...
- 蓝牙Bluetooth技术手册规范下载
[背景] 之前就已经整理和转帖了和蓝牙技术相关的一些内容: [资源下载]bluetooth 协议 spec specification 蓝牙1.1.蓝牙1.2.蓝牙2.0(蓝牙2.0+EDR)区别 但 ...
- CDN学习笔记二(技术详解)
一本好的入门书是带你进入陌生领域的明灯,<CDN技术详解>绝对是带你进入CDN行业的那盏最亮的明灯.因此,虽然只是纯粹的重点抄录,我也要把<CDN技术详解>的精华放上网.公诸同 ...
随机推荐
- kindeditor集成ckplayer(带右键编辑菜单)
相信好多朋友为开源web编辑器没有集成视频播放器而烦恼,于是我就是试着修改了一下kindeditor,其实ueditor应该也是同样的,好了不多说了直接上图吧 kindeditor版本: 4.1.7 ...
- Windows Server 2012如果打开网页慢下载快的话
原来Windows server 2012默认打开了ECN功能(貌似从Windows server 2008之后都默认打开),个人操作系统却没有打开,而办公室网络的确拥塞不小,造成了这种效果.好了, ...
- phpstorm 正则匹配删除注释行(替换注释行为空行)
使用phpstorm 来编写php 和javascript 代码,感觉还是不错的,用得也很舒服. 遇到了一个需求,有时候在阅读框架源代码的时候 , 想过滤(删除)掉源代码中的注释行,如果手动逐行删除显 ...
- HMM的概率计算问题和预测问题的java实现
HMM(hidden markov model)可以用于模式识别,李开复老师就是采用了HMM完成了语音识别. 一下的例子来自于<统计学习方法> 一个HMM由初始概率分布,状态转移概率分布, ...
- HDU 5651 xiaoxin juju needs help
组合数杨辉三角打表,这样避免了除法求逆元. #include<cstdio> #include<cstring> #include<cmath> #include& ...
- 转载:ECMAScript 6简介
ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了.它的目标,是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发 ...
- iOS开发——离线缓存
先搭好架子,有时间了再填充.
- 我推荐的一些iOS开发书单
文/叶孤城___(简书作者)原文链接:http://www.jianshu.com/p/2fa080673842著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. 上次发了一下比较不错的i ...
- shell基本理论知识
(1)查看系统上安装了哪些shell # cat /etc/shells # /etc/shells: valid login shells /bin/sh /bin/dash /bin/bash / ...
- Runtime —— 从应用场景说起
根据平时遇到的情况,通过查资料和自己的理解,对Runtime黑科技进行一次个人的学习总结