一种自适应流媒体直播控制系统的制作方法

文档序号:18109170发布日期:2019-07-06 11:53阅读:182来源:国知局
一种自适应流媒体直播控制系统的制作方法

本发明属于通信技术领域,特别涉及一种自适应流媒体直播控制系统。



背景技术:

流媒体服务器可以通过组播的方式提供直播业务,通过单播的方式提供点播业务,一般采用默认网络支持相应的视频流媒体协议,但是现实生活中,在部分应用场景直之下,网络不支持组播协议,这种情况下,当用户想要观看直播业务时,需要在骨干网上单独引出一点播流,对网络带宽产生极大浪费,同时对于流媒体服务器来说,存在多个用户并发时,性能要求高,骨干开销大的问题。未来解决上述问题,运营商常会采用对等网络(Peer-to-Peer Network)流媒体直播技术来解决,P2P网络的共享为观众提供了良好的流媒体直播体验,但P2P直播技术不同于P2P下载技术,常会由于不适宜的选路机制和数据传输机制导致延时和视频卡顿的问题,还会产生一定的网络资源的浪费问题。



技术实现要素:

为了解决上述问题,本发明提供了一种自适应流媒体直播控制系统,具体方案如下:

一种自适应流媒体直播控制系统,包括资源服务器,客户端和自适应服务器;

资源服务器包括直播请求判断模块,用于接收客户端发送的节目直播请求,判断客户端所在网络是否支持多播,如果判断结果为“是”,则向多播加入模块发送加入指令;如果判断结果为“否”,向客户端反馈“加入失败信息”;

多播加入模块,用于接收加入指令或多播请求,将客户端或自适应服务器加入多播组,并发送直播视频流数据;

客户端包括直播请求模块、适应请求模块和数据接收模块;

直播请求模块,用于向资源服务器发送节目直播请求;

适应请求模块,用于接收资源服务器发送的“加入失败信息”,向资源判断模块发送适应请求;

自适应服务器,包括资源判断模块、单播转换模块、暂存模块、数据发送模块;

资源判断模块,用于接收适应请求,用于判断自适应服务器是否具有相同节目的单播资源,如果判断结果为“否”,向单播转换模块发送转换指令;如果判断结果为“是”,向暂存模块发送暂存指令,然后向数据发送模块发送数据发送指令;

单播转换模块,用于接收转换指令,向多播加入模块发送多播请求,加入多播组,并将接收的多播数据转换为单播数据,发送给客户端;

暂存模块,用于接收暂存指令,将单播转换模块得到的单播数据开始进行暂存操作;

数据发送模块,用于接收数据发送指令,调取暂存模块中的单播数据,发送给客户端;

数据接收模块,用于接收自适应服务器发送的单播数据或者资源服务器发送的直播视频流数据。

进一步地,自适应服务器还包括P2P查询模块和响应模块,资源服务器还包括节点查询模块;客户端包括相邻节点选择模块和直播加入模块;

资源判断模块,还用于在接收适应请求后,向P2P查询模块发送查询指令;

P2P查询模块,用于接收查询指令,向资源服务器发送节点查询指令,节点查询指令包含后客户端ID信息和请求播放的节目信息;

节点查询模块,用于接收节点查询指令,根据请求播放的节目信息,获取各个节点信息的节点列表数据,发送给客户端;节点列表数据包括各个节点的NID、IP地址、端口、上传带宽和下载带宽,其中节点包括正常多播组,和对等多播组;正常多播组内的节点是经由直接接收资源服务器的多播信道,接收数据资源,并缓存有媒体流数据的客户端;对等多播组内的节点经由其他节点的P2P直播流接收数据资源,并缓存有媒体流数据的客户端;

相邻节点选择模块,用于接收节点列表信息,按照预设规则计算节点权重值Y,得到相邻节点顺序表,然后选择相邻节点;

