在多台FMS服务器之间共享流

有的时候,我们需要在在多台FMS服务器之间共享流(比如对视频聊天进行监控而又不想对客户端的程序做大的调整),下面是两种方法:
1、主动式:
一台服务器正常地接收流,另一台服务器主动的连接到这台服务器上来获取流,在这个过程中,新的服务器处于主动获取的状态。
示例代码:
application.onAppStart = function() {
this.myNC = new NetConnection();
this.myNC.onStatus = NC_onStatus;
this.myNC.connect(”rtmp://第一台源服务器的地址/tvSet”);
};
function NC_onStatus(info) {
switch (info.code) {
case “NetConnection.Connect.Success” :
application.myStream = Stream.get(”cctv”);
application.myStream.onStatus = NS_onStatus;
if (application.myStream) {
application.myStream.play(”cctv”,-2,-1,false,application.myNC);
}
trace(”连接成功!”);
break;
case “NetConnection.Connect.Failed” :
trace(”连接失败!”);
break;
case “NetConnection.Connect.Rejected” :
trace(”连接失败!”);
break;
}
}
function NS_onStatus(info) {
trace(info.code);
}
这样新的服务器就获取了与第一台服务器同样的流。
客户端连接的时候就不必再连接第一台服务器,而是直接连接到新的服务器上,新的服务器可以是一台,也可以是多台。
2、被动式:
FMS3新增了一个非常有用的侦听事件,那就是application.onPublish,利用这个事件,可以很方便的把刚刚发布到服务器上的流再转发到其它服务器上,在这个过程中,新的服务器处于被动接收的状态。
示例代码:
application.onPublish = function(client, myStream) {
nc = new NetConnection();
nc.connect(”rtmp://10.0.199.5/multiPointPub”);
ns = new NetStream(nc);
ns.attach(myStream);
ns.publish(myStream.name,”live”);
};

Technorati 标签: FMS
posted @ 2009-05-13 19:36  Andy  阅读(592)  评论(0编辑  收藏  举报