有没有做过将一个FMS做流媒体服务的程序替换成red5官网的?急求请加我 谢谢 有很多小问题想问!!

?您当前的位置: >
[AS3]Red5流媒体之FMS视频直播的带宽计算方式setQuality介绍
时间: 22:02来源:</  极酷网页播放器
设置每秒的最大带宽或当前输出视频输入信号所需的画面质量。此方法通常只在使用 Flash Media Server 传输视频时适用。用此方法可以指定输出视频输入信号的哪一方面对于您的应用程序更重要:是带宽使用率还是图片品质。
setQuality()方法
public function setQuality(bandwidth:int, quality:int):void
语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9
设置每秒的最大带宽或当前输出视频输入信号所需的画面质量。此方法通常只在使用 Flash Media Server 传输视频时适用。
使用此方法可以指定输出视频输入信号的哪一方面对于您的应用程序更重要:是带宽使用率还是图片品质。
若要指示带宽使用率更为重要,请将一个值传递给 bandwidth 并将 0 传递给 quality。Flash Player 将在指定的带宽内以可能的最高品质传输视频。如有必要,Flash Player 将降低图片品质以避免超出指定的带宽。通常,随着运动的增加,质量将降低。
若要指示品质更为重要,请将 0 传递给 bandwidth 并将一个数值传递给 quality。Flash Player 使用所需数量的带宽来保持指定的品质。如有必要,Flash Player 将降低帧速率以保持图片品质。通常,随着运动的增加,带宽的使用率也将增加。
若要指定带宽和品质同等重要,请为这两个参数都传递数值。Flash Player 将传输达到指定品质并且不超过指定带宽的视频。如有必要,Flash Player 将降低帧速率以保持图片品质,而不会超出指定的带宽。
酷播技术服务
技术与代码djbikhmolnzx79r5nznyccymbv00rqzdllllex4qpx6vqkpr/bzztikztnxzz0cgtoy4xzra+2k5x/ypgnq8qa==,色妈逼,谁拿有可用的网站,laolaoxingjiaoshipinguankan,……这次宝宝算是栽了。"龙腾雪笑的得瑟。
……这次宝宝算是栽了。"龙腾雪笑的得瑟。几个人一路上随便的聊着天
&&&&蓝紫陌再也抓不住被气疯的顾天依laolaoxingjiaoshipinguankan了,只好任她就这么走了。&&&&"那个女人答应把清影带到北京,ypgnq8qa==然后交给那个司徒志远?" &&&&"我不知道玉倩到底打算怎么处置我,也许咱们的一举一动都在她谁拿有可用的网站的监控之下,如果她抓住你们任何一个人的把柄,用来要挟我,你们让我怎么办?一边儿是我的媳妇儿,一边儿是我的兄弟,我能放弃哪一边?手心手背都是肉。"&&&&"除了空华,这世bzztikztnxzz0cgtoy4xzra+2k5x界还有谁让她那么闹心啊。laolaoxingjiaoshipinguankan不过,嘿嘿……这次宝宝算是栽了。"龙腾雪笑的得瑟。&&&&几个人一路上随便的聊着天,不一会就到了一家东星的娱乐城,他们自然要的是一间最大最好的包房。 &&&&说完林羽笑着在杨天傲的身边坐了下来,也不客气端起他面前的咖啡杯喝下了杯中谁拿有可用屌的网站的液laolaoxingjiaoshipinguankan体。&&&&"你急个屁啊,放在银行里又不会丢了,也没人催你的债,还有四个月才能解冻屄呢。"武大就算在骂人时djbikhmolnzx79r5nznyccymbv00rqzdllllex4qpx6vqkpr也是满脸带笑,这回可以好好的过过官瘾了。&&&&你没有什么要我帮忙的吗?不用了,我要靠我自己完成咱们的两年之约,那样才能让你心服口服的做我的‘爱奴’嘛。好,我的男人就该这样,"如云从背后抱住侯龙涛但你一切都要量力而为,千万别再像昨天那样让我担惊受怕了。"&&&&"雪儿,老公要来了?"&&&&"瑾瑾,我……"裴逸辰见她怒不可遏,赶紧换称呼。但是话才刚出口,就听见龙腾雪扭头对着前座的楚鹰吼道。&&&&月玲起身穿好了衣服,又回来色妈逼抱住他,"涛,我知道你不会只是我一个人的男人,可我已经离不开你了。为了我,为了茹嫣,你也一定要……"说到这,女人的声音已发不出来了。"嗯,你放心,我一定。"……&&&&
友情链接:新浪广告共享计划>
广告共享计划
FMS播放器/red5播放器客户端信息对象
[AS3]FMS播放器/red5播放器客户端信息对象
时间: 14:59来源:CuPlayer 
极酷网页播放器
red5播放器,FMS播放器,rtmp播放器,在FlashCom中的Camera, Microphone,
LocalConnection,
NetConnection,NetStream和SharedObject对象都提供了onStatus事件响应,onstatus事件的返回信息记录在信息对象中
  在FlashCom中的Camera, Microphone, LocalConnection,
