`
suiyuan0808
  • 浏览: 155188 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

基于java Red5服务器客户端视频聊天室搭起来了

    博客分类:
  • Java
阅读更多

  基于java Red5服务器客户端视频聊天室(ldfu)

开发环境:

Red5(视频服务端内嵌Tomcat6),Mina(高性能  socket通讯框架),

Flash(Flex) Builder4,Myeclipse8.0,java sdk6.0

 

一.先看看客户端的界面,呵呵。

 (1)Flash Buidler开发原型图



 

(2)全屏图:

 

   (3)UI部分源码:

  (4)服务器启动:



 

(5)开始视频接受对方数据流以及聊天记录:



 

 

二.原理:

 (1)服务器启动ServerSocket监听RTSP协议数据流;

  @Override
  public boolean appStart(IScope arg0) {
   /**
    * 此应用启动时,第一个触发
    */
    System.out.println("服务器启动成功!");
     return super.appStart(arg0);
   }

 (2)客户端Flash启动获取摄像头以及音频输入显示在本地左下方区域;

     private var rtmpUrl:String="rtmp://192.168.1.100/chatlive";

 camera= Camera.getCamera();
     if (camera!=null)
     {
      writeMessage("您的系统已经安装摄像头");
      camera.addEventListener(ActivityEvent.ACTIVITY,cameraActivityHander);
      camera.addEventListener(StatusEvent.STATUS, cameraStatusHander);
      this.myVideo.attachCamera(camera);
     }
     else
     {
      writeMessage("您的系统没有安装摄像头");
     }
     mic = Microphone.getMicrophone();
     if (mic!=null) {
      writeMessage("您的系统已经安装麦克风");
      mic.setSilenceLevel(0);
      mic.gain = 100;
     }
     else
     {
      writeMessage("您的系统没有安装麦克风");
     }

 (3)客户端Flash连接Red5服务器是否已经存在,存在则从服务器获取一个

自己的ID.不存在着提示:

   nc = new NetConnection();
    nc.client = this;
    nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
    nc.connect(rtmpUrl, localUsername);

 (4)哈哈,其他代码暂时不公布,呵呵。

三.此视频架构缺点:

1.客户端需要服务器来中转数据流,严重依赖于服务器;

2.严重地占用服务器的资源,包括CPU,内存以及网络带宽,可扩展性差;

  除非像ku6那样每年给电信烧十几亿的带宽费;客户端越多,服务器

需要越多,带宽要求越高。

 

四.感言:

这种架构没有太多钱投资情况下,几乎是无法运行的,呵呵。所以我想基于

P2P架构进行点对点聊天。经过多天的摸索,目前已经找到一种点对点直接视频

方式,它不需要服务器中转。不过稍微深入一点的技术,其技术难点:

  (1)如何穿透在NAT服务器后面的私有内部网络进行UDP数据传送,因为你的内部

      IP地址在外面是看不到,外面也是无法主动连接内部IP;

  (2)如何穿透防火墙的阻拦;呵呵,现在的公司一般都打开http 80端口,我们就在这个

   上面下功夫,那就是利用Http隧道穿越!或JXTA技术,is No Problem。

  (3)以怎么样的协议传送视频音频数据

  (4)如何获取摄像头以及声音;

 目前(1),(2)两点已经实现基本的解决方案代码,加油,有挑战性,呵呵

  • 大小: 87.5 KB
  • 大小: 65.9 KB
  • 大小: 68.6 KB
  • 大小: 90.9 KB
  • 大小: 66.1 KB
  • 大小: 78.3 KB
0
0
分享到:
评论
10 楼 hotdoor 2011-07-22  
楼主您好,您的这个功能代码非常适合我学习,能发给我一份吗? 不胜感激,谢谢!
hotdoor1981@yahoo.com.cn
9 楼 Ramls 2011-07-20  
麻烦楼主给我发一份撒  谢谢   allen_lly@163.com
8 楼 wsliouyu 2011-07-07  
麻烦楼主给我发一份撒  谢谢
liuyu19865@vip.qq.com
7 楼 icecooly 2011-07-04  
楼主发一份,感谢~
icecooly.du@qq.com
6 楼 zhjb_javaeye 2011-04-28  
楼主你好,能否给的发一份谢谢,

zhjb_0000@qq.com
5 楼 maxjn8985 2011-03-31  
楼主您好 觉得你很厉害 我最近在研究怎么视频 你的代码很厉害 能否给我一份以便学习研究 我的邮箱是maxjn8985@gmail.com
4 楼 ningwu_05 2011-03-29  
楼主好!我也是初学者,感觉你的代码很有利于入门学习,能不能发一份给我,我也研究研究
ningwu_05@126.com

感激不尽!
3 楼 kaka-pan 2011-03-08  
suiyuan0808 写道
好的,晚上回家给你发

楼主好!没收到啊  能不能重新发一下 3Q
2 楼 suiyuan0808 2011-03-03  
好的,晚上回家给你发
1 楼 kaka-pan 2011-03-01  

楼主好!小弟是初学者 能不能把以上代码发给我一份 我好研究研究?谢谢!
kakapan0405@126.com
感激不尽!

相关推荐

    Red5 Java 端聊天室代码

    在这个名为"Red5 Java 端聊天室代码"的压缩包中,包含的是一个使用Red5服务器构建的聊天室应用的源代码。下面我们将深入探讨Red5服务器、Java编程以及聊天室应用的相关知识点。 1. **Red5服务器** - Red5是一个...

    用流媒体red5实现的多功能聊天室

    Red5是一款开源的流媒体服务器,它支持实时流传输协议(RTMP)、H.264、Flash视频(FLV)以及其他多种媒体格式,能够用于创建实时互动的应用,如视频聊天室、直播服务等。本项目利用Red5实现了多功能聊天室,提供了...

    red5聊天室、视频、用户列表的源代码

    通过以上分析可以看出,该项目通过Red5服务器端的应用编程接口(API)实现了基本的多人视频聊天室功能。客户端采用Flash ActionScript进行开发,实现了用户界面设计和事件响应等功能。整个项目涵盖了视频传输、用户...

    用red5部署的flex的简单聊天室源代码

    在本文中,我们将深入探讨如何使用Red5部署一个基于Flex的简单聊天室源代码。Red5是一款开源的流媒体服务器,而Flex是一种用于构建富互联网应用程序(RIA)的开发工具,通常与Adobe Flash Player一起使用。这个示例...

    flex-java-red5 即时聊天源码

    "VideoMettingServer2"则可能是Java服务器端的源代码,处理客户端的请求,管理聊天数据,并可能包含与Red5服务器的集成代码。 学习这个项目,开发者可以深入了解Flex与Java的结合,如何利用Red5实现实时数据传输,...

    red5流媒体服务器

    Red5服务器基于Java EE平台,利用Servlet和EJB等组件进行扩展。其主要由以下几个部分构成: - **Application Server**:负责运行Red5应用程序,处理客户端请求。 - **Proxy Server**:处理RTMP和RTSP协议的转发,...

    red5聊天建议系统

    Red5服务器的核心是Java应用,基于Java的Servlet容器运行,如Tomcat或Jetty。它提供了一个API,开发者可以通过这个API来创建自定义的应用服务,例如聊天室、直播、vod(视频点播)等。在"myample"这个文件中,可能...

    基于red5的javaDemo JDK1.7

    1. **连接Red5**:Java程序通过`OFMServer`类建立与Red5服务器的连接,实现客户端与服务器的通信。 2. **发布流**:使用`IFlowRecorder`接口创建并发布流,如创建一个名为"myStream"的视频流。 3. **播放流**:...

    red5-server-1.0.1.zip 流媒体服务器

    - **互动性**: Red5提供聊天室、白板等功能,支持用户间的实时互动。 **2. 安装Red5 1.0.1** 下载"setup-Red5-1.0.1-java6.exe"安装文件后,按照以下步骤进行安装: 1. 运行安装程序,阅读并接受许可协议。 2. ...

    flex java red5完全学习手册

    1. **编写服务器端代码**:使用Java编写简单的Red5服务器端逻辑,例如实现一个简单的聊天室功能。 2. **编写客户端代码**:使用Flex开发客户端界面,实现与服务器端的数据交互。 3. **运行程序**:启动Red5服务器...

    red5-server,RED5服务器核心.zip

    4. **互动功能**:Red5支持聊天室、白板等互动应用,用户可以通过Flash Player与服务器进行双向通信,实现在线协作或互动游戏等功能。 5. **扩展性**:由于Red5是用Java编写的,因此它具有良好的跨平台性,并且易于...

    red5+flex简单聊天例子

    Red5是一款用Java编写的服务器,支持RTMP、RTMPT、RTMPS、RTMPE等多种协议,这些协议广泛应用于音频、视频流和数据共享。在聊天应用中,Red5可以创建一个或多个聊天室,允许用户加入并发送消息。 然后,深入Flex。...

    red5入门详细教程

    1. RTMP协议:Flash与Red5之间的通信主要基于RTMP协议,它允许客户端向服务器发送音频、视频数据流。理解RTMP协议的工作原理对于实现Flash与Red5的交互至关重要。 2. ActionScript 3.0接口:在Flash中,使用...

    red5视频插件

    3. **互动性**:Red5支持双向通信,这意味着用户不仅可以观看视频,还可以通过评论、聊天室等功能参与互动。 4. **适应性流**:Red5可以通过HLS(HTTP Live Streaming)提供适应性流,根据网络状况自动调整视频质量...

    Red5-0.9.1

    2. **互动应用**:Red5支持Flash Player和其他客户端进行交互,如聊天室、游戏、白板等,这使得它能够构建丰富的多媒体互动应用。 3. **录制功能**:用户可以设置服务器自动录制直播流,便于后期回放或存档。 4. *...

    red5与flash聊天代码

    Red5是一款开源的流媒体服务器,它支持实时流传输协议(RTMP)、RTMPT、RTMPE、RTMPS以及HLS等协议,能够处理音视频数据的录制、播放和存储。在Web开发中,尤其是涉及到在线直播、互动聊天等应用场景时,Red5是一个...

    Red5流媒体服务器

    【Red5流媒体服务器】是基于Java开发的开源流媒体服务器,主要支持RTMP(实时消息传输协议)来实现Flash客户端与服务器之间的交互。Red5提供了视频、音频流的传输,以及Remote Shared Object等功能,与Adobe的FMS...

    flex + red5 简单实例

    2. Red5服务端脚本:可能是Java代码,定义了Red5服务器上的应用程序逻辑,如接收和处理客户端的请求。 3. 配置文件:如Red5的`application.xml`,定义了应用程序的元数据和设置。 4. 测试或运行脚本:用于启动Flex...

    Red5入门教程

    - Scope和Room是Red5中组织客户端连接的概念,用于管理不同用户群组的交互,例如在聊天室或游戏中。 9. **视频播放程序和简单聊天程序** - 提供完整的视频播放应用程序和聊天程序示例,帮助读者将理论知识转化为...

Global site tag (gtag.js) - Google Analytics