FLEX流媒体服务器配置说明

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

webAppRootKey

/OLD

如果该文件中没有请添加如下:

Forbidden

/streams/*

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

}

相关文档
最新文档