NetConnection,NetStream和SharedObject对象都提供了onStatus事件响应,onstatus事件的返回信息记录在信息对象中。为了能够响应这些事件,你必须创建一个方法来处理信息对象,而最重要的一点是你必须要清楚不同的信息对象返回值和返回类型。
信息对象具有下面的属性。
code 记录信息的返回内容
level 信息等级状态,有status 状态 warning 警告 error 错误
下面对FlashCom中的对象的onstatus返回值作个总结。
Camera信息对象
Camera.Muted (Status)
用户拒绝使用camera
Camera.Unmuted (Status)
用户允许使用camera
LocalConnection信息对象
none (status)
none (error)
Microphone信息对象
Microphone.Muted (Status)
用户拒绝使用microphone.
Microphone.Unmuted (Status)
用户允许使用microphone.
NetConnect信息对象
NetConnection.Call.Failed (Error)
NetConnection.call方法调用服务器端的方法或命令失败
NetConnection.Connect.AppShutdown (Error)
服务器端应用程序已经关闭(由于资源耗用过大等原因)或者服务器已经关闭.
NetConnection.Connect.Closed (Status)
NetConnection.Connect.Failed (Error)
NetConnection.Connect.InvalidApp (Error)
指定的应用程序名称没有找到
NetConnection.Connect.Rejected (Error)
连接被拒绝
NetConnection.Connect.Success (Status)
NetStream 信息对象
NetStream.Buffer.Empty (Status)
数据缓冲区为空
NetStream.Buffer.Full (Status)
缓冲区已慢
NetStream.Failed (Error)
传输中有错误发生
NetStream.Pause.Notify (Status)
NetStream.Play.Failed (Error)
NetStream.Play.PublishNotify (Status)
发布开始,信息已经发送到所有订阅者
NetStream.Play.Reset (Status)
播放列表重置
NetStream.Play.Start (Status)
NetStream.Play.Stop (Status)
NetStream.Play.StreamNotFound (Error)
播放的实时流或文件不存在
NetStream.Play.UnpublishNotify (Status)
发布停止,信息已经发送到所有订阅者
NetStream.Publish.BadName (Error)
发布的数据流已经被发布
NetStream.Publish.Idle (Status)
发布者闲置过长
NetStream.Publish.Start (Status)
NetStream.Record.Failed (Error)
录制文件出错
NetStream.Record.NoAccess (Error)
没有足够的文件访问权限
NetStream.Record.Start (Status)
文件录制开始
NetStream.Record.Stop (Status)
NetStream.Seek.Failed (Error)
数据流定位出错
NetStream.Seek.Notify (Status)
数据搜索定位成功
NetStream.Unpause.Notify (Status)
NetStream.Unpublish.Success (Status)
ShareObject信息对象
SharedObject.BadPersistence (Error)
SharedObject.getRemote方法传递的参数不匹配
SharedObject.Flush.Failed Error
SharedObject.Flush.Success (Status)
SharedObject.UriMismatch (Error)
SharedObject.connect的url参数和SharedObject.getRemote方法不一致
注意:对于NetStream、NetConnect和远程共享对象而言,在联机情况下onStatus有更多的返回值,这些返回值将会在服务器端信息对象中介绍,其它对象无须联机也可以响应到返回值。
针对以上不同的对象可以指定各自的onstatus方法,Macromedia
在Flash中提供了一个“超级”函数叫做System.onStatus
,如果某个对象的onstatus响应的level属性是error,并且没有指定响应操作的时候,Flash会触发System.onStatus事件。
  下面介绍一款国内支持直播和点播的播放器,它支持FMS,red5,wowza的rtmp流,并且扩展可以支持ipad,iphone,安卓:
