基于Hadoop和Red5的视频点播系统及方法

文档序号:9436465阅读:670来源:国知局
基于Hadoop和Red5的视频点播系统及方法
【技术领域】
[0001]本发明涉及视频处理领域,具体涉及一种基于Hadoop和Red5的视频点播系统及方法。
【背景技术】
[0002]随着视频编码技术和网络技术的快速发展,视频监控已经成为生产、生活中的重要组成部分。当前我国的视频监视系统经过第一代以VCR(Video Cassette Recorders)为代表的传统CCTV(Closed Circuit Televis1n)监控系统,到第二代以DVR(Digital VideoRecorder)为代表的数模混合系统,并进一步发展为以NVR为核心的第三代网络视频监控系统,现在第四代视频监控系统(智能高清视频监控系统)也迅速发展起来。
[0003]然而,当前的视频监控系统存储存在以下几个方面的问题:第一个问题是NVR端存储容量有限,无法应对大量高清视频的长期存储。第二个问题是视频数据是以明文的方式进行传输的,在开放网络环境中很容易遭受人为的攻击,比如数据拦截、信息窃取、数据篡改和数据删除等。针对上述两个问题,在解决存储容量有限方面,基于Hadoop平台的视频存储机制解决了海量视频数据的存储问题,该方案具有良好的扩展性、稳定性。对于第二问题,在存储、传输的过程中均采用密文视频的方式,可以有效的防止视频内容被窃取、被篡改。
[0004]Hadoop是一个开源分布式计算平台,实现了一个分布式文件系统,即Hadoop分布式文件系统HDFS。HDFS具有高容量、高容错、高伸缩的优点,因此非常适合大量视频文件的存储。HDFS的体系结构如图1所示。从图中可以看出,HDFS主要采用了主从架构,由NameNode节点和DataNode节点组成。其中,NameNode节点负责管理文件系统命名空间和控制客户端对文件的访问。DataNode的主要功能是负责相应来自Hadoop客户端的读写请求。
[0005]Red 5是基于Java EE平台的开源流媒体服务器框架,主要通信协议有RTMP、HTTP等。主要功能包括:视频流媒体分发、音频流媒体分发、实时流媒体发布、以及录制客户端流媒体文件等。Red5流媒体服务器以Jetty servlet引擎为基础,采用SpringFramework 作为主要的产品框架,同时以 MINA (Multipurpose Infrastructure forNetworkApplicat1ns)作为支撑网络通讯模块框架。
[0006]由于Red5流媒体服务器只能推送本地文件系统的视频文件,无法推送Hadoop中的视频文件,因此需要解决Red5与Hadoop分布式文件系统的无缝对接问题。

【发明内容】

[0007]针对现有技术中的缺陷,本发明提供一种基于Hadoop和Red5的视频点播系统及方法,能够实现Red5正常推送HDFS中存储的视频文件的功能。
[0008]为解决上述技术问题,本发明提供以下技术方案:
[0009]第一方面,本发明提供了一种基于Hadoop和Red5的视频点播系统,包括:Hadoop分布式文件系统和Red5流媒体服务器;
[0010]所述Hadoop分布式文件系统包括第一交互模块;
[0011]所述Red5流媒体服务器包括第二交互模块和客户请求处理模块;
[0012]所述客户请求处理模块,用于对客户端的视频点播请求进行处理分析,得到客户端点播的视频文件名,并判断该视频文件在Red5流媒体服务器的本地文件目录下是否存在,若不存在,则向所述第二交互模块发送第一请求消息,所述第一请求消息中包括所述客户端点播的视频文件名;
[0013]所述第二交互模块,用于在接收到所述第一请求消息之后,将所述第一请求消息转发给所述第一交互模块;
[0014]所述第一交互模块,用于在接收到所述第二交互模块发送的第一请求消息之后,根据所述第一请求消息判断所述Hadoop分布式文件系统中是否存在客户端点播的视频文件;若存在,则向所述第二交互模块发送包含该视频文件的长度和视频文件的第一应答消息;
[0015]所述第二交互模块,还用于在接收到所述第一交互模块发送的第一应答消息之后,获取第一应答消息中的视频文件的长度和视频文件信息,并将获取的信息发送给所述客户请求处理模块;
[0016]所述客户请求处理模块,还用于在接收到所述第二交互模块发送的视频文件的长度和视频文件信息之后,将所述视频文件的长度和视频文件信息推送给客户端播放器。
[0017]进一步地,所述Hadoop分布式文件系统还包括FLV视频关键帧信息分析模块;所述FLV视频关键帧信息分析模块用于调用预先存储的FLV文件分析程序,生成meta文件;
[0018]所述第一交互模块还用于在确定所述Hadoop分布式文件系统中存在客户端点播的视频文件之后,判断该视频基于关键帧信息的meta文件是否存在,若不存在,则调用所述FLV视频关键帧信息分析模块生成该视频文件的meta文件,并向所述第二交互模块发送包含该视频文件的长度、meta文件和视频文件的第二应答消息。
[0019]进一步地,所述第一交互模块还用于在确定所述Hadoop分布式文件系统中不存在客户端点播的视频文件之后,向所述第二交互模块发送该视频文件不存在的第三应答消息;
[0020]所述第二交互模块,还用于在接收到所述第一交互模块发送的第三应答消息之后,向所述客户请求处理模块发送该视频不存在的消息;
[0021]所述客户请求处理模块在收到所述第二交互模块发送的该视频不存在的消息之后,将该视频不存在的消息推送给客户端播放器。
[0022]进一步地,所述客户请求处理模块,还用于在确定所述Red5流媒体服务器的本地文件目录下存在所述客户端点播的视频文件时,将该视频文件推送给客户端播放器。
[0023]进一步地,所述第一交互模块采用多线程方式工作。
[0024]第二方面,本发明还提供了一种基于Hadoop和Red5的视频点播方法,包括:
[0025]Red5流媒体服务器对客户端的视频点播请求进行处理分析,得到客户端点播的视频文件名,并判断该视频文件在Red5流媒体服务器的本地文件目录下是否存在,若不存在,贝lJ向Hadoop分布式文件系统发送第一请求消息,所述第一请求消息中包括所述客户端点播的视频文件名;
[0026]所述Hadoop分布式文件系统在接收到所述第一请求消息之后,根据所述第一请求消息判断所述Hadoop分布式文件系统中是否存在客户端点播的视频文件,若存在,则向所述Red5流媒体服务器发送包含该视频文件的长度和视频文件的第一应答消息;
[0027]所述Red5流媒体服务器在接收到所述第一应答消息之后,获取第一应答消息中的视频文件的长度和视频文件信息,并将所述视频文件的长度和视频文件信息推送给客户端播放器。
[0028]进一步地,所述基于Hadoop和Red5的视频点播方法还包括:
[0029]所述Hadoop分布式文件系统在确定Hadoop分布式文件系统中存在客户端点播的视频文件之后,判断所述Hadoop分布式文件系统中该视频基于关键帧信息的meta文件是否存在,若
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1