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; |