Scripts 学盟

标题: java+red5+flex完成视频直播[第一篇]——red5介绍以及安装 [打印本页]

作者: Snail    时间: 2012-3-23 21:48:57     标题: java+red5+flex完成视频直播[第一篇]——red5介绍以及安装

本帖最后由 Snail 于 2012-3-26 13:23 编辑

Red5简介

Red5是一个采用Java开发开源的Flash流媒体服务器。它支持:把音频(MP3)和视频(FLV)转换成播放流; 录制客户端播放流(只支持FLV);共享对象;现场直播流发布;远程调用。Red5使用RSTP作为流媒体传输协议,在其自带的一些示例中演示了在线录制,flash流媒体播放,在线聊天,视频会议等一些基本功能。http://baike.baidu.com/view/993128.htm



Red5安装

安装Red5首先就是要下载了:http://www.red5.org/downloads/,官网中提供了安装版的和压缩版的,我下载的是压缩版的;因为我可以很容易的得到里面的事例,api等;


下载了Red5后,解压文件(结构如图):如图: 解压缩后的内容



常用方法

    ApplicationAdapter是客户端与red5连接的基础类:
        下面来介绍一下调用的顺序,和建立so的方法:
        第一步:
        Red5服务器启动后,开始加载,此时只能获取应用的SCOPE

  1. public boolean appStart(IScope arg0) {
  2.          this.createSharedObject(arg0, \\\\\\\\\\\\\\\"point\\\\\\\\\\\\\\\", true);
  3.          ISharedObject so = this.getSharedObject(arg0, \\\\\\\\\\\\\\\"point\\\\\\\\\\\\\\\");//建立一个so
  4.          if (so != null)
  5.                   so.addSharedObjectListener(new ShareObjectListener());
  6.          return true;
  7. }
复制代码
改方法中的ShareObjectListener监听器是一个需要实现ISharedObjectListener接口的类。这样就建立一个so了。

        第二步:

        响应连接处理,可获取当前connection的信息,并且可以接收客户端提供的参数
  1. public boolean appConnect(IConnection conn, Object[] params){
  2.          return true;
  3. }
复制代码
第三步:连接成功,此时可获取client信息和SCOPE信息
  1. public boolean appJoin(IClient client, IScope app){
  2.          return true;
  3. }
  4. @Override
  5. public boolean roomStart(IScope arg0) {
  6.          System.out.println(\\\\\\\\\\\\\\\" 启动roomStart\\\\\\\\\\\\\\\");
  7.          return true;
  8. }
复制代码
如果需要获取每一个room中的客户端连接。
  1. @Override

  2. public boolean roomConnect(IConnection arg2, Object[] arg1) {
  3.          IScope arg0 = arg2.getScope();
  4.          Set<IClient> i = arg0.getClients();
  5.          for (IClient c : i) {
  6.                   callClient(c.getConnections().iterator().next());
  7.          }
  8.          return true;
  9. }
  10. public void callClient(IConnection conn) {
  11.          if (conn instanceof IServiceCapableConnection) {
  12.                   IServiceCapableConnection sc = (IServiceCapableConnection) conn;
  13.                   sc.invoke(\\\\\\\\\\\\\\\"resultFun\\\\\\\\\\\\\\\",new Object[]{peopleArray},this);
  14.          }
  15. }
复制代码
最后一步:

        客户端浏览器关闭即退出应用。
  1. public void appDisconnect(IConnection conn) {
  2.          return;
  3. }
复制代码




附件: [解压缩后的内容] red5.png (2012-3-22 12:47:41, 94.09 KB) / 下载次数 149
http://www.iscripts.org/forum.php?mod=attachment&aid=MTEwOHwxNGUxM2ZjYXwxNzM1MDA1Njc5fDB8MA%3D%3D
作者: 混混@普宁.中国    时间: 2012-3-23 22:09:09

先膜拜一下
作者: 那个谁    时间: 2012-3-27 11:25:34

搞Openfire那会 弄过Red5插件视频协议没写完。。。
作者: Snail    时间: 2012-3-27 11:58:06

那个谁 发表于 2012-3-27 11:25
搞Openfire那会 弄过Red5插件视频协议没写完。。。


作者: 混混@普宁.中国    时间: 2012-4-18 14:18:32

我要看第2篇




欢迎光临 Scripts 学盟 (http://www.iscripts.org/) Powered by Discuz! X2