直播加入模块,用于接收用户发送的加入P2P直播流传送网络指令,按照相邻节点,向相邻节点发送流媒体下载请求,同时向响应模块发送停止数据发送指令;

响应模块,用于接收停止数据发送指令,停止相关节目数据的接收和发送;

数据接收模块,还用于接收来自于相邻节点发送的视频数据包。

进一步地,节点权重值Y按照下式进行判断,Y=0.23a/A+0.61B/b+0.16x,其中a为节点客户端与请求客户端之间的路径距离的预设标准距离值,A为实际节点客户端与请求客户端之间的路径距离值;b为标准上传带宽值,B为节点客户端的实际上传带宽值;其中x值,当节点为正常多播组时,x为1;当节点为对等多播组时,x为0。

进一步地,客户端包括缓存模块、缓存判断模块和帧判断模块;

缓存模块,用于缓存数据接收模块接收到的视频数据包;

帧判断模块,用于判断缓存区内的数据包的视频帧情况,并设置或识别每个数据包的帧标签,其中帧标签为包含I帧、P帧或B帧的数据包;

缓存判断模块,用于对缓存区数据量进行判断,当判断到缓存区数据量小于缓存区总存储量50%时,向直播加入模块发送第一数据请求指令;

直播加入模块,用于接收第一数据请求指令,按照相邻节点顺序表,选择不同的相邻节点分别发送第一数据请求、第二数据请求和第三数据请求;其中第一数据请求为包含I帧的数据包,第二数据请求为包含P帧的数据包,第三数据请求为包换B帧的数据包。

更进一步地,接收第一数据请求的相邻节点为相邻节点顺序表上的第一位和第四位;接收第二数据请求的为相邻节点顺序表上的第二位和第五位;接收第三数据请求的为相邻节点顺序表上的第一位、第三位和第六位。

进一步地,客户端还包括筛选模块,用于对接收的数据包进行筛选,判断缓存区是否以缓存相同的数据包,如果判断结果为“是”,则将接收的数据包丢弃。

更进一步地,缓存判断模块,当判断到缓存区数据量大于缓存区总存储量67%时,向直播加入模块发送第二数据请求指令;

直播加入模块,还用于接收第二数据请求指令,向相邻节点顺序表上的前三位发送流媒体下载请求。

进一步地,客户端还包括监测模块,当监测到相邻节点反馈时间间隔或者发送的数据包时间间隔超过预设阈值时,断开与相关相邻节点的连接,同时搜索相邻节点顺序表,寻找代替相邻节点,发送数据请求指令。

进一步地,客户端还包括数据包查询模块,用于对接收的数据包进行排序,判断是否具有缺失,如果判断结果为“是”,向直播加入模块发送第三数据请求指令;

直播加入模块,用于接收第三数据请求指令,向相邻节点顺序表上的前十位发送缺失数据包下载请求。

更进一步地,客户端还包括转码模块,用于转换接收到的视频数据的格式。

本发明所提供的自适应流媒体直播控制系统,可以另客户端位于不支持组播协议的网络内时,观看直播节目的问题,本地播放耗资少,同时极大程度缓解资源服务器的并发拥堵的问题,P2P播放另直播视频延时缩短,观看效果更佳,网络资源使用更合理。

附图说明

图1.实施例1自适应流媒体直播控制系统各部件间的连接示意图;

图2.实施例1自适应流媒体直播控制系统各模块间的连接示意图;

图3.实施例2自适应流媒体直播控制系统各模块间的连接示意图;

图4.实施例3自适应流媒体直播控制系统部分模块间的连接示意图;

图5.实施例3自适应流媒体直播控制系统的构架示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的描述,下列实施例仅用于解释本发明的发明内容,不用于限定本发明的保护范围。

实施例1

如图1和图2所示,一种自适应流媒体直播控制系统,包括资源服务器1,客户端2和自适应服务器3;

