上一篇讲述了flash如何和red5服务器进行基本的交互行为,即客户端调用服务端方法和服务端调用客户端方法。这一篇笔记的目的是让大家了解red5的媒体功能。
还是拿FMS服务器为例,FMS服务器的两个基本功能语音和视频传输,使用过FMS的人都知道,FMS提供的语音和视频传输时非常方便和简单的,你只需要把你想要播放的视频文件(以flv结尾的文件)放到你创建应用程序目录下的streams文件夹下面的_definst_文件夹里面就可以在客户端使用ns.play(视频文件名)的方式来播放。而客户端发布视频也同样会将视频发布在streams文件夹下面的_definst_文件夹里面。客户端只需要使用ns.publish(你设定的文件名,"record")这样的方式即可把用户的视频发布。
那么Red5呢?
答案是:一样的简单。
Red5在视频播放和发布方面可以说和FMS一样的方便快捷。
废话不多说了,我们来看代码。
客户端:
文档类:testRed5.as
package
{
importflash.display.Sprite;
importflash.events.MouseEvent;
importflash.events.NetStatusEvent;
importflash.media.Camera;
importflash.media.Microphone;
importflash.media.Video;
importflash.net.NetConnection;
importflash.net.NetStream;
importflash.net.Responder;
importflash.text.TextField;
/**
*...Red5服务器测试...
*@authorJerry
*/
publicclasstestRed5extendsSprite{
//属性
privatevarnc:NetConnection;
privatevarns:NetStream;
privatevarns2:NetStream;
privatevarcam:Camera;
privatevarmic:Microphone;
privatevarIP:String;
privatevarsvrPath:String;
privatevarusername:String;
//构造函数
publicfunctiontestRed5(){
_init();
}
privatefunction_init(){
IP="localhost";
svrPath="rtmp://"+IP+"/myChat";
username="cosmos53076";
nc=newNetConnection();
nc.addEventListener(NetStatusEvent.NET_STATUS,_statusHandler);
nc.connect(svrPath,username);
nc.client=this;
}
privatefunction_statusHandler(evt:NetStatusEvent){
if(evt.info.code=="NetConnection.Connect.Success"){
trace_txt.text+="连接成功!\n";
_login();//登录显示
_playVideo();//播放视频
_publishVideo();//发布视频
}
if(evt.info.code=="NetConnection.Connect.Failed"){
trace_txt.text+="连接失败!\n";
}
}
privatefunction_login(){
nc.call("login",newResponder(_onGet,_onError));
}
privatefunction_onGet(obj){
trace_txt.text+=obj;
}
privatefunction_onError(obj){
trace_txt.text+=obj;
}
//被服务端调用的方法
publicfunctionlogin(_name){
varmsg=_name+",您登录了Red5服务器!";
trace_txt.text+=msg+"\n";
}
privatefunction_playVideo(){
ns=newNetStream(nc);
ns.client=this;
ns.addEventListener(NetStatusEvent.NET_STATUS,_statusHandler);
liveVideo.attachNetStream(ns);
ns.play("IronMan");
}
//从视频中读取相关信息
publicfunctiononMetaData(info:Object){
mess.text="节目时长:"+info.duration+"\t"+"原始大小:"+info.width+"x"+info.height+"\t"+"节目视频:"+info.framerate;
}
//发布视频
privatefunction_publishVideo(){
ns2=newNetStream(nc);
cam=Camera.getCamera();
mic=Microphone.getMicrophone();
myVideo.attachCamera(cam);
ns2.client=this;
ns2.addEventListener(NetStatusEvent.NET_STATUS,_statusHandler);
ns2.attachCamera(cam);
ns2.attachAudio(mic);
ns2.publish("myVideo","record");
}
}
}
代码我想应该不用多解释了,从上面的代码我们会发现,客户端的实现方式和FMS如出一辙。可以说,如果你以前写过FMS的客户端代码(视频方面的),你可以原封不动的拿过来直接用。
然后我们在看一下客户端的界面:那么服务端的代码呢?
用上一节我们用过的服务端代码就好了。和FMS一样,视频方面,我们无需再服务端写任何代码即可完成我们想要的功能。
唯一不同的是,我们只需要把要播放的文件直接放在应用程序文件夹下面的streams文件夹里就可以了。
快试试吧!
分享到:
相关推荐
Red5 是一个采用 Java 开发的开源免费 Flash 流媒体服务器。Red5 基于 Java 和一些功能强大的开源框架,为企业级应用奠定了标准。它使用 RTMP,RTMPT,RTMPS 和 RTMPE 流媒体协议, 支持:将音频(MP3)和视频(FLV,...
类似FMS的RED5开源FLASH流媒体服务器源码 当前版本:RC1 0.8.0
red5与flash聊天代码red5与flash聊天代码red5与flash聊天代码red5与flash聊天代码
Red5_Flash服务器研究.pdf
Red5服务器如何调用Flash客户端的方法
本文档记录了利用ffmpeg将摄像机采集的rtsp视频流转换为rtmp视频流,并推送到rtmp服务器red5的详细步骤。最终可以供VLC、web页面访问并展示rtmp视频。
基于red5流媒体服务器代码 实现在线直播和点播,可以点rtsp流和文件流
RED5流媒体服务器的简单搭建,只需要简单配置环境变量,然后执行批处理文件,就可以运行RED5流媒体服务器了,非常方便简单
Red5是一个采用Java开发开源的Flash流媒体服务器。它支持:把音频(MP3)和视频(FLV)转换成播放流; 录制客户端播放流(只支持FLV);共享对象;现场直播流发布;远程调用。Red5使用RTMP作为流媒体传输协议,在其...
关于red hat linux9的一个基础教程,上附有简单的重点总结型的笔记,有助于初学者加强对linux的认识!属于基础内容
Red5是一个开源的Flash服务器代码
关于使用 Flex 和Java servlets 将文件上传到 RED5 服务器的步骤,请参考博客:http://blog.csdn.net/defonds/article/details/7639058。 关于 Red5 服务器应用配置,请参考文档《red5配置.doc》,下载地址:...
red5-server 流媒体服务器安装工具,直接解压启动服务
android+Red5流媒体服务器 实现视频通话 视频直播 视频点播 注:搭建完成自己的Red5服务器后请将android端的IP地址修改为你自己的地址!
Red5流媒体服务器入门基础,其中附带例子聊天系统
本项目是由springboot构建的red5流媒体服务器。服务添加了hls支持http请求支持。red5_hls是对red5的1.1.1版本进行springboot整合,整合后直接使用springboot进行启动和管理。打jar包运行。目前通过实时推流测试。该...
关于red5的一些学习文档,资料很齐全。 d5_demo 服务器端调用客户端as的方法 as3.0+red5 --- hello world FMS&Red5 RED5 – Project Roadmap Open Source Flash 等等文档
red5 服务器 flash开发 flash多媒体
red5 学习笔记 随便写的一些东西,没多大用,有点乱,看着下载吧。
ReD5是一个用Java编写的开源Flash服务器,支持: