openmeetings(二)RED5
2021SC@SDUSC
一.前言
本篇文章是一篇技术介绍文章,会大体介绍openmeetings项目中,使用到的red5框架。
二.服务器安装
视频播放服务器框架,Flash Media Server,简称 FMS,是 Flash 大家庭里的一员,被称为是目前开发 Web 音视频应用程序(比如,视频聊天室、视频会议系统、播客系统、音视频留言等等)的最方便最快捷的解决方案。也在 web 应用程序开发上有着越来越广泛的应用。当然 FMS 这种优良功能并不是免费提供给广大用户的,几千美金每个点的价格让很多开发人员望而却步。于是,大家开始尝试寻找一种更合适的解决方案,开源的 Red5 便成为了人们的新宠。
Red5 是一个采用 Java 开发的开源的 Flash 流媒体服务器,功能上与 FMS 类似。它支持:把音频(MP3)和视频(FLV)转换成播放流;录制客户端播放流(只支持 FLV);共享对象;现场直播流发布;远程调用。Red5 使用 RSTP 作为流媒体传输协议,包括在线录制,Flash 流媒体播放,在线聊天,视频会议等一些基本功能。
openmeetings正是采用了red5实现了视频聊天,直播的功能。
Red 5 支持:
-
把音频(MP3)和视频(FLV, F4V, MP4, 3GP)转换成播放流;
-
录制客户端播放流, 把摄像头,麦克风等传入的音频视频录制保存到服务器;
-
共享对象;
-
现场直播流发布;
-
远程调用;
-
协议:RTMP, RTMPT, RTMPS, and RTMPE。
安装完red5之后
出现以上画面,接着下载提供的demo
调试直播画面。
三.使用
1.Red5 常用接口
IConnection 连接对象。每个连接都有一个关联的客户端和域。连接可能是持续型、轮询型、或短暂型。建立此接口的目的,是为了给不同的子类,如 RTMPConnection,RemotingConnection,HttpConnection 等,提供基础通用的方法。通过该接口提供的 getClient() 方法可以方便地获取客服端对象。
IScope 每个 Red5 应用程序至少有一个域,用来搭建处理器、环景、服务器之间的连接。域可以构成树形结构,所有客户端都可以作为其节点共享域内的对象(比如流和数据)。所有的客服端 (client) 通过连接 (connection) 连接到域中。对于单一域,每个连接对应一个客户端,每个客户端对应一个 id,简单的应用,操作就针对一个 id 和一个连接进行。
IServiceCapableConnection 获取有效连接。代码中先获取到连接实例,然后判断是否是有效连接并强制类型转换,之后调取客户端相应函数。
IClient 客户端对象代表某单一客户端。一个客户端可以和同一主机下不同的域分别建立连接。客户端对象和 HTTPSession 很相像。可以使用 IClientRegistry.newClient(Object[]) 方法来创建 IClient 对象。
ApplicationAdapter ApplicationAdapter 是应用层级的 IScope。若要处理流进程,需实现 IStreamAwareScopeHandler 接口中的相应处理方法。ApplicationAdapter 还提供了有效的事件处理机制,来进行截取流、确认用户等操作。同时,其子类中引入的方法均可在客户端通过 NetConnection 调取。在 Aodbe 的 FMS 中必须在服务器端维护客户端对象,与之相较,Red5 为您的远程请求提供了更加方便快捷的操作方法。
总结
本篇文章了解了red5的安装和使用,实现了视频直播和推流的基础。