[发明专利]基于P2P技术的直播时移系统及其方法有效
申请号: | 201010127346.X | 申请日: | 2010-03-19 |
公开(公告)号: | CN101795297A | 公开(公告)日: | 2010-08-04 |
发明(设计)人: | 刘怀宇;欧阳定恒 | 申请(专利权)人: | 北京天天宽广网络科技有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08;H04L29/06;H04N7/173;H04N7/24 |
代理公司: | 北京清亦华知识产权代理事务所(普通合伙) 11201 | 代理人: | 廖元秋 |
地址: | 100007 北京市东城区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 p2p 技术 直播 系统 及其 方法 | ||
1.一种基于P2P技术的直播时移系统,包括设置在服务器端的编码服务器、直 播服务器和控制服务器;其特征在于,
编码服务器:用于从直播信号源接收经过直播视频数据流,将直播视频数据流分拆为 固定大小的直播视频数据包,并为每个直播视频数据包中增加频道号和时间信息;
直播服务器:用于直播和存储某个频道的直播视频数据包;并向多个客户端同时提供 直播视频,或提供直播时移视频;
控制服务器:用于处理客户端发出的视频请求,为客户端提供视频数据的存储信息; 该控制服务器设置有直播信息列表,直播时移信息列表,每个直播频道的节目单;直播信 息列表中包含直播频道与该直播频道的服务器信息,以及当前收看该直播频道的客户端的 信息列表;当客户端停止收看直播视频时,控制服务器将清除直播信息列表中该客户端的 记录;直播时移信息列表中包含直播频道与存储了该直播频道视频数据的直播服务器,以 及客户端的信息列表,只要直播服务器或客户端存储有视频数据,则控制服务器将直播服 务器或客户端的记录保留在直播时移信息列表中。
2.一种基于P2P技术的直播时移方法,其特征在于,包括以下步骤:
1)服务器端的编码服务器从直播视频数据源接收直播视频数据流,首先将直播视频 数据流分割为固定大小的直播视频数据包,然后为每个直播视频数据包添加直播频道信息 和时间信息;
编码服务器将编码后的直播视频数据包分发给直播服务器,并向控制服务器发出当前 编码的直播频道、当前接收直播视频数据包的直播服务器信息、以及编码重启或编码故障 控制信息;
2)服务器端的直播服务器建有一个内存缓冲区,服务器端的内存缓冲区大小设置为 存储固定时间长度的直播视频数据包;直播服务器持续从编码服务器获得直播视频数据 包,并写入该服务器端的内存缓冲区,当直播服务器的内存缓冲区被占满后,时间最早的 直播视频数据包被丢弃,空余出的存储缓冲区被用来放置时间最新的直播视频数据包;
直播服务器同时建有一个磁盘存储空间,直播服务器将放置到服务器端内存缓冲区的 直播视频数据包,按照规定的时间间隔写入在磁盘存储空间中,并且在写入磁盘缓冲区之 前,清除每个单独直播视频数据包的直播频道信息和时间信息,将把一个时间间隔写磁盘 存储空间的所有直播视频数据包合并为一个直播视频数据文件;将直播视频数据文件的频 道信息和时间信息作为视频数据文件的文件名称,并将该视频数据文件的频道信息和时间 信息提交给控制服务器;该频道信息和时间信息作为该视频数据文件的唯一标识信息;
直播服务器使用内存缓冲区中的直播视频数据包提供P2P直播服务,或使服务器端的 内存缓冲区中的直播视频数据包提供直播服务器的内存缓冲区时间长度范围之内的直播 时移服务,或用磁盘存储空间上存储的直播视频内容提供超过直播服务器的内存缓冲区时 间长度的直播时移服务;
3)客户端申请收看视频数据时,客户端首先向服务器端的控制服务器发送视频请求, 视频请求中包含了频道信息和时间信息;根据客户端请求的视频开始时间以及直播服务器 的内存缓冲区大小,控制服务器将视频数据的存储信息返回给客户端,客户端按照存储信 息与直播服务器或其他客户端建立数据链路,通过建立的数据链路获得视频数据。
3.如权利要求2所述的方法,其特征在于,所述步骤3)根据客户端请求的视频开始 时间以及直播服务器的内存缓冲区大小,控制服务器将视频数据的存储信息返回给客户 端,客户端按照存储信息与直播服务器或其他客户端建立数据链路,通过建立的数据链路 获得视频数据;具体包括以下三种情况:
情况(1)客户端申请的直播视频的播放起始时间为当前时间:
控制服务器首先计算当前时间与客户请求的直播视频起始时间的差,若差值为0,则 客户端的请求为直播视频请求,控制服务器查询直播信息列表,并将当前发布直播频道的 直播服务器和当前收看直播频道的其他客户端的地址信息列表发送给客户端,客户端与列 表中的直播服务器以及当前接收直播视频数据包的其他客户端建立数据链接,接收直播视 频数据包;
客户端内建有一个内存缓冲区,一个磁盘缓冲区,并建有一个对照表;客户端在接收 直播视频数据包时,将直播视频数据包放入客户端的内存缓冲区内,同时将直播视频数据 包写入磁盘缓冲区;每个直播视频数据包写入磁盘缓冲区后,客户端在对照表中增加一条 记录,记录直播视频数据包的频道信息、时间信息和在磁盘缓冲区内的存储信息;
客户端在将直播视频数据包写入磁盘缓冲区时,使用与直播服务器存储直播视频数据 相同的命名规则,并在后面增加包的序号;客户端在将直播视频数据包写入磁盘缓冲区时 还要对每个直播视频文件进行校验,并将校验结果放在直播视频文件后面,当其他客户端 从该客户端接收直播视频数据文件时,如果校验结果与直播视频文件的校验结果不同,则 丢弃该直播视频文件;
客户端将直播视频数据文件写入磁盘缓冲区中后的存储情况提交给控制服务器;
当客户端停止收看直播视频时,客户端中断所有直播视频数据包的传输数据链路,清 除客户端的内存缓冲区内的直播视频数据包,删除对照表;
情况(2)客户端申请的直播视频的播放起始时间小于当前时间,大于当前时间减去 直播服务器的内存缓冲区的时间长度数值的时间:
控制服务器首先计算当前时间与客户请求的直播视频的播放起始时间的差,如果请求 的直播视频的播放起始时间小于当前时间,并且大于当前时间减去直播服务器内存缓冲区 的时间长度数值;则控制服务器判断该请求是一个直播服务器内存缓冲区范围内的直播时 移视频请求;客户端申请的直播视频数据包存在于直播服务器的内存缓冲区中,并且当前 收看相同频道的其他客户终端中存储了这些直播视频数据包;控制服务器查询直播信息列 表,然后将当前直播该频道的直播服务器和当前收看该直播频道的其他客户端的连接信息 发送给客户端,客户端与该直播服务器和其他客户端建立数据链接,获得时移时间小于直 播服务器的内存缓冲区的时间长度数值的直播时移视频数据包;
客户端在收看时移时间小于直播服务器的内存缓冲区的时间长度数值的直播时移视 频时,也建立内存缓冲区、磁盘缓冲区和对照表,并与所述情况(1)中的客户端一样完 成文件存储工作、文件校验工作和存储信息提交工作;
情况(3)客户端申请的直播视频的播放起始时间小于当前时间减去直播服务器的内 存缓冲区数值的时间:
控制服务器计算当前时间与客户请求的直播视频的播放起始时间的差,如果请求的直 播视频的播放起始时间小于当前时间减去直播服务器内存缓冲区的时间长度数值;则控制 服务器判断该请求是一个直播服务器内存缓冲区范围外的直播时移视频请求;客户端申请 的直播视频数据包只存在于直播服务器的磁盘存储区中和存储了这些直播视频文件的其 他客户终端磁盘缓冲区中;控制服务器查询直播时移信息列表,然后将存储了这些直播视 频文件的直播服务器和其他客户端的连接信息发送给客户端,客户端与上述服务器和其他 客户端建立数据链接,获得时移时间大于60分钟的直播时移视频数据包;
客户端在收看时移时间大于60分钟的直播时移视频时,也建立内存缓冲区、磁盘缓 冲区;客户端的内存缓冲区、磁盘缓冲区的工作原理与(1)中描述的客户端的工作相同, 区别是客户端收看的是时移时间大于直播服务器的内存缓冲区的时间长度数值的直播时 移视频,直播视频数据是以直播视频文件方式传输;当该客户端收看直播时移视频时,客 户端与情况(1)中的客户端一样完成文件存储工作、文件校验工作和存储信息提交工作;
客户端按照文件方式下载相应的直播视频文件,在播放的同时,将直播视频文件存储 在磁盘缓冲区内;当该客户端停止收看直播时移视频时,客户端向控制服务器提交存储信 息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京天天宽广网络科技有限公司,未经北京天天宽广网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010127346.X/1.html,转载请声明来源钻瓜专利网。