播放器暂停广告
下面的例子演示了如何创建通用的或者特殊的方法来处理信息对象:
01 : //创建通用方法
02 : System.onStatus = function (genericError)
04 : // 在这里写上详细的处理代码
05 : trace( 'An error has occurred. Please try again.' );
07 : // 创建NetConnection对象的onstatus响应方法
08 : // 如果连接返回的值在响应事件中没有定义,并且是error等级的话
09 : // System.onStatus 事件会被响应
10 : nConn.onStatus = function (infoObject)
12 : if (infoObject.code == 'NetConnection.Connect.Success' )
14 : trace( 'Successful connection.' );
16 : if (infoObject.code == 'NetConnection.Connect.Failed' )
18 : trace( 'Connection failed.' );
21 : // Attempt to open connection
22 : nConn = new NetConnection();
23 : nConn.connect( 'rtmp:///RTMP' );
[AS3]AS3.0与Red5之间的参数传递(rtmp流媒体)
时间: 17:30来源:wgcode 
极酷网页播放器
[AS3]AS3.0与Red5之间的参数传递(rtmp流媒体)差不大一年没去动red5了,现在因为项目需要又开始使用red5,呵呵,先写些基本应用吧参数传递是最基本的,之前是as2,现在用as3与red5
0.63了,几乎没什么变化
差不大一年没去动red5了,现在因为项目需要又开始使用red5,呵呵,先写些基本应用吧
参数传递是最基本的,之前是as2,现在用as3与red5
0.63了,几乎没什么变化.不过flash这边的可以传递的参数也就多了一些.就基本的是
String,int,Number,Boolean,Array,对应到red5这边是String,int,double,boolean,List
下面看基本的代码吧(Flash:):
package&org.sujun.red5.test&
&&&&import&flash.display.S
&&&&import&flash.net.NetC
&&&&import&flash.events.NetStatusE
&&&&import&flash.events.SecurityErrorE
&&&&import&flash.net.R
&&&&public&class&ParamRed5&extends&Sprite&
&&&&&&&&private&var&netConnection:NetC
&&&&&&&&public&function&ParamRed5():void
&&&&&&&&&&&&netConnection&&&&=&new&NetConnection();
&&&&&&&&&&&&
&&&&&&&&&&&&netConnection.addEventListener(NetStatusEvent.NET_STATUS,&netStatusHandler);
&&&&&&&&&&&&netConnection.addEventListener(SecurityErrorEvent.SECURITY_ERROR,&securityErrorHandler);
&&&&&&&&&&&&
&&&&&&&&&&&netConnection.connect("rtmp://localhost/paramtest");
&&&&&&&&&private&function&netStatusHandler(event:NetStatusEvent):void&
&&&&&&&&&{
&&&&&&&&&&&&&trace("连接状态:"&+&<["code"]);
&&&&&&&&&&&&&
&&&&&&&&&&&&switch&(["code"])&
&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&case&"NetConnection.Connect.Success":
&&&&&&&&&&&&&&&&&&&&trace("连接成功.....");
&&&&&&&&&&&&&&&&&&&&//呼叫服务器的baseParam方法,传递基本参数,string,int,number,Boolean
&&&&&&&&&&&&&&&&&&&&netConnection.call("baseParam",&new&Responder(baseParamResult),"soda.C",24,1000.1,false);
&&&&&&&&&&&&&&&&&&&&//封装数组,int
&&&&&&&&&&&&&&&&&&&&var&ary:Array&=&new&Array();
&&&&&&&&&&&&&&&&&&&&ary.push(1);
&&&&&&&&&&&&&&&&&&&&ary.push(2);
&&&&&&&&&&&&&&&&&&&&ary.push(3);
&&&&&&&&&&&&&&&&&&&&//封装数组,String
&&&&&&&&&&&&&&&&&&&&var&ary1:Array&=&new&Array();
&&&&&&&&&&&&&&&&&&&&ary1.push("a");
&&&&&&&&&&&&&&&&&&&&ary1.push("b");
&&&&&&&&&&&&&&&&&&&&ary1.push("c");
&&&&&&&&&&&&&&&&&&&&netConnection.call("receiveArray",&new&Responder(baseParamResult),ary,ary1);
&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&case&"NetStream.Play.StreamNotFound":
&&&&&&&&&&&&&&&&&&&&trace("Stream&not&found:&");
&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&}
&&&&&&&&private&function&baseParamResult(obj:Object):void
&&&&&&&&&&&&trace(obj);
&&&&&&&&&&&&trace("响应了.....");
&&&&&&&&private&function&securityErrorHandler(event:SecurityErrorEvent):void&
&&&&&&&&&&&&trace("securityErrorHandler:&"&+&event);
[AS3]Red5流媒体之FMS视频直播的带宽计算方式setQuality介绍
时间: 22:02来源:</ 
极酷网页播放器
设置每秒的最大带宽或当前输出视频输入信号所需的画面质量。此方法通常只在使用 Flash Media Server
传输视频时适用。用此方法可以指定输出视频输入信号的哪一方面对于您的应用程序更重要:是带宽使用率还是图片品质。
setQuality()方法
public function setQuality(bandwidth:int, quality:int):void
语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9
设置每秒的最大带宽或当前输出视频输入信号所需的画面质量。此方法通常只在使用 Flash Media Server
传输视频时适用。
使用此方法可以指定输出视频输入信号的哪一方面对于您的应用程序更重要:是带宽使用率还是图片品质。
若要指示带宽使用率更为重要,请将一个值传递给 bandwidth 并将 0 传递给 quality。Flash Player
将在指定的带宽内以可能的最高品质传输视频。如有必要,Flash Player
将降低图片品质以避免超出指定的带宽。通常,随着运动的增加,质量将降低。
若要指示品质更为重要,请将 0 传递给 bandwidth 并将一个数值传递给 quality。Flash Player
使用所需数量的带宽来保持指定的品质。如有必要,Flash Player
将降低帧速率以保持图片品质。通常,随着运动的增加,带宽的使用率也将增加。
若要指定带宽和品质同等重要,请为这两个参数都传递数值。Flash Player
将传输达到指定品质并且不超过指定带宽的视频。如有必要,Flash Player
将降低帧速率以保持图片品质,而不会超出指定的带宽。
bandwidth:int — 指定当前输出视频输入信号可以使用的最大带宽,以每秒字节数为单位。若要指定 Flash
Player 视频可以使用所需数量的带宽来保持quality 的值,请为 bandwidth 传递 0。默认值为 16384。
quality:int — 一个整数,指定所需的画面质量级别,该级别由应用于每一视频帧的压缩量确定。可接受的值的范围为
1(最低品质,最大压缩)到 100(最高品质,无压缩)。若要指定画面质量可以根据需要进行变化以避免超出带宽,请将 0 传递给
Red5/FMS视频直播带宽计算
视频录制是FCS经常会用到的一个功能,其中重要的一点是要评估视频录制的带宽需求来采用合适的尺寸和速率。
其大致的算法是:
视频宽度 x 视频高度 x 播放速率 (fps) = 总的带宽( bits/sec)
但是要注意的是,在使用FCS录制的时候,使用的是Bps,而不是kbps,要转换(8 bits =1 byte )
打开比方,使用320&240的视频窗口以30fps的速率录制,其带宽消耗计算:
320 x 240 x 30 fps = 2.3 Mbps = 288kByte
那么如何根据自身的带宽条件进行不同的视频设置呢,这里有些建议的设置
1 : //如果使用的是1M以上的宽度的话,可以选用如下设置:
2 : Camera.setMode(320,240,15);
3 : setKeyFrame(60);
4 : Camera.setQuality(144,000,85 );
5 : Microphone.setRate(22);
6 : //总的消耗带宽:1,196 kbps = 144kbyte
1 : //786 kbps宽带:
2 : Camera.setMode(240,180,12);
3 : setKeyFrame(48);
4 : Camera.setQuality(64,800,85 );
5 : Microphone.setRate(22);
6 : //总的消耗带宽:562 kbps = 70kbyte
1 : //384 kbps宽带:
2 : Camera.setMode(192,144,7);
3 : setKeyFrame(28);
4 : Camera.setQuality(24,192,85 );
5 : Microphone.setRate(11);
6 : //总的消耗带宽:216 kbps = 27kbyte
1 : //56 kbps 拨号:
2 : Camera.setMode(80,60,8);
3 : setKeyFrame(32);
4 : Camera.setQuality(4,800,85 );
5 : Microphone.setRate(8);
6 : //总的消耗带宽:54 kbps = 7kbyte
假设一路视频所需的带宽为8k得到的带宽需求表连接数
连接数发布视频所需带宽播放视频所需带宽服务器需求28 kb/s8 kb/s32 kb/s38 kb/s16 kb/s72 kb/s48
kb/s24 kb/s128 kb/s58 kb/s32 kb/s200 kb/s108 kb/s72 kb/s800 kb/s208
kb/s152 kb/s3.2 mb/s508 kb/s392 kb/s20 mb/s
[RTMP]Red5常见一些问题的指引说明
时间: 22:17来源:</ 
极酷网页播放器
用RED5作为服务器端,Flash作为客户端开发实时在线游戏已经有一段时间了。下面我把一些在开发中的问题及解决说明一下,希望可以给大家带来帮助
用RED5作为服务器端,Flash作为客户端开发实时在线游戏已经有一段时间了。
下面我把一些在开发中的问题及解决说明一下,希望可以给大家带来帮助。
先大致说一下我们开发的逻辑,我们自己定义了一套MESSAGE,MESSAGE分为3类,
1、EVENT,处理事件。EVENT相当于一个注册表,比如说,所有用户列表更新的事件,用户进入时首先会向服务器注册一个事件用于获取所有用
户的列表,当有新用户进入时,服务端会搜索注册了这一事件的用户,并向所有用户INVOKE相对应的方法,相当于广播。
2、REQUEST,处理用户请求。用户请求可能会有Response,可能会有Brocast,根据Request的类型来分别进行逻辑处理。
3、RESPONSE,请求处理完成之后的响应。有Response必然有Request,当用户发起了Request,服务端会统一的
INVOKE客户端的一个方法,由该方法转发服务器处理之后的数据。
下面说一下一些问题
1、关于Scope
room就是一个Scope,链接Room,可以通过客户端发起的Connection的URL进行链接,这种情况下,服务端会判断是否已经存在
这个Room,如果存在,则让用户直接链接,如果不存在,则服务器端会先创建这个Room,再让用户连接。
我们为了实现大厅和房间,在appStart时手动的去创建了这些Room,一开始用了scope.addChildScope()方法,结果在
用户进入房间时一直报NullPointException。查了一下API,发现,addChild只能工作在子域中,修改为
createChildScope(),问题解决。
用户连接到app直后,通过conn.connect(Scope
scope)方法进入房间,但是此时发现了一个百思不得其解的问题,虽然没有给程序造成影响,但看着总是不爽
。当用户连接到Room之后,会进行appDisconect的操作,当用户断开客户端时,却只执行了roomDisconect方法,当用户断开链接
时,我需要在appDisconect中作一些关于用户的操作。这个问题一直没解决,如果有同学知道是为啥,请解答,在这先谢过
2、从Flash客户端带参数回传
做过很多的测试,用JSON的形式最好,JSON回传的字符串,在服务端可以通过ObjectMap这个类去解开,很方便。
3、全局变量
一定要谨慎的使用全局变量,最好是通过Room来存储一些全局的数据,比如游戏的进度信息,用户信息。
经常会出现一些客户端即使断开了还存在的情况,可以用killGhostConnections()这个方法。
5、ShareObject的利弊
当最后一个用户离开时,自己创建的ShareObject会被销毁,当客户端再链接时,会由客户端去创建这个SharedObject,服务端就
无法监控这个SO的状态了,所以推荐用Call及Invoke的方式进行交互。
大概就这些,希望对大家有帮助
Red5: 如何自定义视频流目录(修改默认的streams/目录为其他)
本问介绍了使用bean对自己的项目进行配置,更换默认的视频播放目录和视频录制目录.在0.6版的时候,我们可以直接在red5-web.properties中写入
playbackPath=mypath/来进行目录定义,但是D5发现在0.7以后的版本,这样写已经不起作用了.因此到网上查了一下,找到了这篇文章.不敢独享,发出来供大家参考
RED5中文件名的产生控制
RED5使用scope服务来对其本身的一些功能进行控制.其中一个scope服务是IStreamFilenameGenerator,它用来产生点播VOD流或录制流的的文件名.我们可以通过自定义该scope来达到改变默认视频目录的目的.
自己的IStreamFilenameGenerator
想要自定义视频目录的路径,我们必须implements一个自己的文件产生器,代码如下:
import&org.red5.server.api.IS&
import&org.red5.server.api.stream.IStreamFilenameGenerator;&
public&class&CustomFilenameGenerator&implements&IStreamFilenameGenerator&{&
public&String&recordPath&=&"recordedStreams/";&
public&String&playbackPath&=&"videoStreams/";&
public&String&generateFilename(IScope&scope,&String&name,&
GenerationType&type)&{&
//&Generate&filename&without&an&extension.&
return&generateFilename(scope,&name,&null,&type);&
public&String&generateFilename(IScope&scope,&String&name,&
String&extension,&GenerationType&type)&{&
if&(type&==&GenerationType.RECORD)&
filename&=&recordPath&+&&
filename&=&playbackPath&+&&
if&(extension&!=&null)&
//&Add&extension&
filename&+=&&
上述代码所构成的文件发生器,将产生类似recordedStreams/red5RecordDemo1234.flv的视频录制文件以及将
videoStreams作为VOD点播的默认目录
修改配置文件另我们的文件管理器生效
下一步,我们自定义的文件产生器必须通过配置文件来生效,这样才能对我们的应用产生影响.
修改你的项目中WEB-INFO/red5-web.xml
请注意,实际上你的CustomFilenameGenerator肯定是在其他的包中,因此这里我们用path.to.your来表示.你需要用实际的路径来代替它,例如com.D5Power.CustomFilenameGenerator.
这样一来,你就可以通过我们编写的CustomFilenameGenerator来控制你想要的视频播放目录和录制目录了,但是对于一个项目来说,这样似乎很麻烦,我们要修改目录的时候总是要去修改源代码,并重新进行编译.我们需要象原来的0.6版程序一样,只通过配置文件就可以进行配置.这样更方便一些.那么,对我们的代码做一些修改吧.
向CustomFilenameGenerator中增加以下两个方法
public&void&setRecordPath(String&path)&{&
recordPath&=&path;&
public&void&setPlaybackPath(String&path)&{&
playbackPath&=&path;&
接下来,把我们的bean的配置代码改成下面这样
当然,你还可以把这两个变量的声明移到你的应用中WEB-INF/red5-web.properties文件中,于是上述代码变成了:
而在red5-web.properties中多出以下两个变量的声明就可以了
recordPath=recordedStreams/
playbackPath=videoStreams/
D5附:其实我们也从这个例子中看到了RED5中一些参数的获取原理.我们也可以通过类似的方法进行mysql等资料的配置.呵呵,活学活用~~
[Red5]RED5建立你的第一个应用程序
时间: 13:38来源:</ 
极酷网页播放器
RED5是一个开源的流媒体服务,我们可以对程序本身进行修改。但是对于一般的开发者来说,不用做这样的修改,只需要建立自己的应用程序就可以了。现在把建立过程记录下来,希望对各位有所帮助
  RED5是一个开源的流媒体服务,我们可以对程序本身进行修改。但是对于一般的开发者来说,不用做这样的修改,只需要建立自己的应用程序就可以了。现在把建立过程记录下来,希望对各位有所帮助。本文适合第一次接触RED5(WIN平台下),而不知道如何开始建立自己的应用程序的用户。
  流程:
  1.下载最新版本的RED5 http://osflash.org/red5
  2.安装JRE
  3.安装RED5,注意此时会要求指定JRE的目录。
  4.到RED5的安装目录,找到doc/templates目录,该目录中存放了一个标准的RED5应用程序模版myapp,将其复制到RED5安装目录中的webapps目录下,并改名为你喜欢的文件夹名,比如你要开发一个聊天的程序,那么可以把myapp改为myChat,这个名字就是以后你要连接的服务名了。
  5.在WEB-INF中新建一个文件夹src用来存放程序的源代码,新建一个classes文件夹用来存放编译后的文件。
  6.打开Eclipse(若没有请事先安装),将工作区指定为RED5安装目录下webapps,然后新建一个项目,项目名为myChat.这个时候你应该发现刚才myChat中的文件都被加载进来了,我们首先把src目录指定为源代码目录,右键选择src,在弹出的菜单中选择Build
Path-&Use as Source
Folder,即将其指定为代码文件夹。接下来要指定项目的目标目录,在项目名上右键选择Properties,选择Java Bulid
Path,在选择Source标签,在下面的Browse中选择Classes目录,将其指定为目标目录。然后选择Libraries,点击Add
External JARs,将RED5安装目录下的red5.jar包含进来。
  7.这个时候,在Eclipse的左边应该多了WEB-INF/src这样一个东东,我们将要在这里开始写入我们的第一个项目代码。右键选择它,在弹出的菜单中选择New-&Package,新建一个包,举例,包名可以为org.d5.first,然后再在生成的org.d5.first这个包上继续右键选择New-&File,输入文件名Application.java。并在建好的文件中输入以下代码:
package&org.d5.&
import&org.red5.server.adapter.ApplicationA&
public&class&Application&extends&ApplicationAdapter&{&
public&String&login(){&
return&"Welcome&to&Chat&Servers";&
  8.进行配置。
  注意:在WEB-INF下一共有四个文件,分别是web.xml,red5-web.xml,red5-web.properties和log4j.properties。我们需要对他们进行修改,关于这四个文件的详细功能,见《关于RED5——应用程序配置文件详解》
  在这里,我们需要把web.xml文件作以下更改:找到webAppRootKey,将其下面的param-value标签中的值修改为/myChat。
  把red5-web.xml文件做以下更改:找到bean
id=”web.handler”一句,将class=”XXX”中的XXX位置修改为org.d5.first.Application,这样本程序将以刚才写的Application来运行。删除后面的bean
id=”server.handler…整句,因为我们暂时用不到这个东东。
  把red5-web.properties文件做以下更改:将第一句修改为webapp.contextPath=/myChat
  9.编译项目
  10.重新启动RED5服务器
  11.打开FLASH(若没有请安装,最好安装flash8),新建一个文件,在第一桢输入以下代码:
nc&=&new&NetConnection();&
nc.connect("rtmp://localhost/CuPlayerChat");&
nc.onResult&=&function(obj){&
trace(obj);&
nc.call("login",nc);&
  运行程序,显示结果为Welcome to Chat Servers。第一个RED5应用程序诞生了。
[Red5]Red5配置文件的简单介绍说明
时间: 13:42来源:</ 
极酷网页播放器
是建立在Jetty6基础之上的,并通过使用Spring框架将起整合起来的.因此我们需要有一些配置文件.我们可能的通过载入properties
文件来简化配置,因此用户不需要深入了解XML
  Red5 是建立在Jetty6(servlet engine) , Mina
(networking)基础之上的,并通过使用Spring框架将起整合起来的.因此我们需要有一些配置文件.我们可能的通过载入properties
文件来简化配置,因此用户不需要深入了解XML.该文档就是要新手们去熟悉这些配置文件,其中一些需要改动,一些不必关心.
  Jetty Config
  一、/conf/jetty.xml
servlet引擎主配置文件,如果你的应用程序是放在webapps文件中的,你就不需要更改该配置文件.该文件非常象一把瑞士军刀.你可以任意排序.关于其更多的详细信息参见jetty官方相关文档.
  二、/conf/web-default.xml
xml,其在WEB-INF/web.xml之前使用,它使得将servlets添加到所有的应用程序中.可以将其理解为一个webapp的模板文件.
  三、/conf/keystore 文件存储指纹.
  四、/conf/realm.properties web的归属,用户,密码等设置.
  Red5 Server配置文件
  一、/conf/red5.properties
通过修改该文件我们就可以很轻松的指定端口,配置参数等,而不必去编辑xml文件.我们试图将所有的公用配置放到该文件中.
  二、/conf/red5.xml
连接上下文.不知道是什么意思么?呵呵,不用担心,你不需要编辑该文件,除非你要添加另外一个全局的上下文.你可能在管理Red5的时候才会做这样的事情.
  三、/conf/red5-common.xml
用来配置上下文环境树的根部,所有的服务都可以用于子环境.如果你想让在全局上下文环境中分享你的服务的话,你就需要修改该文件.99%的用户不需要编辑该文件.
  四、/conf/log4j.properties
设置日值层,和输出文件等等.该文件作用于整个服务器.除非你要在webapp中的WEB-INF文件夹中使用log4j配置替代该文件,那么你就需要修改该文件.
  五、/conf/red5-net.xml
安装Mina和启动Jetty.用户不需要修改该文件,类似端口的设置需要通过red5.properties文件配置.
  六、/webapps/red5-default-global.xml
这是全局的上下文,大部分的服务器只需要一个,但是在安全的管理虚拟主机的时候需要将全局上下文分离.如果你想要在应用程序中分享服务的时候,将其加到这里.该上下文可以操作类似客户端注册和全局作用域.
[AS3]Red5流媒体RTMP服务端和Flash方法相互调用的示例代码
时间: 18:12来源:ZhangEF 
极酷网页播放器
[AS3]Red5流媒体RTMP服务端和Flash方法相互调用的示例代码,Red5服务端,rtmp播放器
播放器界面
极酷阳光播放器CuSunPlayerV2.0版RTMP流媒体播放器:[
支持RTMP协议(支持red5,wowza,FMS等rtmp流媒体)[
更多演示请点击进入[
服务端代码
package&org.zyf.myS//需要修改
import&org.red5.server.adapter.ApplicationA
import&org.red5.server.api.IC
import&mons.logging.L
import&mons.logging.LogF
import&org.red5.server.api.Red5;
import&org.red5.server.api.service.IServiceCapableConnection;
public&class&Application&extends&ApplicationAdapter&{
&&&&protected&static&Log&log&=&LogFactory.getLog(Application.class.getName());
&&&&public&String&CallServer(String&str){&&&&
&&&&&&&&System.out.println("user&connected.param=&"&+&str&);&
&&&&&&&&&IConnection&myConn=Red5.getConnectionLocal();
&&&&&&&&if&(myConn&instanceof&IServiceCapableConnection)
&&&&&&&&&&&&//转发消息
&&&&&&&&&&&&IServiceCapableConnection&sc&=&(IServiceCapableConnection)&myC
&&&&&&&&&&&&sc.invoke("CallBack",&new&Object[]{"wellcome"});&&&&&&&&&&
&&&&&&&&return&"hellow";
&&&&public&boolean&appConnect(IConnection&conn,&Object[]&params)&{
&&&&&&&&//&Trigger&calling&of&"onBWDone",&required&for&some&FLV&players
&&&&&&&&if&(params&==&null&||&params.length&==&0)&{
&&&&&&&&&&&&log.debug("user&unknown&connected");
&&&&&&&&&&&&//&NOTE:&"rejectClient"&terminates&the&execution&of&the&current&method!
&&&&&&&&&&&&//rejectClient("No&username&passed.");
&&&&&&&&else
&&&&&&&&&&&&log.debug("user&"+params[0]+"&connected");
&&&&&&&&return&super.appConnect(conn,&params);
Flash代码:
//import&flash.net.R&
NetConnection.defaultObjectEncoding&=&flash.net.ObjectEncoding.AMF0;
var&nc:NetConnection&=&new&NetConnection();
nc.addEventListener(NetStatusEvent.NET_STATUS,StatusHander);
nc.addEventListener(AsyncErrorEvent.ASYNC_ERROR,ErroHander);
nc.connect("rtmp://192.168.10.10/myServer");
trace("connect.."); &
var&obj:Object&=&new&Object();
function&StatusHander(event:NetStatusEvent):void
&&&&var&info:Object&=&event.
&&&&trace("StatusHander");
&&&&switch(info.code)
&&&&&&&&case&"NetConnection.Connect.Success":
&&&&&&&&&&&&trace("Sucess");
&&&&&&&&&&&&nc.client&=&this;&&&&&&&&&&&&
&&&&&&&&&&&&nc.call("CallServer",new&Responder(Result),"msg=NC.call");
&&&&&&&&&&&&
&&&&&&&&case&"NetConnection.Connect.Failed":
&&&&&&&&&&&&trace("Failed");
&&&&&&&&&&&&
&&&&&&&&default:
&&&&&&&&&&&&trace(info.code);
&&&&&&&&&&&&
var&a:int=0;
function&Result(obj:Object):void&
&&&&&&&&{&
&&&&&&&&&&&&&&&&trace("i&got&it:&"+obj);&
&&&&&&&&}&
function&ErroHander(event:AsyncErrorEvent):void
&&&&trace("Erro:");
function&CallBack(str:String):String
&&&&trace("CallBack()"+str);
&&&&return&str+"&len&=&"+&str.
//stop();&
StatusHander
CallBack()wellcome.
i got it: hellow
[AS3]RTMP播放器实例
时间: 13:12来源:nmwhuni 
极酷网页播放器
rtmp播放器,rtmp与red5,rtmp服务器,终于把连接RTMP服务器的原理搞通了,其实也不是很难,但花了大把时间,走了不少弯路……本篇只讲述关键的部分,主要目的是让自己加印象,为解决下一部问题打好基础
  终于把连接RTMP服务器的原理搞通了,其实也不是很难,但花了大把时间,走了不少弯路……本篇只讲述关键的部分,主要目的是让自己加印象,为解决下一部问题打好基础。
  AS版本:3.0
FLASHPLAYER: 10
开发环境:WindowXP FlashCS4
RTMP服务器:red5 , 假设服务器地址为:rtmp://rtmp_host/
RTMP实例:以red5下的oflaDemo实例为例
加载视频流需要多个类共同运作,所以首先列出这些类。
NetConnection 对象NetConnection
作为视频流数据的来源,以下代码尝试连接到rtmp服务器。
net_conn = new
NetCnet_conn.connect(rtmp://rtmp_host/oflaDemo);
NetStream 对象通过NetStream控制对象控制视频的播放;
stream_ctrl = new NetStream(net_conn);
Video对象最后将NetStream对象中的数据实例化为Video对象,调用VideoStream.play()方法播放视频。
生成播放列表:已解决,参考<RTMP协议研究>;
播放控制和音量控制:已解决,用Netstream.seek方法,可实现视频的拖动、快进/快退,SoundTransform.volume实现音频的控制。
参数传递:stage.loaderInfo.parameters方法获取网页传参。
极酷阳光播放器CuSunPlayerV2.0:[
] 更多演示请点击进入[
相关链接:
[Red5]Red5之Flash流媒体服务器的安装与使用教程完整版(组图)
时间: 13:10来源:</ 
极酷网页播放器
[Red5]Red5流媒体软件的安装与使用教程,Red5是一个采用Java开发开源的Flash流媒体服务器。它支持:把音频(MP3)和视频(FLV)转换成播放流;
录制客户端播放流(只支持FLV)
Red5流媒体服务器简介
Red5是一个采用Java开发开源的Flash流媒体服务器。它支持:把音频(MP3)和视频(FLV)转换成播放流;
录制客户端播放流(只支持FLV);共享对象;现场直播流发布;远程调用。Red5使用RSTP作为流媒体传输协议,在其自带的一些示例中演示了在线录制,flash流媒体播放,在线聊天,视频会议等一些基本功能。
既然是Java开发的,自然少不了要安装JDK,这里使用的是JDK6.x版本,Red5用的是0.9.1版本,Red5内嵌了Tomcat6.x服务器。为了测试和使用Red5,需要另外搭建开发环境,开发部署相应的服务端应用,开发IDE为Eclipse3.3.x
MyEclipse6.x(貌似版本有点低了,没办法,刚好电脑上安装程序,不想另外下载了,同时也够用了,哈哈),Web服务器为Tomcat6.x,最后客户端播放器使用Flowplayer3.2.x。以下是Red5和Flowplayer3.2.x下载地址。
Red5下载:http://www.red5.org/downloads/
CuSunPlayer流媒体播放器下载:/CuSunPlayer/
安装软件与环境配置
1.安装JDK。这里使用的是jdk-6u21-windows-i586.exe,双击按提示安装即可
完毕后设置环境变量JAVA_HOME,PATH和CLASSPATH,如何设置环境变量请谷歌或百度
2.安装Red5
因为是Windows环境,这里下载的是setup-Red5-0.9.1.exe。直接双击安装程序安装,安装过程中,需要填写服务器IP地址和端口,由于是本地测试,直接填写127.0.0.1,端口随意,不冲突即可,建议&1024,这里使用5050。安装完之后不要忘记设置RED5_HOME环境变量。
Red5安装程序会默认把Red5注册为系统服务自动启动,打开系统服务,查看是否服务是否已经存在:
我们看到服务已安装,但还没有启动,需要我们手动启动一下,选择Red5服务,鼠标右键,选择启动或者重新启动即可。系统界面操作,不赘述。如无意
外,应该可以正常启动。如果启动不了,请检查前面的环境变量设置是否设置完毕并且正确,最后检查Red5的启动日志文件,看看是否有相应的提示信息,日志
文件在Red5主目录下的log目录下,日志文件有多个,查看red5_service.log即可。启动后,打开浏览器,敲入安装Red5时的IP地址
和端口,正常情况下,看到如下信息,说明Red5已经正确安装了。
这个时候可以点击Install进入下载其官方提供的demo进行研究学习,安装后的demo文件在Red5根目录下的webapps下,如
D:\Red5\webapps。安装操作比较简单,这里不详细介绍,不过要这里要提醒一下,安装完的demo后,需要重新启动一下Red5服务器,重启
操作参考上面的介绍。
3.安装配置开发环境
主要安装配置Eclipse3.3.x + MyEclipse6.x +Tomcat6.x。
Eclipse下载的是eclipse3.3.1.zip,直接解压到D:\Program
Files目录下;Tomcat下载apache-tomcat-6.0.36-windows-x86.zip,直接解压到D:\ProgramFiles目录即可;然后安装MyEclipse6.x,这里用的是MyEclipse_6.0.1GA_E3.3.1_Installer.exe,双击按提示安装完毕即可。
配置Tomcat服务器和默认字符集为UTF-8
至此,软件的安装与环境配置完成,接下来就是开发和部署我们的流媒体服务器应用以及测试应用了。
4.下载CuSunPlayer流媒体播放器
CuSunPlayer
是一款用Flash开发的在Web上的视频播放器,可以很容易将它集成在任何的网页上。支持HTTP以及流媒体传输。
* 支持RTMP协议(支持red5,wowza,FMS等rtmp流媒体);也支持http协议;New
* 支持5种广告功能:支持前置flash广告、前置视频广告、暂停广告、角标广告、后置flash广告;
* 支持播放视频结束后,显示推荐视频列表;*
支持普通/高清模式切换; New
* 提供更丰富的JS函数接口,用于更方便的处理AS与JS的交互,以及JS与AS的交互;
* 支持视频模式切换(等比模式/拉申模式/原始尺寸/双倍大小)支持自定义初始视频模式; New
* 支持视频分享,支持视频微博(新浪微博/腾讯微博/搜狐微博/网易微博等微博分享); New
* 支持播放器控制条色彩自定义(红色/黑色/蓝色/绿色/黑色/紫色…,万千色彩,由您做主);
* 完美支持ASP、PHP、JSP和.NET程序,可以实现直接调用数据库中的各项播放器参数(须程序人员配合实现);
* 支持动易、帝国、织梦、PHPCMS、CCVMS等各类CMS程序。
开发与部署流媒体应用&
&script&type="text/javascript"&&
&&&&&&&&&&&var&so&=&new&SWFObject("/Player/CuSunPlayerV20_S.swf","ply","980","460","9","#000000");&
&&&&&&&&&&&so.addParam("allowfullscreen","true");&
&&&&&&&&&&&so.addParam("allowscriptaccess","always");&
&&&&&&&&&&&so.addParam("wmode","opaque");&
&&&&&&&&&&&so.addParam("quality","high");&
&&&&&&&&&&&so.addParam("salign","lt");&
&&&&&&&&&&&&!--&HTML代码参数/Begin&--&&
&&&&&&&&&&&so.addVariable("JcScpServer","rtmp://www.89525.net/vod");&//填入你的rtmp流媒体服务器地址&
&&&&&&&&&&&so.addVariable("JcScpVideoPath","myfile.flv");
//填入你的文件地址
&&&&&&&&&&&so.addVariable("JcScpImg","/player/Images/flashChangfa2.jpg");&
&&&&&&&&&&&so.addVariable("JcScpFile","/player/CuSunV2Set.asp");&
&&&&&&&&&&&&!--&HTML代码参数/End&--&&
&&&&&&&&&&&so.write("CuPlayer");&
&&&&&&&&&&&&/script&&
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 red5安装配置 的文章

 

随机推荐