实时流媒体数据传输方法

文档序号:7797726阅读:212来源:国知局
实时流媒体数据传输方法
【专利摘要】本发明提供了一种实时流媒体数据传输方法。所述实时流媒体数据传输方法,应用于包括通信连接的发布服务器、中转服务器以及观看服务器的CDN网络;所述方法包括:所述发布服务器接收发布者客户端发布的流媒体数据;所述发布服务器、中转服务器以及观看服务器在接收到流媒体数据请求时,若本地有目标流媒体数据,则将所述目标流媒体数据转发至请求者。通过本发明可以使用户快速的获得实时流媒体数据进行播放,有效的减少了实时流媒体传输的延迟时间。
【专利说明】 实时流媒体数据传输方法
【技术领域】
[0001]本发明涉及网络通信【技术领域】,尤其涉及一种实时流媒体数据传输方法。
【背景技术】
[0002]随着互联网近几年的快速发展,⑶N技术为大量用户快速的访问Web页面以及更新页面表单数据等方面提供了有力支持。CDN技术是指在网络各处放置节点服务器,从而在现有的互联网基础之上形成一层智能虚拟网络架构。通过CDN技术,可以将网站的内容发布至最接近用户的网络“边缘”,使用户可以就近取得所需的内容,从而可以提高用户访问网站的响应速度,提升用户体验。
[0003]流式传输是指以流的方式在网络中传输音频、视频以及多媒体文件的形式。流媒体文件格式是支持采用流式传输及播放的媒体格式。对于基于普通视频文件的网络视频,传统的CDN技术依然适用,但是对于基于实时流媒体的网络视频,传统的CDN技术已经很难满足市场的需求。
[0004]现有技术中,为了能够利用现有的CDN技术和网络节点资源实现实时流媒体传输,很多企业采用将实时流媒体数据转换为传统的视频文件数据块的方式实现CDN加速。即首先将实时流媒体数据按照到达的顺序存储为不同的视频文件数据块,然后在CDN网络上同步这些视频文件数据块。
[0005]然而,上述方法会造成用户观看到实时视频的延迟时间有所增加,增加的延迟时间主要包括:缓冲流媒体数据并保存为视频文件数据块所需的时间(例如保存一个时长为5s的视频文件数据块,则至少需要5秒);保存为视频文件数据块后通知CDN控制中心,使其得知视频文件数据块已保存,可以同步所需的时间;CDN控制中心通知观看服务器可以开始同步所需的时间;观看服务器同步视频文件数据块所需的时间等等。对于实时流媒体传输,过长的延迟时间会严重影响用户体验。

【发明内容】

[0006]本发明的目的在于针对【背景技术】中的部分问题或者全部问题,提供一种实时流媒体数据传输方法,用于减少CDN网络中实时流媒体传输的延迟时间。
[0007]具体的,所述实时流媒体数据传输方法,应用于包括通信连接的发布服务器、中转服务器以及观看服务器的CDN网络;所述方法包括:
[0008]所述发布服务器接收发布者客户端发布的流媒体数据;
[0009]所述发布服务器、中转服务器以及观看服务器在接收到流媒体数据请求时,若本地有目标流媒体数据,则将所述目标流媒体数据转发至请求者。
[0010]由以上技术方案可见,本发明所提供的实时流媒体数据传输方法中,采用流媒体数据转发的模式,实现CDN网络中的实时流媒体传输,即可以连续、实时的传输流媒体数据。相比于现有技术中将流媒体文件转换为视频文件数据块再进行传输的方式,由于没有缓冲流媒体数据并保存为视频文件数据块等过程所需的时间,因此通过本发明可以使用户 快速的获得实时流媒体数据进行播放,有效的减少了实时流媒体传输的延迟时间。
【专利附图】

