`
uope42uope
  • 浏览: 12360 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

FlashCom(FMS)

 
阅读更多

FlashCom(FMS)
2009年11月26日
  FlashCom(FMS)主要用于与服务端进行流媒体通信,目前应用领域就是Flash流媒体播放,Flash在线直播,Flash视频音频聊天,Flash视频会议,Flash在线游戏等。
  FlashCom的运行环境(FMS的运行环境):
  1、Windows操作系统:Windows 2000 Server或者Windows NT 4.0 Server(sp6);
  2、Linux操作系统:Red Hat Linux 7.3 或者 8.0;
  3、服务器的CPU是Pentium III 500 MHz或者更高(推荐值是双个Pentium 4 CPU);
  4、服务器的内存是256M RAM 或者更高(推荐值是512M)。
  FlashCom(FMS)的优点:
  1、能够实现即时视频音频通信(当然它也支持文本通信的);
  2、能够流媒体同步播放(也叫在线直播);
  3、能够通过Flash Player(6.0以上版本)录制视频音频,无需其他客户端;
  4、能够实现客户端实现之间的控制(如会议主持人权限)。
  FlashCom(FMS)的缺点:
  1、FlashCom(FMS)服务端软件是MM公司的产品,需要花银子去买的(一笔不小的投入),好在现在有一个正在完善中的开源项目――RED5;
  2、由于是流媒体服务端软件,所以对服务器的带宽,内存,以及CPU也是很高的要求的(上面已经作说明了);
  3、同时在线视频通信的人数不能太多。
  //=======================================;
  // Flash客户端(以简单的在线录制视频为例)
  //=======================================;
  stop();
  var nc:NetConnection = new NetConnection();
  var ns:NetStream;
  var cam:Camera = Camera.get();
  var mic:Microphone = Microphone.get();
  //预览本地摄像头视频;
  video_box.attachVideo(cam);
  //初始化NetStream;
  function initNetStream():Void {
  ns = new NetStream(nc);
  //设置2秒的缓冲时间;
  ns.setBufferTime(2);
  //使用NetStream加载视频和音频对象;
  ns.attachVideo(cam);
  ns.attachAudio(mic);
  //NetStream状态信息;
  ns.onStatus = function(info:Object) {
  trace("ns.onStatus:"+info.code);
  };
  }
  //录制视频音频;
  function recordStream(){
  ns.publish("kinglong","record");
  }
  //停止录制;
  function stopStream(){
  ns.close();
  }
  //删除视频音频文件;
  function deleteStream(){
  nc.call("clearStream",null,"kinglong");
  }
  //NetConnection状态信息;
  nc.onStatus = function(info:Object) {
  trace("nc.onStatus:"+info.code);
  switch (info.code) {
  case "NetConnection.Connect.Success" :
  initNetStream();
  break;
  }
  };
  //连接FlashCom服务器
  nc.connect("rtmp:/"+"recordstream");
  //=======================================;
  // FlashCom(FMS)服务端代码
  //将下列代码存成main.asc文件(此文件名固定),在FlashCom的applications目录下建立一个recordstream目录(对应着客户端的”recodstream”),并将main.asc放在这个目录中。
  //=======================================;
  application.onAppStart = function(){
  }
  application.onAppStop = function(){
  }
  application.onConnect = function(client){
  application.acceptConnection(client);
  }
  application.onDisconnect = function(client){
  }
  //=======================================;
  //获取flv文件时间长度;
  function getStreamLength(name) {
  return Stream.length(name);;
  }
  //=======================================;
  //删除flv文件;
  function clearStream(name) {
  trace("clearStream("+name+");");
  var stream = Stream.get(name);
  return stream.clear();
  }
  //=======================================;
  //设置Client.prototype;
  //=======================================;
  Client.prototype.getStreamLength = getStreamLength;
  Client.prototype.clearStream = clearStream;
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics