当前位置:文档之家› FLEX流媒体服务器配置说明

FLEX流媒体服务器配置说明

流媒体服务器配置说明作者:崔红斌QQ : 61.前言为什么要用red5建立流媒体服务器,因为Red5是一个采用Java开发开源的Flash流媒体服务器,免费。

Red5使用RTMP作为流媒体传输协议,这与FMS完全兼容。

它具有流化FLV、MP3文件,实时录制客户端流为FLV文件,共享对象,实时视频播放、 Remoting等功能。

2.流媒体服务器的配置1.JDKRed5的安装需要java环境的支持,先配置好JDK。

2.RED5安装本demo red5安装在工作环境中,X:\TAIZHOU\webroot\Red5\流媒体服务器读取文件的目录为:X:\TAIZHOU\webroot\Red5\webapps\OLDOLD文件下有两个文件夹:streams和WEB-INF其中streams中存放所有的视频资料,WEB-INF则是一些重要的配置文件。

Webapps配置说明:classes文件夹(用来存放编译后的java类文件)。

中需配置:指定应用程序唯一的名称为:OLD<context-param><param-name>webAppRootKey</param-name><param-value>/OLD</param-value></context-param>如果该文件中没有请添加如下:<security-constraint><web-resource-collection><web-resource-name>Forbidden</web-resource-name><url-pattern>/streams/*</url-pattern></web-resource-collection><auth-constraint/></security-constraint>2.red5-web.xml 中需要添加控制器(Handlers)<bean id="web.handler" class="app.Application" singleton="true" />这个类文件放在classes中。

主要是实现客户端和流媒体服务器的连接。

3. red5-web.properties 中需配置webapp.contextPath=/OLDwebapp.virtualHosts=*,localhost,虚拟主机应添加*,即任何地址都可访问。

否则其他电脑无法读取流媒体。

3.FLEX BUILDER3 或者Flex SDK的安装这两者的区别是,FLEX BUILDER3 集成SDK和可视化编辑窗口,Flex SDK包含了有Flex Framework、Adobe AIR Framework、Flex Tools等重要的组件库与API。

对于开发人员来说,最好安装FLEX BUILDER3,而服务器建议安装Flex SDK。

为什么要安装这个工具呢?因为flex程序的编译要用到其中的SDK。

下面会讲到。

Flex SDK 安装后需要配置环境变量,在path中添加:C:\flex_sdk_3\bin;C:\flex_sdk_3\frameworks;Linux下添加环境变量,这里就不说了。

Flex程序以MXML(主程序)和AS为主。

开发MXML程序说明:因为red5 采用RTMP 协议传输数据流,所以在MXML中需要定义RTMP连接地址来找到red5的工作目录。

如下程序,本人开发的第一版视频播放器源代码,可以用FLEX BUILDER3新建一个项目,把代码考过去,然后运行就能看到生成SWF视频文件了,由于界面比较难看,所以本人抛弃了它。

<?xml version="1.0" encoding="utf-8"?><mx:Application xmlns:mx="/mxml" layout="absolute" verticalAlign="middle"width="356" height="324"><mx:Script><![CDATA[import ;import ;private var rtmpURL:String="";private var conn:NetConnection=new NetConnection();private var isConnectSuccess:Boolean=false;private var netStream:NetStream;private var video:Video=new Video();private var sound:SoundTransform;private function clickConnect(e:MouseEvent):void{if(!isConnectSuccess){conn.addEventListener(_STATUS,netStatus);conn.connect(rtmpURL);}}private function netStatus(e:NetStatusEvent):void{trace(;if(""){isConnectSuccess=true;netStream=new NetStream(conn);sound = netStream.soundTransform;video.attachNetStream(netStream);netStream.play("on2_flash8_w_audio.flv");ui.addChild(video);remoteObject.insert();}}private function StopBtn_Click(e:MouseEvent):void{netStream.close();isConnectSuccess = false;}private function PauseBtn_Click(e:MouseEvent):void{netStream.pause();}private function ReturnBtn_Click(e:MouseEvent):void{netStream.resume();}// Handle the recevied message.private function resultHandler(event:ResultEvent):void {ta.text += "Server responded: "+ event.result + "\n";}// Handle a message fault.private function faultHandler(event:FaultEvent):void {ta.text += "Received fault: " + event.fault + "\n";}]]></mx:Script><mx:RemoteObject id="remoteObject"destination="blatojava"result="resultHandler(event);"fault="faultHandler(event);"/><mx:Panel width="356" x="0" y="0" height="324"><mx:VideoDisplay id="ui" width="336" height="230" autoPlay="false"/><mx:VBox width="100%"><mx:ProgressBar source="myVideo" labelPlacement="left" width="332"/><mx:Canvas width="100%"><mx:Button id="playBtn" label="play" y="0" click="this.clickConnect(event)"/><mx:Button id="pauseBtn" label="pause" y="0" click="this.PauseBtn_Click(event)" x="58"/><mx:Button id="ReturnBtn" label="return" y="0"click="this.ReturnBtn_Click(event)" x="126"/><mx:Button id="StopBtn" label="stop" y="0" click="this.StopBtn_Click(event)"x="198"/></mx:Canvas></mx:VBox></mx:Panel></mx:Application>采用RTMP协议,需注意:private var rtmpURL:String="";RTMP所访问的路径为服务器上RED5的工作目录(即IP+工作文件夹)。

上面已经说明,工作文件夹为OLD,最重要的是IP地址不要写成:localhost或者,否则除此之外的客户端无法访问到服务器的流媒体,一定要外网IP。

相关主题