资源服务器1包括直播请求判断模块101和多播加入模块102;客户端2包括直播请求模块103、适应请求模块104和数据接收模块105;自适应服务器3,包括资源判断模块106、单播转换模块107、暂存模块108、数据发送模块109;

直播请求模块103,用于向资源服务器1发送节目直播请求,

直播请求判断模块101,用于接收客户端2发送的节目直播请求,判断客户端2所在网络是否支持多播,如果判断结果为“是”,则向多播加入模块102发送加入指令;如果判断结果为“否”,向客户端2反馈“加入失败信息”;

多播加入模块102,用于接收加入指令或多播请求,将客户端2或自适应服务器3加入多播组,并发送直播视频流数据;

适应请求模块104,用于接收资源服务器1发送的“加入失败信息”,向资源判断模块106发送适应请求;

资源判断模块106,用于接收适应请求,用于判断自适应服务器3是否具有相同节目的单播资源,如果判断结果为“否”,向单播转换模块107发送转换指令;如果判断结果为“是”,向暂存模块108发送暂存指令,然后向数据发送模块109发送数据发送指令;

单播转换模块107,用于接收转换指令,向多播加入模块102发送多播请求,加入多播组,并将接收的多播数据转换为单播数据,发送给客户端2;

暂存模块108,用于接收暂存指令,将单播转换模块107得到的单播数据开始进行暂存操作;

数据发送模块109,用于接收数据发送指令,调取暂存模块108中的单播数据,发送给客户端2;

数据接收模块105,用于接收自适应服务器3发送的单播数据或者资源服务器1发送的直播视频流数据。

客户端发送直播请求,例如在家庭网络之下,且网络允许加入组播,则直接加入组播组,但当客户端位于不支持组播协议的网络内时,向自适应服务器发送请求,自适应服务器可以进行判断是否正在进行相同节目的单播转换,如果在同一自适应服务器的服务范围内具有相同节目的单播转换服务,则直接将该直播内容进行暂存,然后直接本地进行提取数据并进行发送即可;如果没有相同节目服务,则自适应服务器加入组播,接收组播数据然后转换为单播数据,发送给客户端进行播放,解决在不能接收组播数据的情况下观看直播节目的问题,耗资少,同时极大程度缓解资源服务器的并发拥堵的问题。

实施例2

如图3所示,本实施例所提供的自适应流媒体直播控制系统,与实施例1的区别在于,进一步限定,自适应服务器3还包括P2P查询模块201和响应模块202,资源服务器1还包括节点查询模块203;客户端2包括相邻节点选择模块204和直播加入模块205;

资源判断模块106,还用于在接收适应请求后,向P2P查询模块201发送查询指令;

P2P查询模块201,用于接收查询指令,向资源服务器1发送节点查询指令,节点查询指令包含后客户端ID信息和请求播放的节目信息;

节点查询模块203,用于接收节点查询指令,根据请求播放的节目信息,获取各个节点信息的节点列表数据,发送给客户端2;节点列表数据包括各个节点的NID、IP地址、端口、上传带宽和下载带宽,其中节点包括正常多播组,和对等多播组;正常多播组内的节点是经由直接接收资源服务器1的多播信道,接收数据资源,并缓存有媒体流数据的客户端2;对等多播组内的节点经由其他节点的P2P直播流接收数据资源,并缓存有媒体流数据的客户端2;

相邻节点选择模块204,用于接收节点列表信息,按照预设规则计算节点权重值Y,得到相邻节点顺序表,然后选择相邻节点;

直播加入模块205,用于接收用户发送的加入P2P直播流传送网络指令,按照相邻节点,向相邻节点发送流媒体下载请求,同时向响应模块202发送停止数据发送指令;

响应模块202,用于接收停止数据发送指令,停止相关节目数据的接收和发送;

数据接收模块105,还用于接收来自于相邻节点发送的视频数据包。

