一种基于cdn的直播流自适应方法和系统的制作方法

文档序号:10691591阅读:505来源:国知局
一种基于cdn的直播流自适应方法和系统的制作方法
【专利摘要】本发明公开了一种基于CDN的直播流自适应方法和系统,包括用户端、CDN网络和域名系统DNS,所述CDN网络包括边界服务器、转发器、直播源,还包括集中控制器、用户请求分析器、网络状况分析器、编码器、流适配器。所述集中控制器连接所述边界服务器、转发器和直播源,所述集中控制器包括流适配器,所述边界服务器包括请求分析器和路由表,所述转发器包括网络分析器和路由表,所述直播源包括直播流发送器和编码器,所述用户端包括直播服务请求器;流适配器接收用户请求分析器、网络状况分析器、编码器发送信息;并根据接收到的信息,向直播源服务器、边界服务器、转发器发送控制信息;向DNS发送边界服务器负载信息。
【专利说明】
-种基于CDN的直播流自适应方法和系统
技术领域
[0001] 本发明设及计算机互联网领域,特别是设及内容分发网络中直播流自适应方法和 系统领域。
【背景技术】
[0002] 互联网至今已经获得快速的发展,随着网络规模的增大和互联网用户的增多,当 前的基于TCP/IP的网络体系结构面临巨大挑战。在互联网诞生之初,互联网应用主要是基 于端到端的通信,如用户想要在家里登陆公司的主机等,在运类应用中,用户明确通信的主 机,通信一端必须获得对端的IP地址,才能建立连接实现通信。运种通信方式非常适合当时 对互联网的通讯需求,因此极大地促进了互联网的发展。
[0003] 然而,互联网在近几十年的发展,促使了大量创新应用不断产生。运类应用使得基 于端到端通信的传统TCP/IP网络出现了很多问题。尤其是近些年,内容分发类应用大量出 现,如文件分享,视频网站等。在此类应用中,用户不再关屯、从何处获取内容,只关屯、如何更 好的获取内容。例如用户想要观看体育赛事的视频,但是并不关屯、运些视频是哪台机器来 提供服务的,只关屯、W更快的响应时间,更高的码率观看更清晰视频的体验。
[0004] 同时,当前互联网路由器无法识别其传输的内容,导致同样的数据在某些网络路 径中冗余传输,降低网络带宽实际利用率。例如,在某一局域网的N个用户请求观看同一视 频网站上的同一个体育赛事的视频,对于视频网站和网络而言,对每一个用户,都必须发送 该视频流。因此在该局域网到视频网站的共同路径上,存在N个传输相同数据的视频流,因 此造成了带宽的浪费,降低了网络的实际利用率。
[0005] 为了适应高效内容分发的需求,出现了一系列很多通过改良传统网络体系结构的 内容分发技术,如P2P、化b/Sub、WebCachenet和内容分发网络CDN。其中CDN(Content Delivery化twork)作为一种较为成熟的分发技术,广泛应用了网站访问,文件分享,和流 媒体服务等领域。CDN通过在现有TCP/IP网络之上,在网络屯层结构的应用层,部署新的网 络技术支持,通过部署边界代理服务器来将内容分发到网络的边缘,W此使得用户尽可能 近的,获取所需的内容,从而降低响应时间,减少冗余传输来解决内容的分发效率问题。通 过用户就近访问的特性W及服务器负载均衡,网络流量,网络联通性,用户距离,响应延时 的判断,CDN确保内容W-种极为高效的方式为用户提供服务。
[0006] CDN系统结构包括域名服务系统DNS、用户端、源服务器、转发器和边界代理服务 器,其架构如附图1所示。其中源服务器Source用S表示,边界代理服务器Edge Server用E表 示,转发器Ref lector用R表示,用户端用C表示;源服务器Source位于IP网络的核屯、位置,存 放原始的内容,并且将内容预编码成不同的版本文件,响应网络请求,提供内容服务。DNS将 用户的请求映射到离用户最近的边界代理服务器上。边界代理服务器Edge Server处于网 络的边缘,如果其缓存了源服务器的内容,则直接服务于本地的用户请求。否则,边界代理 服务器将用户请求向转发器Reflector转发,通过转发器向源服务器请求内容,然后将请求 回的内容缓存下来,并向用户服务。
[0007] 在过去的十几年间,CDN对互联网的发展起到了极大的推动作用。CDN解决了众多 传统网络的问题。如通过在网络中使用多播的传输模式,减少冗余流量的传输,并且将用户 的请求根据网络状况,负载情况,动态的映射到离用户较近的边界代理服务器,降低了网络 拥塞发生的可能性。其次,大大降低了网络响应延时,提高了用户体验。再者,CDN的缓存技 术,在流媒体传输,网站加速等方面对互联网应用的发展起到了很好的推动作用。
[0008] 随着近几年网络的发展,内容分发应用又出现了创新,W直播视频为代表的内容 分发应用给CDN带来了新的挑战。视频直播应用已经是当今互联网流量的重要部分。对直播 视频的需求也W每Ξ年4-5倍的速度增长,直播视频高峰期的流量也达到了 5(yrbps,主流的 视频网站如腾讯视频,优酷±豆,爱奇艺等都已布局了视频直播应用。2014年的世界杯直 播,使用传统的CDN系统每秒传输几 T字节的流量。在该时间段占据了所有互联网流量的 40%。直播视频的多样性和巨大的容量,是现代CDN系统的一个复杂的现象。然而巨大的需 求并不是唯一的挑战。
[0009] 首先,直播视频应用要求实时传输视频,运一特殊的需求,使得CDN的缓存失去了 意义。由于直播视频不存在缓存,用户观看直播流比观看普通视频会更加注重吞吐量,并且 吞吐量与直播流码率是成正相关的。即直播流码率越高,相应该流的吞吐量就大,运意味 着,对于直播流提供商来说,要为用户服务码率更高更清晰的直播流,所需CDN网络带宽就 越大。然而随着在线直播的流行,更多的网络用户在直播网站上开通直播栏目,向其订阅粉 丝直播。因此当开设的直播栏目太多,其带宽需求超过CDN的容量时,必然造成一些直播流 必须降低码率,甚至造成一些直播流无法访问,运在视频直播的高峰时段,是非常常见的现 象。对于运样的问题,通常可W通过增加对CDN的投资来增大CDN的容量,但是运并不具备扩 展性。并且网络度过了直播高峰期之后,多余的CDN容量无法充分利用,而造成了网络容量 的巨大浪费。因此在CDN的容量限制条件下,如何优化直播流的码率选择和直播流放置,来 最优化用户体验,对于当前CDN是一个非常重要的挑战。
[0010] 其次,直播视频提供商一般会对每个视频进行有限种不同码率的编码,来形成不 同清晰度的视频,如流杨(480p),清晰(720p),局清(108化),超局清(2k)等都对应不同码率 的编码的直播流。用户对直播流需求的多样性和动态变化性也是一大挑战。即使是订阅同 样直播栏目的用户,由于信道条件的不同,用户端处理能力,屏幕分辨率等的不同,往往对 直播流码率有着不同的需求。除此之外,根据网络状况的变化,用户对直播流码率的需求并 不会保持不变。因此如何根据用户请求和网络带宽的变化,自动优化直播流码率选择和直 播流放置,运也是现代CD的受计的另一项重要挑战。

【发明内容】

[0011] 本发明目的就是为解决直播流自动优化问题。
[0012] 本发明的技术问题通过W下的技术方案予W解决:
[001引一种基于CDN的直播流自适应方法,包括如下步骤:
[0014] A1流适配器接收来部署在边界服务器上的用户请求分析器发来的请求分析信息;
[0015] A2、接收部署在转发器上的网络状况分析器发来的CDN网络状况信息;
[0016] A3、接收直播源服务器的编码器发来的直播流的码率编码信息;
[0017] A4、根据接收到的信息,建立直播流自适应模型,向直播源服务器、边界服务器,转 发器发送控制信息;
[0018] A41、向直播源服务器发送直播流码率的选择信息;
[0019] A42、向边界服务器和转发器发送直播流的路由和转发信息;
[0020] A5、向DNS发送边界服务器负载状况信息和到直播源服务器延时信息。
[0021] 根据本发明的另一个具体方面,所述用户请求分析器发送给流适配器的信息包 括;频道、期望码率、订阅数。
[0022] 根据本发明的另一个具体方面,所述网络状况分析器发送给所述流适配器的信息 包括网络的拓扑、链路容量、链路可用带宽、网络延时。
[0023] 根据本发明的另一个具体方面,所述编码器发送给所述流适配器的信息包括所有 所有源直播服务器上的直播频道的码率信息。
[0024] 本发明的技术问题还通过W下的技术方案予W解决:
[0025] 一种基于CDN的直播流自适应系统,包括用户端、CDN网络和DNS,所述CDN网络包括 边界服务器、转发器、直播源,所述边界服务器连接所述用户端与所述转发器,所述转发器 同时连接所述边界服务器与所述直播源,还包括集中控制器、用户请求分析器、网络状况分 析器、编码器、流适配器,所述集中控制器连接所述边界服务器、转发器和直播源,所述集中 控制器包括流适配器,所述边界服务器包括请求分析器,所述转发器包括网络分析器,所述 直播源包括直播流发送器和编码器,所述用户端包括直播服务请求器,所述DNS即域名系 统。
[0026] 根据本发明的另一个具体方面,所述用户请求分析器用于对所有用户发来的视频 请求进行分析,设置包括频道、期望码率、订阅数、订阅IP四项内容的订阅表,及时更新订阅 表中的内容,周期性的将所述频道、期望码率、订阅数Ξ项信号封装发送给流适配器。
[0027] 根据本发明的另一个具体方面,所述网络状况分析器用于监控CDN网络情况,周期 性的收集CDN的网络状况信息,并将CDN网络容量,拓扑和路径带宽利用情况和延时等信息 封装并发送给流适配器。
[0028] 根据本发明的另一个具体方面,所述编码器用于对直播流预编码,将编码信息存 储在编码表中,及时更新编码信息,周期性的将编码表中的信息封装发送给所述流适配器。
[0029] 根据本发明的另一个具体方面,所述流适配器用于根据用户请求、网络状况、直播 流码率信息,进行优化,集中控制直播流码率的调整和直播流的传输。
[0030] 根据本发明的另一个具体方面,所述直播服务请求器用于用户端根据自身用户端 的处理能力、屏幕分辨率、W及用户端到CDN网络边界服务器之间的网络情况,包括网络带 宽,网络拥塞,动态地向边界服务器发送更改直播流的期望码率的消息;使用户端及时发现 网络信道条件,用户端自身处理能力的变化,并自动地选择一个合适的期望码率来请求直 播流。
[0031] 根据本发明的另一个具体方面,所述流适配器集中控制过程包括W下步骤:
[0032] B1:根据用户请求、网络状况、直播流码率等信息,建立直播流自适应优化问题;
[0033] B2:利用贪屯、算法计算直播流自适应优化问题初始解,并设置迭代次数或执行时 间加快求解近似最优解;
[0034] B3:根据优化结果,得到码率适配表和流传输表;
[0035] B4:将码率适配表发送给所有的边界服务器,控制用户码率适配;
[0036] B5:将流传输表转化成CDN网络各节点的路由表表项,控制直播流的路由和转发路 径。
[0037] 根据本发明的另一个具体方面,所述系统为每个直播频道的码率定义效用函数, 所有直播频道的码率效用函数之和定义为总的用户满意度,并求解最大化用户满意度的优 化问题;
[0038] C1、所述效用函数表达式为:
[0039]
[0040] 其中;
[0041] Uv,j表示直播频道V的等级为j所对应的码率的效用函数;
[0042 ] nv, J表示W码率rv,扣青求该直播频道V的用户数量;
[0043] rv,j表示直播频道V的等级为j的码率;
[0044] 表示码率适配后的码率。
[0045] C2、最大化用户满意度的优化问题描述如下:
[0051] 其中;
[0052] V= {VI,V2,…,Vk}表示一系列的直播频道集合,每个直播频道都有有限个的等级 和对应等级的码率版本Rv= {Γν,1,:Τν,2,···,:Tv,j,···,:Tv,q},其中q为视频V的码率版本的数量;
[0053] L= {h,!2,···}表示由源服务器集Sources,转发器集Ref lectors,和边界服务器集 EdgeServers的Ξ层有向图的链路集合,并且每条路经都有瓶颈容量C1;
[0054] 如果视频码率:Tv,j流经链路1,则xi,v,j = l,否则xi,v,j = 0,
是码率rv, J适配后的码率;并且
?戈表了每个视频码率最多只能适配到 一个码率版本并且最多流经一条路径。
[0055] 根据本发明的另一个具体方面,所述贪屯、算法包括W下步骤:
[0056] D1:根据用户请求数量从大到小的顺序,将直播频道的码率排列,得到直播码率排 列Α={γι,Γ2,···,1?};初始化 1 = 0,执行D2;
[0057] D2:i = i + 1,从A中为直播频道码率ri,查看网络可行路径是否存在剩余带宽大于 码率ri的路径,如果存在,则将该频道码率的流放置在该路径,更新该路径剩余带宽,并且 该视频码率的XI, V, j = 1;如果不存在,则XI, V, j = 0;执行D3;
[005引D3:如果i<m,则执行步骤2,否则执行D4;
[0059] D4:根据网络路径上放置的频道码率的流,变换得到XI,V,诚34,形成直播流自适 应优化问题的初始解。
[0060] 根据本发明的另一个具体方面,所述系统采用整数规划求解,通过权衡计算时间 和结果距离最优的差距,设置合适的算法终止标准或者执行时间求解近似最优解。
[0061] 根据本发明的另一个具体方面,所述系统对用户请求的处理过程包括如下步骤:
[0062] H1、用户向CDN网络的DNS发送一个直播频道的请求,该请求的包头中携带了对该 频道的期望的码率和延时阔值信息;
[0063] 肥:DNS向用户返回满足用户延时阔值要求,且正在W该期望码率服务该频道的边 界服务器EdgeServer;否则,从满足延时要求的边界服务器中,选择负载最轻的边界服务器 返回给用户;
[0064] 册:用户向DNS返回的边界服务器EdgeServer发送该直播频道订阅请求,并且该请 求的包头中还携带了期望的码率信息;
[0065] H4:边界服务器EdgeServer响应用户的视频请求;当边界服务器接收到用户的请 求时,首先更新用户分析器的订阅表;
[0066] H5:边界服务器根据流适配器发来的码率适配表,查找该用户的期望码率所对应 的适配码率;如果存在相应的条目,则按照适配码率返回直播流数据;当不存在相应条目, 也就是该边界服务器没有服务该频道,边界服务器将用户请求转发至源服务器 SourceServer;并且此后数据传输过程与传统的边界服务器类似;
[0067] 册:用户接收到边界服务器返回的直播流数据;并随时根据网络状况和自身需求, 动态调整用户期望码率。
[0068] 本发明与现有技术对比的有益效果是:
[0069] 本发明的一种基于CDN的直播流自适应方法和系统,通过收集用户请求、网络状况 和直播流码率等信息,在有限的CDN容量下,动态地集中控制源服务器的直播流的码率选 择,和直播流在CDN网络的转发与传输,最大化用户满意度,最优化用户体验。
【附图说明】
[0070] 图1是CDN系统结构不意图;
[0071] 图2是基于CDN的直播流自适应系统结构图;
[0072] 图3是一个假想的CDN网络的拓扑及直播请求示例;
[0073] 图4是基于启发式的贪屯、算法求解初始解的流程图;
[0074] 图5是自适应系统对用户请求的处理过程示例;
[0075] 图6是自适应系统集中控制的处理过程示例;
[0076] 图7是部署图。
【具体实施方式】
[0077] CDN中,用户对直播频道码率的选择,受多个因素的影响。如用户端的处理能力,屏 幕分辨率W及信道条件等,都会影响用户对直播流码率的选择。同时,在直播的高峰期,开 通了大量的直播频道,使得总的带宽需求超过了 CDN网络的容量,而造成网络拥塞,导致用 户观看直播时出现卡顿模糊画面,甚至无法访问。
[0078]本发明提出基于CDN的直播流自适应方法和系统来集中控制源服务器直播流码率 的选择和直播流在CDN网络中的传输。
[00巧]具体实施例一
[0080] 在本实施例中,直播流自适应系统在CDN网络之上设置了一层新的架构,如图2所 示,运层架构包括了:用户请求分析器,网络状况分析器,编码器和流适配器。下面对该系统 架构的几个重要器进行详细的描述。
[0081] (1)用户请求分析器
[0082] 用户请求分析器(RequestAnalyze;r:RA),主要是对所有用户发来的视频请求进行 分析。在CDN网络中直接与用户通信的是边界服务器EdgeServer,用户请求分析器设置在边 界服务器上。
[0083] 用户观看一个直播频道时,该直播频道会提供几个有限的码率版本,供用户选择, 如流杨,清晰,高清和超清晰都对应着不同的码率。由于自身用户端的如手机,平板,PC等不 同的屏幕分辨率和CPU处理能力,W及用户端到边界服务器的信道条件,网络状况等,用户 端对直播流码率的需求有一个判断。因此在本实施例中用户端在发送视频请求时,在直播 频道的请求分组包头中携带一个期望的码率信息。并且用户端在与边界服务器通信的过程 中,根据吞吐量,拥塞情况的变化,自动调整期望码率的值。
[0084] 用户请求分析器设置了一个订阅表,其表的条目可用〈频道,期望码率,订阅数,订 阅IP〉的四元组来表示,其结构如下表所示。
[0085] 表1订阅表
[0086]
[0087] 当一个用户请求到达边界服务器时,用户请求分析器,首先查看订阅表中是否存 在对应的直播频道和期望码率,如果存在,则在其订阅数增加一个,并且在订阅IP中,添加 上用户IP。否则,在订阅表中添加相应频道,期望码率的条目,并将订阅数设置为1,在订阅 IP中添加该用户的IP地址。
[0088] 当一个用户根据自身需求和网络状况,发送了一个更改期望码率的请求时,请求 分析器在订阅表中查询到该用户请求更改的频道所对应着的条目,将其订阅数减去1,并从 订阅IP中,删除其IP,如果订阅数变成了 0,则将该条目删除。然后,为该频道和新的期望码 率查找更新或新建条目。
[0089] 当一个用户中断观看一个直播流时,用户请求分析器,在订阅表中找到对应的条 目,订阅数减1,并且从订阅IP中删除其IP地址。如果订阅数变成0,则将该条目删除。
[0090] 用户请求分析器,周期性的将〈频道,期望码率,订阅数〉Ξ种信息封装发送给流适 配器。从而使流适配器了解所有的直播频道的用户请求情况。
[0091] (2)网络状况分析器
[0092] 网络状况分析器(NetworkAnalyzer:NA),是用来监控CDN网络情况的,监控的内容 包括网络的拓扑、链路容量、链路可用带宽、网络延时等信息。网络状况分析器部署在CDN结 构中的转发器Ref lector上,因为Ref lector连接着边界服务器EdgeServer和源服务器 SourceServer,因此可W收集和监控到运些链路和节点的所有网络信息。
[0093] 网络状况分析器,周期性的收集CDN的网络状况信息,并将CDN网络容量,拓扑和路 径带宽利用情况和延时等信息封装并发送给流适配器。从而使流适配器了解整个CDN网络 的全局状况。
[0094] (3)编码器
[00M]编码器Encoder的作用是将直播流预编码。在CDN中,直播视频一般会根据可能存 在的不同网络需求,将视频预先编码成几个不同的码率版本,如某直播视频需要设置流杨、 清晰、高清、超清四个等级的清晰度。因此编码器会将视频预先用四个对应的码率编码。并 且记录下运些编码信息,并且将运些编码信息存储在编码表中。在本发明中,为编码器设计 的编码表如下表2所示。
[0096] 表2编码表
[0097]
[0098] 编码器由于需要预先编码直播流,因此自然是部署在源服务器上。一旦源服务器 开通一个直播频道,则编码器则将该直播视频按照不同的等级要求和码率进行编码,并且 将编码信息存储在编码表中。并且当一个直播频道,不再服务用户时,从编码表中删除相应 的频道的编码信息。
[0099] 编码器按照一定的周期,将编码表中的信息封装发送给流适配器。从而使流适配 器了解所有的源直播服务器上的所有直播频道的码率信息。
[0100] (4)流适配器
[0101] 流适配器(VideoAdaptor:VA),是直播流自适应系统的逻辑上的集中控制器,它主 要的作用是根据用户请求、网络状况,直播流码率等信息,建立优化模型,根据优化结果,集 中控制直播流码率的调整和直播流的传输。
[0102] 流适配器在CDN中选择合适的路径传输直播流,并且当CDN网络容量无法满足所有 直播频道的码率带宽需求时,选择合适的直播流,如订阅用户比较少的直播流,将其码率调 整到更低一些,但是仍然能够服务用户的码率。运样通过减低少数用户的体验,保证大多数 用户的尽可能好的体验和满意度。
[0103] 流适配器周期性的收到用户请求分析器、网络状况分析器W及编码器发送来的关 于用户请求、网络状况和视频码率等信息,并且根据运些信息周期性地建立直播流自适应 模型,周期性地集中控制CDN网络。
[0104] 用户请求分析器、网络状况分析器、编码器和流适配器都是周期性的执行相应的 功能。在宽粒度的时间尺度下,收集用户请求信息、网络状况、直播流码率等信息,就很难对 直播流提供细粒度的动态集中控制。但是太频繁的收集信息并执行直播流的自适应和控 审IJ,对于流适配器和网络的其他节点也带来很多额外的开销。因此网络管理员可W根据运 些因素的权衡,相应地调整执行的周期,来满足不同场景下,对直播流的控制粒度。
[01化]具体实施例二
[0106] 在本实施例中,建立一个直播流自适应模型,用户A订阅了直播频道VI,用户B订阅 了直播频道V2。且频道VI编码成了两个码率版本(400化PS,SOOkps),而频道V2编码成了另 外两个版本(300化ps,700kps)。用户A和B由于其用户端处理能力都比较高,因此都想要W 观看高码率的直播视频,即码率SOOkps和700kps。但是CDN的链路容量有限,无法同时为两 个频道提供高码率服务,该场景的拓扑如下附图3所示,其中直播源服务器Source用S表示, 边界代理服务器Edge Server用E表示,转发器Ref lector用R表示。
[0107] 该场景下,瓶颈链路在于CDN的容量。在有限的容量下,CDN网络有Ξ种服务方案: 直播频道V1W码率400kps服务,直播频道V2W300KPS的码率服务的码率组合(400,300);直 播频道V1W码率400kps服务,直播频道V2W700KPS的码率服务的码率组合(400,700);直播 频道VIW码率SOOkps服务,直播频道V2 W 300KPS的码率服务的码率组合(800,300)。
[0108] 在本发明的直播流自适应模型中,为每个直播频道的码率定义效用函数:
[0109]
[0110] 其中UvJ,nvJ,rvJ,r/v,汾别是直播频道v的等级为j所对应的码率的效用函数,订 阅用户数,码率值,和适配之后的码率值。
[0111] 直播流自适应系统的目标是W更高的码率,服务更多的用户,因此将所有直播频 道的码率效用函数之和定义为总的用户满意度。最大化用户满意度是直播流自适应模型的 优化目标。经过简单计算,得出W上Ξ个方案的用户满意度分别为:0.93,1.5和1.43。很显 然本发明的的模型中,CDN网络在有限的容量下,最优的服务方案是直播频道VI W码率 400kps服务用户A,直播频道V2 W码率700KPS服务用户B的码率组合(400,700)。
[0112] 对于W上所假想的网络拓扑和用户请求的场景,有更一般的模型描述。直播流自 适应模型所设及的符号定义如下表3所示。
[0113] 表3直播流自适应模型符号定义
[0114]
[0115] 直播流自适应模型可W建模如下:
[0116] (1)输入:一系列的直播频道集合V={vl,V2,…,Vk,每个直播频道都有有限个的等 级和对应等级的码率版本Rv= {τν, 1,rv, 1,…rv,j···.rv,q}其中q为视频V的码率版本的数量。
[0117] (2)拓扑和链路容量:该模型的拓扑由源服务器集Sources,转发器集Reflectors, 和边界服务器集Edge Servers的Ξ层有向图组成。其通过链路集合L= {h,12···}联通,并且 每条路经都有瓶颈容量C1。
[0118] (3)形式化描述:输出结果是每个视频栏目应该服务的码率和各视频码率的路径。 如果视频码率,Γν, j流经链路1,则xi,v,j二1,否则xi,v,j二0。因曲
是码率rv,J适配后的码率。并且Σ;eLΣ?=パ;,。,kXy?<<l代表了每个视频码率最多只能适 配到一个码率版本并且最多流经一条路径。我们形成一个W最大化用户满意度为目标的优 化问题,该问题可W描述为如下的最大化问题。
[0124]从直播流自适应模型的优化问题,可W看出该问题是个整数规划问题。一般来说 要想求得整数规划问题的最优解需要花费相当长的时间。但是在本发明所设及的基于CDN 的直播流自适应方法和系统中,无法忍受长时间的等待优化结果。因此本发明采用两种方 法来加快求解的过程。
[0125] 其中第一个方法是计算一个好的初始解来加快近似最优求解的过程。通常一个好 的初始解可W大大减少整数规划问题的求解时间。因此我们通过一个启发式的贪屯、算法来 计算视频优化问题的初始值。
[0126] 在运一节,提出一个贪屯、算法来求解视频适配优化问题的一个可行解,并将该可 行解作为初始解,迭代计算该整数规划问题。该贪屯、算法的主要思想是W每个视频码率的 用户请求数量从大到小的顺序,在网络容量允许的情况下,为每个视频码率选择合适的适 配码率和路径。如果剩余的网络带宽无法进行下一个视频码率的适配或者所有的视频码率 都已分配完,则得到了整数规划问题的初始解。
[0127] 贪屯、算法的工作机制可W用W下的步骤来描述,其流程图如附图4所示:
[0128] D1:根据用户请求数量从大到小的顺序,将直播频道的码率排列,得到直播码率排 列Α={γι,Γ2,···,1?};初始化 1 = 0,执行D2;
[0129] D2:i = i + 1,从A中为直播频道码率ri,查看网络可行路径是否存在剩余带宽大于 码率ri的路径,如果存在,则将该频道码率的流放置在该路径,更新该路径剩余带宽,并且 该视频码率的XI, V, j = 1;如果不存在,则XI, V, j = 0;执行D3;
[0130] D3:如果i<m,则执行步骤2,否则执行D4;
[0U1] D4:根据网络路径上放置的频道码率的流,变换得到XI,V,满34,:形成直播流自适 应优化问题的初始解。
[0132] 加快求解直播流自适应优化问题的第二个方法,是权衡计算时间和结果距离最优 的差距,设置合适的算法终止标准,如迭代计算次数。整数规划求解的另一个重要的指标是 终止参数。通常整数规划求解可W很迅速的找到一个可行解,运个可行解只比最优解稍微 差一些,然后花费很多的时间向最优解靠犹。因此可行解与最优解之间的差距和执行时间 之间的权衡,可W使我们设置迭代次数或者执行时间等求解近似最优解。
[0133] 直播流自适应系统在对直播流自适应优化问题求解之后,需要根据优化结果进行 直播流码率的适配和直播流传输进行集中控制。流适配器作为自适应系统的集中控制器, 可W根据近似最优解形成两张表:码率适配表和流传输表。
[0134] 其中码率适配表的作用是控制边界服务器,向订阅用户发送指定的码率的直播 流。码率适配表如下表4所示。
[0135] 表4码率适配表
[0136]
[0137] ~流适配器将码率适配表信息发送给所有的边界服务器。因此边界服务器就可W结 合订阅表,向相应用户发送指定的码率的直播流。
[0138] 流传输表的作用是控制直播流在CDN网络的路由和转发路径。其形式如下表5所 示。流适配器根据流传输表,配置CDN各网络节点的路由表表项,来控制直播流在CDN网络的 传输路径。
[0139] 表5流传输表
[0140]
[0141] 流适配器集中控制过程可W按照W下步骤进行,其控制机制流程图如附图5。
[0142] 步骤1:根据用户请求、网络状况、直播流码率等信息,建立直播流自适应优化问 题;
[0143] 步骤2:利用贪屯、算法计算直播流自适应优化问题初始解,并设置迭代次数或执行 时间加快求解近似最优解;
[0144] 步骤3:根据优化结果,得到码率适配表和流传输表;
[0145] 步骤4:将码率适配表发送给所有的边界服务器,控制用户码率适配;
[0146] 步骤5:将流传输表转化成CDN网络各节点的路由表表项,控制直播流的路由和转 发路径。
[0147] 基于CDN的直播流自适应方法和系统对于一个用户请求的处理过程可W描述如 下:
[0148] 步骤1:用户向CDN网络的DNS发送一个直播频道的请求,该请求的包头中携带了对 该频道的期望的码率和延时阔值信息。
[0149] 步骤2:DNS向用户返回满足用户延时阔值要求,且正在W该期望码率服务该频道 的边界服务器EdgeServer。否则,从满足延时要求的边界服务器中,选择负载最轻的边界服 务器返回给用户。
[0150] 步骤3:用户向DNS返回的边界服务器EdgeServer发送该直播频道订阅请求,并且 该请求的包头中还携带了期望的码率信息。
[0151] 步骤4:边界服务器EdgeServer响应用户的视频请求。当边界服务器接收到用户的 请求时,首先更新用户分析器的订阅表。
[0152] 步骤5:边界服务器根据流适配器发来的码率适配表,查找该用户的期望码率所对 应的适配码率。如果存在相应的条目,则按照适配码率返回直播流数据。当不存在相应条 目,也就是该边界服务器没有服务该频道,边界服务器将用户请求转发至源服务器 SourceServer。并且此后数据传输过程与传统的边界服务器类似。
[0153] 步骤6:用户接收到边界服务器返回的直播流数据。并随时根据网络状况和自身需 求,动态调整用户期望码率。
[0154] 附图6是直播流自适应系统对用户请求的处理过程示例图。
[01W]本方案需对用户端、CDN网络和直播源服务器进行一些修改和升级。主要的改动是 对CDN网络的升级,对于用户端和直播源服务器的改动较少,并且对于用户端与CDN网络之 间,W及CDN与直播源服务器之间的传输路径上的传统网络设备不进行任何修改。
[0156] 用户端增加了直播服务请求器,直播源服务器增加了编码器,W及CDN网络增加了 用户请求分析器,用户请求响应器和网络监督器,W及流适配器。下面具体的介绍每一个的 功能和实现,具体部署图如附图7。
[0157] 直播服务请求器
[0158] 用户端增加的直播服务请求器的作用是使得用户端能够,根据自身用户端的处理 能力,屏幕分辨率,W及用户端到CDN网络边界服务器之间的网络情况,包括网络带宽,网络 拥塞等,动态地向边界服务器发送更改直播流的期望码率的消息。运样能够使用户端及时 发现网络信道条件,用户端自身处理能力的变化,并自动地选择一个合适的期望码率来请 求直播流。从而使用户一直能够得到良好的体验。
[0159] 编码器
[0160] 传统的直播源服务器也具有编码器运一器,但是该器只是对直播流进行预先编 码。在本发明所设及的编码器器,除了具备对直播流进行编码的功能,还具备了与集中控制 器流适配器的通信功能。主要是编码器根据不同需求等级用相对应的码率对直播流进行编 码,并且将运些编码的等级和码率信息发送给流适配器。
[0161] 用户请求分析器
[0162] 用户请求分析器部署在CDN网络的边界服务器EdgeServer上。并且用户请求分析 器中通过设置订阅表来记录携带期望码率的用户请求。并且按照一定的周期,将订阅表的 信息封装发送给流适配器。
[0163] 用户请求响应器
[0164] 用户请求响应器也部署在CDN网络的边界服务器上,其主要功能是响应用户的请 求。用户请求响应器存储从流适配器返回的码率适配表信息,并且当用户请求到达时,查询 码率适配表,从中选择相应码率的直播流数据返回。如果码率适配表中不存在相应的直播 流,则将用户请求转发给直播源服务器,并从直播源服务器上获取直播流数据返回给用户。 [01化]网络监督器
[0166] 网络监督器部署在CDN网络的转发器Ref lector上,网络监督器监测CDN网络的变 化,包括网络带宽利用、拥塞情况、延时情况等,并且按照一定的周期将运些信息发送给流 适配器。当网络发生巨大变化时,应立即将网络变化信息发送给流适配器,使得流适配器能 够立即了解网络的大变化,从而调整CDN网络的直播流的码率选择W及直播流的传输路径 控制。
[0167] 流适配器
[0168] 流适配器是基于CDN的直播流自适应系统的集中控制器。通过收集从用户请求分 析器,网络监督器和直播源服务器的编码器发送过来的用户请求信息、网络状况信息、直播 流码率信息等,建立直播流自适应优化问题,并且通过求解得到码率适配和直播流传输的 控制信息。然后将码率适配信息发送给边界服务器,根据直播流传输信息控制直播流在CDN 网络各节点的路由和转发。
[0169] W上内容是结合具体的/优选的实施方式对本发明所作的进一步详细说明,不能 认定本发明的具体实施只局限于运些说明。对于本发明所属技术领域的普通技术人员来 说,在不脱离本发明构思的前提下,其还可W对运些已描述的实施例做出若干替代或变型, 而运些替代或变型方式都应当视为属于本发明的保护范围。
【主权项】
1. 一种基于⑶N的直播流自适应方法,其特征在于,包括如下步骤: A1流适配器接收来部署在边界服务器上的用户请求分析器发来的请求分析信息; A2、接收部署在转发器上的网络状况分析器发来的CDN网络状况信息; A3、接收直播源服务器的编码器发来的直播流的码率编码信息; A4、根据接收到的信息,建立直播流自适应模型,向直播源服务器、边界服务器,转发器 发送控制信息; A41、向直播源服务器发送直播流码率的选择信息; A42、向边界服务器和转发器发送直播流的路由和转发信息; A5、向DNS发送边界服务器负载状况信息和到直播源服务器延时信息。2. -种基于⑶N的直播流自适应系统,包括用户端、⑶N网络和域名系统DNS,所述⑶N网 络包括边界服务器、转发器、直播源,所述边界服务器连接所述用户端与所述转发器,所述 转发器同时连接所述边界服务器与所述直播源,其特征在于, 还包括集中控制器、用户请求分析器、网络状况分析器、编码器、流适配器和直播服务 请求器,所述集中控制器连接所述边界服务器、转发器和直播源,所述集中控制器包括流适 配器,所述边界服务器包括请求分析器,所述转发器包括网络分析器,所述直播源包括直播 流发送器和编码器,所述用户端包括直播服务请求器。3. 根据权利要求2所述系统,其特征在于,所述用户请求分析器用于对所有用户发来的 视频请求进行分析,设置包括频道、期望码率、订阅数、订阅IP四项内容的订阅表,及时更新 订阅表中的内容,周期性的将所述频道、期望码率、订阅数三项信号封装发送给流适配器。4. 根据权利要求2所述系统,其特征在于,所述网络状况分析器用于监控CDN网络情况, 周期性的收集CDN的网络状况信息,并将CDN网络容量,拓扑和路径带宽利用情况和延时等 信息封装并发送给流适配器。5. 根据权利要求2所述系统,其特征在于,所述编码器用于对直播流预编码,将编码信 息存储在编码表中,及时更新编码信息,周期性的将编码表中的信息封装发送给所述流适 配器。6. 根据权利要求2所述系统,其特征在于,所述流适配器用于根据用户请求、网络状况、 直播流码率信息,进行优化,集中控制直播流码率的调整和直播流的传输。7. 根据权利要求2所述系统,其特征在于,所述流适配器集中控制过程包括以下步骤: B1:根据用户请求、网络状况、直播流码率等信息,建立直播流自适应优化问题; B2:利用贪心算法计算直播流自适应优化问题初始解,并设置迭代次数或执行时间加 快求解近似最优解; B3:根据优化结果,得到码率适配表和流传输表; B4:将码率适配表发送给所有的边界服务器,控制用户码率适配; B5:将流传输表转化成CDN网络各节点的路由表表项,控制直播流的路由和转发路径。8. 根据权利要求2所述系统,其特征在于,所述系统为每个直播频道的码率定义效用函 数,所有直播频道的码率效用函数之和定义为总的用户满意度,并求解最大化用户满意度 的优化问题; C1、所述效用函数表达式为:其中: Uq表示直播频道V的等级为j所对应的码率的效用函数; nv, j表示以码率rq请求该直播频道v的用户数量; rv, j表示直播频道v的等级为j的码率; r ' v, j表示码率rv, j适配后的码率。 C2、最大化用户满意度的优化问题描述如下:其中: V={V1,V2,···,^}表示一系列的直播频道集合,每个直播频道都有有限个的等级和对 应等级的码率版本Rv= Irv, 1,rv,2,…,rv,j,…,rv,q},其中q为视频v的码率版本的数量; L = {li,12,…}表示由源服务器集Sources,转发器集Ref lectors,和边界服务器集 EdgeServers的三层有向图的链路集合,并且每条路经都有瓶颈容量ci; 如果视频码率rv, j流经链路1,则XI,v, j = 1,否则XI,v, j = 0。1:祖Σ【=1 X认X < X仏太是码率 rv,^配后的码率;并且S1代表了每个视频码率最多只能适配到一个码 率版本并且最多流经一条路径。9. 根据权利要求7或8所述系统,其特征在于,所述贪心算法包括以下步骤: D1:根据用户请求数量从大到小的顺序,将直播频道的码率排列,得到直播码率排列A = {ri,r2,···,rm};初始化i = 0,执行D2; D2: i = i+1,从A中为直播频道码率Γι,查看网络可行路径是否存在剩余带宽大于码率Γι 的路径,如果存在,则将该频道码率的流放置在该路径,更新该路径剩余带宽,并且该视频 码率的X1, v,j = l;如果不存在,则xi,v,j = 0;执行D3; D3:如果i〈m,则执行步骤2,否则执行D4; D4:根据网络路径上放置的频道码率的流,变换得到Χ1, μ和,形成直播流自适应优化 问题的初始解。10. 根据权利要求2所述系统,其特征在于,所述系统对用户请求的处理过程包括如下 步骤: Η1、用户向CDN网络的DNS发送一个直播频道的请求,该请求的包头中携带了对该频道 的期望的码率和延时阈值信息; H2:DNS向用户返回满足用户延时阈值要求,且正在以该期望码率服务该频道的边界服 务器EdgeServer;否则,从满足延时要求的边界服务器中,选择负载最轻的边界服务器返回 给用户; H3:用户向DNS返回的边界服务器EdgeServer发送该直播频道订阅请求,并且该请求的 包头中还携带了期望的码率信息; H4:边界服务器EdgeServer响应用户的视频请求;当边界服务器接收到用户的请求时, 首先更新用户分析器的订阅表; H5:边界服务器根据流适配器发来的码率适配表,查找该用户的期望码率所对应的适 配码率;如果存在相应的条目,则按照适配码率返回直播流数据;当不存在相应条目,也就 是该边界服务器没有服务该频道,边界服务器将用户请求转发至源服务器SourceServer; 并且此后数据传输过程与传统的边界服务器类似; H6:用户接收到边界服务器返回的直播流数据;并随时根据网络状况和自身需求,动态 调整用户期望码率。
【文档编号】H04N21/262GK106060605SQ201610356339
【公开日】2016年10月26日
【申请日】2016年5月25日
【发明人】李清, 甘斌, 江勇
【申请人】清华大学深圳研究生院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1