【附图说明】
[0011]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0012]图1是实施例一中所提供的实时流媒体数据传输方法的一种适用场景示意图;
[0013]图2是实施例一中主播向发布服务器发布流媒体数据的流程示意图;
[0014]图3是实施例一中观看者客户端向观看服务器请求流媒体数据的流程示意图;
[0015]图4是实施例一中观看服务器向中转服务器请求流媒体数据的流程示意图;
[0016]图5是实施例一中中转服务器向发布服务器请求流媒体数据的流程示意图;
[0017]图6是实施例一中所提供的实时流媒体数据传输方法的一种流程示意图;
[0018]图7是实施例二中观看服务器选择发布服务器或者中转服务器一种实现方式的流程示意图。
【具体实施方式】
[0019]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0020]实施例一
[0021]本实施例中提供了一种实时流媒体数据传输方法,该方法应用于如图1中所示的CND网络中,该CDN网络包括通信连接的发布服务器、中转服务器以及观看服务器的CDN网络。每个需要进行CDN加速的地区,都会布设若干台发布服务器和若干台观看服务器;例如,图1中地区D布设有一台发布服务器以及一台观看服务器组成;地区C布设有一台发布服务器以及两台观看服务器组成;需要注意的是,虽然图中中转服务器布设距离较近,但是实际网络中中转服务器并不一定集中部署,而是根据网络质量情况部署在各个不同区域以及不同运营商的机房里。
[0022]所述实时流媒体数据传输方法主要包括:所述发布服务器接收发布者客户端发布的流媒体数据。所述发布服务器、中转服务器以及观看服务器在接收到流媒体数据请求时,若本地有目标流媒体数据,则将所述目标流媒体数据转发至请求者。由于在本实施例中,采用的是流媒体数据转发的模式,即连续、实时的传输流媒体数据。相比于现有技术中,需要将流媒体数据转换为视频文件数据块再进行传输的方式,由于没有缓冲流媒体数据并保存为视频文件数据块等过程所需的时间,因此通过本发明可以使观众快速的获得实时流媒体数据进行播放,有效的减少了实时流媒体传输的延迟时间。下面以实时视频社交为例,对本实施例中所提供的实时流媒体数据传输方法进行更详细的说明:
[0023]如图2中所示,所述发布服务器接收发布者客户端发布的流媒体数据。主播通过发布者客户端(即主播客户端),基于实时流媒体协议发布直播视频,所述直播视频以流媒体数据的形式上传至其所在区域的发布服务器。
[0024]如图3中所示,观众想要观看主播发布的实时视频时,则通过观看者客户端(即观众客户端)向所述观看服务器发送流媒体数据请求,观看服务器本地有目标流媒体数据时,直接下发至观众客户端。观看服务器本地没有目标流媒体数据时,则会向发布服务器或者中转服务器请求所述被请求数据。
[0025]此外,如果观看服务器接收到请求没有在任何发布服务器上发布的流媒体数据,则说明该请求可能是攻击请求。为了尽可能避免此类攻击造成损失,本实施例中的观看服务器在接收到流媒体数据请求时,可以首先依据目标流媒体数据的名称或者其他标识判断所述目标流媒体数据是否在某一发布服务器上发布;若在某一发布服务器发布,则继续后续步骤;若没有在任何发布服务器上发布,为了安全起见,则向观众客户端返回请求失败,并告知原因是由于没有目标流媒体数据。
[0026]如图4中所示,如果观看服务器本地没有目标流媒体数据,则会向中转服务器(也可能是本区域内的发布服务器,本实施例中以中转服务器为例进行说明)请求所述目标流媒体数据,中转服务器接收到观看服务器的发送的流媒体数据请求后,如果本地有目标流媒体数据时,直接下发至观看服务器。中转服务器本地没有目标流媒体数据时,则会向发布所述目标流媒体数据的发布服务器请求所述被请求数据。
[0027]此外,如果中转服务器接收到请求没有在任何发布服务器上发布的流媒体数据,则说明该请求可能是攻击请求。为了尽可能避免此类攻击造成损失,本实施例中的中转服务器在接收到流媒体数据请求时,可以首先依据目标流媒体数据的名称或者其他标识判断所述目标流媒体数据是否在某一发布服务器上发布;若在某一发布服务器发布,则继续后续步骤;若没有在任何发布服务器上发布,为了安全起见,则向观看服务器返回请求失败,并告知原因是由于没有目标流媒体数据,观看服务器将该反馈信息转发至观众客户端。
[0028]如图5中所示,如果中转服务器本地没有目标流媒体数据,则会向发布所述目标流媒体数据的发布服务器请求所述目标流媒体数据,该发布服务器接收到中转服务器的发送的流媒体数据请求后,如果本地有目标流媒体数据时,直接下发至中转服务器。如果该发布服务器本地没有目标流媒体数据时,则向观众客户端返回请求失败,并告知原因是由于没有目标流媒体数据;该反馈信息通过中转服务器以及观看服务器被转发至观众客户端。
[0029]如图6中所示,为在观看服务器以及中转服务器本地均没有所述目标流媒体数据,而在发布服务器本地有所述目标流媒体数据时,从观众客户端向观看服务器请求流媒体数据到观众客户端接收到目标流媒体数据的整个流程示意图。
[0030]实施例二
[0031]在本实施方式中,观看服务器选择中转服务器或者发布服务器时,可以选择服务质量较好的来进行数据传输;本实施方式中的服务质量好是主要是指向观看服务器传输数据速度快。为了进一步优化数据传输质量,本实施例中还提供了一种在利用实施例一中提供的方法实现的数据传输过程中,观看服务器选择中转服务器或者发布服务器的方法。
[0032]由于位于同一区域的服务器之间网络条件通常较好,因此,本实施例中在观看服务器所在地域存在发布所述目标流媒体数据的发布服务器时,观看服务器直接向本区域内发布所述目标流媒体数据的发布服务器请求所述目标流媒体数据。即如图7中所示:
[0033]首先判断所述目标流媒体数据是否在与所述观看服务器位于同一区域的发布服务器上发布:若是,则向与所述观看服务器位于同一区域且发布所述目标流媒体数据的发布服务器请求所述目标流媒体数据;若否,则向所述中转服务器请求所述目标流媒体数据。
[0034]当观看服务器所在区域没有发布服务器发布所述目标流媒体数据时,观看服务器则选择向中转服务器请求所述目标流媒体数据。而选择哪一台中转服务器作为目标中转服务器是一个综合考量的结果;例如观看服务器A与中转服务器B之间的网络条件很好,传输数据的速度很快,但中转服务器B与发布所述目标流媒体数据的发布服务器C之间网络条件很差,传输数据的速度很慢,这样,目标流媒体数据从发布服务器到观众服务器之间的传输质量将受限于中转服务器B与发布服务器C之间的网络条件。因此直接选择中转服务器B作为目标中转服务器是不合适的。因此,本实施例中,所述观看服务器需要根据预设规则选择目标中转服务器,并将所述目标中转服务器转发的目标流媒体数据转发至所述观众客户端。示例性的,本实施例中还提供了几种上述预设规则的具体实现方式:
[0035]例如,如图7中所示,所述观看服务器根据预设规则选择目标中转服务器可以包括:
[0036]步骤A、随机选择一中转服务器,向其发送流媒体数据请求,请求所述目标流媒体数据;中转服务器将目标流媒体数据转发至观看服务器,观看服务器进而将接收到的目标流媒体数据转发至观众客户端。
[0037]步骤B、所述观看服务器定时监测接收到的目标流媒体数据帧率。
[0038]步骤C、将监测到的帧率与预设帧率(该预设帧率可以根据实际网络具体设定)进行比较,若监测到的帧率达到预设帧率,则以当前选择的中转服务器为目标中转服务器并转至步骤B ;若监测到的帧率未达到预设帧率,则转至步骤D ;
[0039]步骤D、向所有中转服务器(本发明指代上述观看服务器可以访问的所有中转服务器)分别请求所述目标流媒体数据,并监测接收到的目标流媒体数据帧率,选择监测到的帧率最高时对应的中转服务器为目标中转服务器同时转至步骤B。
[0040]在该过程中,如果第一次选择的中转服务器对应的帧率大于预设帧率,则可以以该中转服务器为目标中转服务器,不必再次进行选择;否则,从所有中转服务器中选择出服务质量最优的为目标中转服务器。
[0041 ] 又例如,所述观看服务器根据预设规则选择目标中转服务器可以包括:
[0042]步骤A、随机选择一未被选中过的中转服务器(在初始时刻,所有中转服务器均为未被选中过的中转服务器),向其发送流媒体数据请求,请求所述目标流媒体数据;中转服务器将目标流媒体数据转发至观看服务器,观看服务器进而将接收到的目标流媒体数据转发至观众客户端。
[0043]步骤B、所述观看服务器定时监测接收到的目标流媒体数据帧率。
[0044]步骤C、将监测到的帧率与预设帧率(该预设帧率可以根据实际网络具体设定)进行比较,若监测到的帧率达到预设帧率,则以当前选择的中转服务器为目标中转服务器并转至步骤B ;若监测到的帧率未达到预设帧率,则转至步骤A。
[0045]步骤D、若遍历所有中转服务器(本发明指代上述观看服务器可以访问的所有中转服务器),监测到的帧率均未达到预设帧率,则选择监测到的帧率最高时对应的中转服务器为目标中转服务器。
[0046]在该过程中,选择到的中转服务器对应的帧率达到预设帧率,则以该中转服务器为目标中转服务器,不必进行后续选择。
[0047]再例如,所述观看服务器根据预设规则选择目标中转服务器还包括:
[0048]步骤A、随机选择一未被选中过的中转服务器(在初始时刻,所有中转服务器均为未被选中过的中转服务器),向其发送流媒体数据请求,请求所述目标流媒体数据;中转服务器将目标流媒体数据转发至观看服务器,观看服务器进而将接收到的目标流媒体数据转发至观众客户端。
[0049]步骤B、所述观看服务器定时监测接收到的目标流媒体数据帧率。
[0050]步骤C、转至步骤A ;重复上述步骤,直至至遍历所有中转服务器(本发明指代上述观看服务器可以访问的所有中转服务器),选择监测到的帧率最高时对应的中转服务器为目标中转服务器。
[0051]在该过程中,是从所有中转服务器中选择出服务质量最优的为目标中转服务器。
[0052]最后,在选择好目标中转服务器后,观看服务器向目标中转服务器请求所述目标流媒体数据,并将所述目标中转服务器转发的目标流媒体数据转发至所述观众客户端。所述将所述目标中转服务器转发的流媒体数据转发至所述观众客户端还包括:调整所述观众客户端的音视频时间戳,使其与所述目标中转服务器转发的流媒体数据时间戳适应。如果在观看过程中,目标中转服务器发生了变化,则重新调整所述观众客户端的音视频时间戳,使其与新的目标中转服务器转发的流媒体数据时间戳适应。
[0053]综合上述实施例可知,相比于现有技术中将流媒体文件转换为视频文件数据块再进行传输的方式,本发明所提供的实时流媒体数据传输方法由于没有缓冲流媒体数据并保存为视频文件数据块等过程所需的时间,因此通过本发明所提供的时流媒体数据传输方法可以使用户快速的获得实时流媒体数据进行播放,有效的减少了实时流媒体传输的延迟时间。此外,通过本发明所提供的观看服务器选择中转服务器或者发布服务器的方法,可以进一步优化实时流媒体数据的传输质量,提升用户体验。
[0054]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【权利要求】
1.一种实时流媒体数据传输方法,应用于包括通信连接的发布服务器、中转服务器以及观看服务器的CDN网络;其特征在于,所述方法包括: 所述发布服务器接收发布者客户端发布的流媒体数据; 所述发布服务器、中转服务器以及观看服务器在接收到流媒体数据请求时,若本地有目标流媒体数据,则将所述目标流媒体数据直接转发至请求者。
2.根据权利要求1所述的实时流媒体数据传输方法,其特征在于,所述方法还包括: 观看服务器接收到观看者客户端的流媒体数据请求时,若本地没有目标流媒体数据,则向所述中转服务器或发布服务器请求所述目标流媒体数据; 中转服务器接收到观看服务器的流媒体数据请求时,若本地没有目标流媒体数据,则向所述发布服务器请求所述目标流媒体数据。
3.根据权利要求2所述的实时流媒体数据传输方法,其特征在于,所述发布服务器、中转服务器以及观看服务器在接收到流媒体数据请求时,首先判断目标流媒体数据是否在所述发布服务器发布: 若是,则继续;若否,则返回请求失败。
4.根据权利要求2所述的实时流媒体数据传输方法,其特征在于,所述向所述中转服务器或发布服务器请求所述目标流媒体数据还包括: 判断所述目标流媒体数据是否在与所述观看服务器位于同一区域的发布服务器上发布: 若是,则向与所述观看服务器位于同一区域且发布所述目标流媒体数据的发布服务器请求所述目标流媒体数据; 若否,则向所述中转服务器请求所述目标流媒体数据。
5.根据权利要求1-4任意一项所述的实时流媒体数据传输方法,其特征在于,所述向所述中转服务器请求所述目标流媒体数据还包括: 所述观看服务器根据预设规则选择目标中转服务器,并将所述目标中转服务器转发的目标流媒体数据转发至所述观看者客户端。
6.根据权利要求5所述的实时流媒体数据传输方法,其特征在于,所述观看服务器根据预设规则选择目标中转服务器还包括: 步骤A、随机选择一中转服务器,向其请求所述目标流媒体数据; 步骤B、所述观看服务器定期监测接收到的目标流媒体数据帧率; 步骤C、若监测到的帧率达到预设帧率,则以当前选择的中转服务器为目标中转服务器并转至步骤B ;否则,转至步骤D ; 步骤D、向所有中转服务器分别请求所述目标流媒体数据,并监测接收到的目标流媒体数据帧率,选择监测到的帧率最高时对应的中转服务器为目标中转服务器同时转至步骤B。
7.根据权利要求5所述的实时流媒体数据传输方法,其特征在于,所述观看服务器根据预设规则选择目标中转服 务器还包括: 步骤A、随机选择一未被选中过的中转服务器,向其请求所述目标流媒体数据; 步骤B、所述观看服务器监测接收到的目标流媒体数据帧率; 步骤C、若监测到的帧率达到预设帧率,则以当前选择的中转服务器为目标中转服务器并转至步骤B ;否则,则转至步骤A ;步骤D、若遍历所有中转服务器,监测到的帧率均未达到预设帧率,则选择监测到的帧率最高时对应的中转服务器为目标中转服务器。
8.根据权利要求5所述的实时流媒体数据传输方法,其特征在于,所述观看服务器根据预设规则选择目标中转服务器还包括: 步骤A、随机选择一未被选中过的中转服务器,向其请求所述目标流媒体数据; 步骤B、所述观看服务器监测接收到的目标流媒体数据帧率; 步骤C、转至步骤A ;至遍历所有中转服务器,选择监测到的帧率最高时对应的中转服务器为目标中转服务器。
9.根据权利要求6-8任意一项所述的实时流媒体数据传输方法,其特征在于,所述将所述目标中转服务器转发的流媒体数据转发至所述观看者客户端还包括: 调整所述观看者客户端的音视频时间戳,使其与所述目标中转服务器转发的流媒体数据时间戳适应。
10.根据权利要求9所述的实时流媒体数据传输方法,其特征在于,所述将所述目标中转服务器转发的流媒体数据转发至所述观看者客户端还包括: 若所述目标中转服务器发生变化,则重新调整所述观看者客户端的音视频时间戳,使其与新的目标中转服务器转发的流媒体数据时间戳适应。
【文档编号】H04N21/63GK103841468SQ201410069594
【公开日】2014年6月4日 申请日期:2014年2月27日 优先权日:2014年2月27日
【发明者】刘涵 申请人:北京六间房科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1