`
suiyuan0808
  • 浏览: 154428 次
  • 性别: 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
分享到:
评论
30 楼 aa276174247 2014-11-13  
楼主好人,求源码研究, 670205373@qq.com
29 楼 07shou 2014-10-29  
楼主,小弟最近在学习视频播放,有很多问题,不知可以发份代码学习吗,感激不尽
07shou@163.com
28 楼 star245 2014-06-18  
能共享出来代码吗,liwen337@163.com
27 楼 chenjinbo1983 2013-03-14  
不知楼主
(3)以怎么样的协议传送视频音频数据

(4)如何获取摄像头以及声音;
解决了吗?
26 楼 LGAwang 2013-01-18  
楼主,麻烦传一份源码非常谢谢!wangpeixinjava@163.com
25 楼 youxia 2013-01-06  
楼主,看到你这个东西,很是兴奋,看到了希望,我这几天在做视频聊天,就是不知道从那里下手,希望楼主能给源码,寻求帮助,如果可以,发我邮箱吧,xinwugang@163.com 谢谢了
24 楼 xiaosyi 2012-12-07  
您好,可以给我发一份源码学习一下吗,谢谢!   lsq126@yeah.net
23 楼 nizhenhao 2012-11-18  
给小弟发一份吧  小弟正在急着学习呢 麻烦了   964476278@qq.com
22 楼 ljy2012 2012-10-31  
楼主好!没收到,能不能发下liangjiangyun@126.com
21 楼 tl_oni 2012-10-11  
楼主好!小弟是初学者 烦请发给一份学习一下?谢谢!
7779177@qq.com
20 楼 RicyLi 2012-08-04  
楼主好,我是初学者,能否将源码发给我一份,谢谢了 ricky.lzl@hotmail.com
19 楼 林祥纤 2012-07-28  
能给一份源码吗???邮箱: linxingliang198811@163.com ,谢谢。
18 楼 hillhaw 2012-05-22  
楼主好,我是初学者,能否将源码发给我一份,万分感谢^_^
hillhaw@qq.com
17 楼 jonlik 2012-05-19  
楼主啊,求一份源码,谢谢了!zhanghaoxuan1987@163.com
16 楼 zxj_0611 2012-01-31  
发给我一份咯。。。。我想试试。。。看看 zxj_0611@126.com或者715213471@qq.conm
15 楼 xiaobingjava 2011-12-30  
能给发一份吗?
123020576@qq.com
谢谢啦
14 楼 丛林黑豹 2011-11-23  
这个功能实现代码只不过是red5官方videoconerence示例的基本fb改版.直接从官网下载实例代码运行,查阅就好.
官方所有demo代码的svn地址:http://red5.googlecode.com/svn/java/example/trunk (可在官网找到最新下载链接)  其中的videoconerence即为此例代码
楼主只不过想自我炫耀一下罢了.

再有,基本red5的视频会议运用,一般在内网运行.基于NIO技术的流传播,支持个千把链接没问题.
13 楼 lzosisql5 2011-11-01  
lzosi@126.com 邮箱
12 楼 lzosisql5 2011-11-01  
最近在做这个,能发一份给我看下吗? 谢谢了~
11 楼 lspnet 2011-07-28  
您好,可以给我发一份代码么,谢谢了。lspnet@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