节点权重值Y按照下式进行判断,Y=0.23a/A+0.61B/b+0.16x,其中a为节点客户端2与请求客户端2之间的路径距离的预设标准距离值,A为实际节点客户端2与请求客户端2之间的路径距离值;b为标准上传带宽值,B为节点客户端2的实际上传带宽值;其中x值,当节点为正常多播组时,x为1;当节点为对等多播组时,x为0。

在单播转换的同时,可以申请P2P资源,资源服务器得到节点列表发送给客户端,给客户端提供另一种延时更短的视频获取渠道,由于在网络中的节点的视频数据来源包括两种方式,即组播直接获得和P2P间接获得,正常多播组由于及时获得的数据,因此数据包更新最为迅速,则在节点选择的时候要对视频数据来源进行适当的考量,当客户端选择进入P2P网络后,经过合理计算,得到适宜相邻节点,另直播视频延时缩短,观看效果更佳。

实施例3

如图4和图5所示,本实施例所提供的自适应流媒体直播控制系统,与实施例2的区别在于,进一步限定,客户端2包括筛选模块301、缓存模块302、缓存判断模块303和帧判断模块304;

缓存模块302,用于缓存数据接收模块105接收到的视频数据包;

帧判断模块304,用于判断缓存区内的数据包的视频帧情况,并设置或识别每个数据包的帧标签,其中帧标签为包含I帧、P帧或B帧的数据包;

缓存判断模块303,用于对缓存区数据量进行判断,当判断到缓存区数据量小于缓存区总存储量50%时,向直播加入模块205发送第一数据请求指令;当判断到缓存区数据量大于缓存区总存储量67%时,向直播加入模块205发送第二数据请求指令;

直播加入模块205,用于接收第一数据请求指令,按照相邻节点顺序表,选择不同的相邻节点分别发送第一数据请求、第二数据请求和第三数据请求;其中第一数据请求为包含I帧的数据包,第二数据请求为包含P帧的数据包,第三数据请求为包换B帧的数据包。

接收第一数据请求的相邻节点为相邻节点顺序表上的第一位和第四位;接收第二数据请求的为相邻节点顺序表上的第二位和第五位;接收第三数据请求的为相邻节点顺序表上的第一位、第三位和第六位;

直播加入模块205,还用于接收第二数据请求指令,向相邻节点顺序表上的前三位发送流媒体下载请求;

筛选模块301,用于对接收的数据包进行筛选,判断缓存区是否以缓存相同的数据包,如果判断结果为“是”,则将接收的数据包丢弃。

根据客户端的缓存情况,进行适当的数据请求变换,同时向相邻节点进行数据包的请求并不完全相同,根据不同的权重值,来衡量数据包请求,将数据包进行分类,并进行单独获取,并将包含I帧的数据包具有最高的优先级,同时对获得的数据包进行筛选,避免重复接收,最大程度提高数据接收的速度,降低延时,保证数据传输的稳定性,同步直播效果好,视频稳定性高,对网络要求低,具有广泛实用性。

实施例4

本实施例所提供的自适应流媒体直播控制系统,与实施例3的区别在于,进一步限定,客户端2还包括监测模块、数据包查询模块和转码模块;

监测模块,当监测到相邻节点反馈时间间隔或者发送的数据包时间间隔超过预设阈值时,断开与相关相邻节点的连接,同时搜索相邻节点顺序表,寻找代替相邻节点,发送数据请求指令;

数据包查询模块,用于对接收的数据包进行排序,判断是否具有缺失,如果判断结果为“是”,向直播加入模块205发送第三数据请求指令;

直播加入模块205,用于接收第三数据请求指令,向相邻节点顺序表上的前十位发送缺失数据包下载请求;

转码模块,用于转换接收到的视频数据的格式。

对相邻节点的数据传输进行监控,即使更新相邻节点的连接和丢失数据包的获取,防止数据的丢失从而导致视频的不能播放问题,保证视频播放的流畅性。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1