FLEX流媒体服务器配置说明
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
流媒体服务器配置说明
作者:崔红斌
QQ : 6
1.前言
为什么要用red5建立流媒体服务器,因为Red5是一个采用Java开发开源的Flash流媒体服务器,免费。Red5使用RTMP作为流媒体传输协议,这与FMS完全兼容。它具有流化FLV、MP3文件,实时录制客户端流为FLV文件,共享对象,实时视频播放、 Remoting等功能。
2.流媒体服务器的配置
1.JDK
Red5的安装需要java环境的支持,先配置好JDK。
2.RED5安装
本demo red5安装在工作环境中,X:\TAIZHOU\webroot\Red5\
流媒体服务器读取文件的目录为:X:\TAIZHOU\webroot\Red5\webapps\OLD
OLD文件下有两个文件夹:streams和WEB-INF
其中streams中存放所有的视频资料,WEB-INF则是一些重要的配置文件。
Webapps配置说明:
classes文件夹(用来存放编译后的java类文件)。
中需配置:
指定应用程序唯一的名称为:OLD
如果该文件中没有请添加如下:
2.red5-web.xml 中需要添加控制器(Handlers)
这个类文件放在classes中。主要是实现客户端和流媒体服务器的连接。
3. red5-web.properties 中需配置
webapp.contextPath=/OLD
webapp.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视频文件了,由于界面比较难看,所以本人抛弃了它。
width="356" height="324"> 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(); }