专利名称:一种交互式网络电视系统中的码流分片方法和系统的制作方法
专利说明本发明涉及多媒体通信中流媒体的控制方法,尤其涉及IPTV(Internet Protocol Television,交互式网络电视)系统中码流分片方法。
背景技术:
近年来,IPTV受到全球电信行业的普遍关注,整个电信行业对IPTV从技术、市场 和政策等角度进行了深度探索。随着各国管制政策的开放、技术标准的完善和市场运营模 式的成熟,IPTV逐渐进入更为理性和稳健的发展阶段。IPTV的运营呈现以下几个特点,一 是更注重用户体验和服务质量的保证,二是运营商积极推进IPTV系统的开发性,在系统中 引进互联网内容和应用,三是在三网融合大背景下的三屏合一,多元化的终端接入成为市 场需求的必然趋势。产业的不断发展促进了标准的发展。全球各主要国家和各大企业都高度关注IPTV 标准化工作。当前,全球范围内有多个国际和地区标准化组织都在开展IPTV相关的标准和 技术规范制定与推广工作,主要集中在欧洲、北美和亚洲。ITU-T (国际电信联盟远程通信标 准化组织),在2006年成立IPTV焦点组,旨在协调全球范围的标准化活动,促进国际IPTV 的互联互通。ITU-T在引领IPTV国际标准制定,协调各组织标准化活动中发挥了重要作用。 到目前为止,ITU-T已经产出了一批重要成果,奠定了国际标准框架。IPTV中两项重要的业务是电视节目点播TVOD (True Video On Demand,以下简称 TV0D)和时移电视TSTV (Time Shift TV,以下简称TSTV)。这两项业务均需要频道进行直播 码流文件存储来实现,一般意义上的做法采用分开存储的方式,即TVOD按节目为单位单独 录制,而TSTV则按照回滚时间不断地录制和回滚。这种做法浪费了大量的系统存储空间, 且不利于CDN(Content Delivery Network,内容分发网络,以下简称CDN)节点的调度。为 了解决这个问题,现有技术中已经有采用在中心节点码流中打入标签对存储文件进行分片 的方法,在此基础上实现内容分发和内容定位,从而达到TVOD和TSTV统一存储的目的。目前来说分片方法主要有两种,一种是按照内容大小分片,另一种是按照时间分 片。按照内容大小分片优点在于容易控制分片调度的最优粒度,也容易达到良好的物理文 件存储分布,但分片本身录制质量的监测不好控制。而按照时间分片能够对分片的录制情 况达到实时的监测,在此基础上能够实现良好的调度策略。现有的时间分片一般采用固定 等间隔绝对本地时间来进行分片,这种方法把24小时分成等长的时间间隔,每段间隔生成 一个分片时间文件。这种方法实现简单,对分片的录制质量容易监控,但这种实现方式也存 在一些不足之处。首先,分片的大小会随着码率而变化,这样一来调度的颗粒大小不易控 制。其次,分片的边缘时间点处,节点所有频道都均结束上一个分片的存储并开始下一个分 片的创建,此时消息量会很大,容易造成各级节点处理进程的时间延迟。再次,一旦发生时 间跳变,系统无法达到很好的自适应。
发明内容
本发明要解决的技术问题是提供一种交互式网络电视系统中的码流分片方法和 系统,解决传统的绝对等间隔分片方法不能对分片时长进行调整的问题为了解决上述技术问题,本发明提供了一种交互式网络电视系统中的码流分片方 法,包括中心节点接收到直播码流后,在所述直播码流的每个媒体包中打入标签,所述标签 包括当前媒体包所属分片的首个媒体包的绝对UTC时间、当前媒体包相对于所述首个媒体 包的相对时间、当前媒体包所属分片的分片时长、以及当前媒体包所属分片的文件名标识;所述中心节点将打入所述标签的直播码流单播或组播到一个或多个下级节点;所述中心节点和所述下级节点分别存储所述打入标签的直播码流,根据所述标签 的内容将所述直播码流存储为分片。进一步地,所述根据标签的内容将所述直播码流存储为分片的步骤包括将所述 文件名标识相同的媒体包存储为一个分片文件,存储过程中,为每个媒体包建立媒体包索 弓丨,并为每个分片建立分片索引,所述媒体包索引包括当前媒体包所属分片的首个媒体包 的绝对UTC时间,以及当前媒体包相对于所述首个媒体包的相对时间,所述分片索引包括 分片中的首个媒体包的绝对UTC时间,以及该分片的分片时长。进一步地,所述在所述直播码流的每个媒体包中打入标签前,所述方法还包括所 述中心节点监控码率变化,当当前码率低于或超过阈值后,所述中心节点根据预先确定的 最优分片颗粒大小和当前码率计算分片时长。进一步地,所述中心节点将打入所述标签的直播码流单播或组播到一个或多个下 级节点前,所述方法还包括所述中心节点在频道的基本属性中携带频道创建时间,通过控 制面消息发送给各下级节点。进一步地,所述中心节点和所述下级节点根据所述标签的内容将所述直播码流存 储为分片的步骤之后,所述方法还包括所述中心节点定期向网络校时协议服务器发起时 间同步,根据时间同步结果调整分片中首个媒体包的绝对UTC时间和/或当前媒体包相对 于所述首个媒体包的相对时间,并将调整结果发送给一个或多个下级节点。为了解决上述技术问题,本发明还提供了一种码流分片系统,包括转码子系统,位于中心节点,其用于接收到直播码流后,在所述直播码流的每个媒 体包中打入标签,所述标签包括当前媒体包所属分片的首个媒体包的绝对UTC时间、当前 媒体包相对于所述首个媒体包的相对时间、当前媒体包所属分片的分片时长、以及当前媒 体包所属分片的文件名标识;发送子系统,位于中心节点,其用于将打入所述标签的直播码流单播或组播到一 个或多个下级节点;存储子系统,位于中心节点和一个或多个下级节点,其用于存储所述打入标签的 直播码流,根据所述标签的内容将所述直播码流存储为分片。进一步地,所述存储子系统包括存储模块和索引建立模块,其中所述存储模块, 用于将所述文件名标识相同的媒体包存储为一个分片文件;所述索引建立模块,用于为每 个媒体包建立媒体包索引,并为每个分片建立分片索引,所述媒体包索引包括当前媒体包 所属分片的首个媒体包的绝对UTC时间,以及当前媒体包相对于所述首个媒体包的相对时间,所述分片索引包括分片中的首个媒体包的绝对UTC时间,以及该分片的分片时长。进一步地,所述系统还包括分片时长计算子系统,位于中心节点,其用于监控码 率变化,当当前码率低于或超过阈值后,根据预先确定的最优分片颗粒大小和当前码率计 算分片时长。进一步地,所述发送子系统,还用于在将打入所述标签的直播码流单播或组播到 一个或多个下级节点前,在频道的基本属性中携带频道创建时间,通过控制面消息发送给 各下级节点。进一步地,所述系统还包括时间同步子系统,位于中心节点,其用于定期向网络校 时协议服务器发起时间同步,根据时间同步结果调整分片中首个媒体包的绝对UTC时间和 /或当前媒体包相对于所述首个媒体包的相对时间,并将调整结果发送给一个或多个下级 节点。采用本发明所述方法的优势在于,根据计算得出的节点间分片调度的最优文件颗 粒大小,当发生码率大幅度变化时,通过改变分片时长,来保证分片的最优颗粒大小,有效 地解决了传统技术当中不能对分片时长进行调整的问题。
图1是本实施例中心节点和下级节点频道码流关系图;图2是本实施例分片文件格式示意图;图3是本实施例分片时长动态调整流程图;图4是本实施例时间跳变分片数据调整流程图。
具体实施例方式对于直播码流,现有技术中采用绝对间隔时间分片方法,实现起来比较简单,对于 录制质量比较容易监控,但也会产生一些问题,首先,对分片粒度不能实现很好地控制,当 码率发生大幅度变化的时候,颗粒大小会随着码率的变化而变化,不容实现颗粒大小的控 制;其次,分片的边缘时间点处,节点所有频道都均结束上一个分片的存储并开始下一个分 片的创建,此时消息量会很大,容易造成各级节点处理进程的时间延迟。再次,一旦发生时 间跳变,即当节点系统时间与绝对UTC(协调世界时)时间出现较大误差的时候,此时存储 的码流分片标签中所记载的时间信息会与直播码流实际播放时间无法保持一致,给用户应 用带来很大的不便。为此,本发明提供一种码流分片方法,包括中心节点接收到直播码流后,在所述直播码流的每个媒体包中打入标签,所述标 签包括当前媒体包所属分片的首个媒体包的绝对UTC时间、当前媒体包相对于所述首个 媒体包的相对时间、当前媒体包所属分片的分片时长、以及当前媒体包所属分片的文件名 标识;所述中心节点将打入所述标签的直播码流单播或组播到一个或多个下级节点;所述中心节点和所述下级节点分别存储所述打入标签的直播码流,根据所述标签 的内容将所述直播码流存储为分片。上述分片首个媒体包的绝对UTC时间表示的是该媒体包的开始时间,也即是该分片的开始时间,且是绝对时间。而分片中各媒体包的开始时间不再用绝对时间来界定,而采 用相对于首包的相对时间。这样分片的好处在于当时间发生跳变时,各节点仅变更其保存 的分片首包的绝对UTC时间即可,而不必挨个调整媒体包的开始时间,大大降低了工作量, 提高各节点的工作效率。优选地,所述根据标签的内容将所述直播码流存储为分片的步骤包括将所述文 件名标识相同的媒体包存储为一个分片文件,存储过程中,为每个媒体包建立媒体包索引 并存储在分片文件中,所述媒体包索引包括当前媒体包所属分片的首个媒体包的绝对UTC 时间,以及当前媒体包相对于所述首个媒体包的相对时间。在存储分片文件时还为分片文 件建立分片索引,所述分片索引包括分片中的首个媒体包的绝对UTC时间,以及该分片的 分片时长。通过分片索引和媒体包索引,可以很容易地定位到分片以及该分片中的媒体包, 方便进行播放。将分片时长作为标签的一部分打入媒体包,一方面,该分片时长可以用来作为分 片索引,另一方面,中心节点可以根据需要(例如码率的变化)对分片时长进行调整,以此 控制分片调度的粒度。例如,中心节点监控码率变化,当当前码率低于或超过阈值后,中心 节点根据预先确定的最优分片颗粒大小和当前码率重新计算分片时长,将新计算的分片时 长打入标签。由于分片时长可调,各个频道节目传输时,分片的结束和开始时间不再完全相同, 从而避免了在分片的边缘时间点处出现的创建新分片时消息量大的问题。同时降低了时间 跳变对分片的影响。优选地,所述中心节点和所述下级节点根据所述标签的内容将所述直播码流存储 为分片的步骤之后,所述方法还包括所述中心节点定期向网络校时协议服务器发起时间 同步,根据时间同步结果调整分片中首个媒体包的绝对UTC时间和/或当前媒体包相对于 所述首个媒体包的相对时间,并将调整结果发送给一个或多个下级节点。优选地,为了防止中心节点和下级节点创建频道时可能出现的时间差异。中心节 点可以在频道的基本属性中携带频道创建时间,通过控制面消息发送给各下级节点,以保 证中心节点与下级节点频道的同步。下面结合附图对本发明作进一步详细说明。实施例1本实施例介绍了直播码流分片系统的架构,包括转码子系统,位于中心节点,其用于接收到直播码流后,在所述直播码流的每个媒 体包中打入标签,所述标签包括当前媒体包所属分片的首个媒体包的绝对UTC时间、当前 媒体包相对于所述首个媒体包的相对时间、当前媒体包所属分片的分片时长、以及当前媒 体包所属分片的文件名标识;发送子系统,位于中心节点,其用于将打入所述标签的直播码流单播或组播到一 个或多个下级节点;存储子系统,位于中心节点和一个或多个下级节点,其用于存储所述打入标签的 直播码流,根据所述标签的内容将所述直播码流存储为分片。图1为上述系统的一种示例,图中中心节点中的转码模块相当于上述转码子系统,发送模块相当于上述发送子系统,存储模块相当于上述存储子系统。图中虽然仅示出一 个下级节点,但下级节点可以有多个。实施例2本实施例介绍中心节点和各下级节点在存储分片时的处理过程。图2为在对分片进行存储时,所存储的目录和文件示例,一个频道下面有多个分 片文件。如图2所示,频道CCTVl下面有0、1、2. . . η个分片。存储的过程包括以下步骤步骤201,对收到的打入标签的码流进行判断,判断码流的标签中的文件名标识是 否已经存在,如果存在,执行步骤203,如果不存在,执行步骤202 ;步骤202,以所述标签中的文件名标识创建新的文件,执行步骤204 ;步骤203,在该文件名标识对应的文件中续写文件,执行步骤204 ;步骤204,记录媒体包内容,为每个媒体包设置媒体包索引,包括当前媒体包所属 分片的首个媒体包的绝对UTC时间,以及当前媒体包相对于所述首个媒体包的相对时间; 同时在数据库中建立该分片的分片索引,包括分片中的首个媒体包的绝对UTC时间,以及 该分片的分片时长。中心节点和下级节点的存储方法均相同,且基于相同的标签,保证数据的同步,保 证从上级节点下拉的分片文件能够和本节点保持良好的无缝拼接。实施例3本实施例介绍中心节点动态调整分片时长的处理过程。分片时长动态调整的目的是,一方面,考虑分片质量的监测和分片下拉的速度,分 片时长越短分片质量的监控就会越准确,下拉一个分片所用的时间也越快,对于TSTV这样 的业务就能达到良好的质量体验;但另一方面,分片时长如果太短的话,会带来数据库记录 的大量开销,浪费硬件资源。因此,需要尽量找到一个较优的分片粒度大小,以该分片粒度 大小和码率来确定分片时间。如图3所示,分片时长的调整包括以下步骤步骤301,确定最优分片粒度;该最优分片粒度为一经验值,综合考虑了实际组网的网络情况(例如网络数据请 求、响应时间、网络带宽分配大小等)以及数据库存储情况。步骤302,实时检测网络传输码率;步骤303,判断所述码率是否超过阀值,如果是,执行步骤304,否则执行步骤305 ;步骤304,根据分片时长=码率/最优分片粒度,重新计算出当前码率下的分片时 长,根据该分片时长调整下一分片的分片时长,即在下一分片的每个媒体包的标签中打入 重新计算的分片时长;步骤305,下一分片的分片时长保持不变。在其他实施例中,步骤305也可以返回步骤302执行,也就是说,分片时长可以定 期调整,也可实时进行调整。实施例4本实施例介绍在进行码流分片过程中,对时间跳变的控制处理。在本实施例中, NTP(Network Time Protocol,网络校时协议)服务器每隔一段时间向世界标准时间同步,该NTP服务器上的时间被认为是标准时间。如图4所示,包括以下步骤步骤401,中心节点定时向NTP服务器请求时间同步;步骤402,NTP服务器收到中心节点的同步消息后,返回应答消息,消息中包含当 前标准时间;步骤403,中心节点时间收到应答消息后,计算当前系统时间与标准时间的差值 (或称时间跳变值),判断该差值如果超过一定的阀值,确定跳变时间区间为本次时间同步 与上次时间同步之间的时间,根据该差值对该跳变时间区间内的分片文件进行分片的时间
调整;对该跳变时间区间内的分片文件进行分片的时间调整是指确定该跳变时间区间 内需要调整的分片,根据时间跳变值调整该些分片的首个媒体包的绝对UTC时间。如果跳 变时间区间的边界位于一个分片的内部,该分片可以进行时间调整,也可以不进行时间调 整。如果进行时间调整,可以对该分片中位于跳变时间区间内的媒体包相对于首包的时间 进行调整。步骤404,中心节点将跳变时间区间内各分片的时间调整结果分发到各下级节点, 下级节点对数据库相关记录进行更新。优选地,也可以由NTP服务器来计算时间跳变值,将该时间跳变值返回给中心节 点进行判断。本文实施例所码流分片方法和系统,由于在直播码流中打入特定格式的标签,以 及标签中分片时长的动态自适应,实现了相对动态时长的分片存储,此种方式对网络状况 和时间跳变具有更强的灵活性。另外由于各频道的创建时间以及码率的不同,分片区间几 乎不可能保持一致,相对于绝对整点时间各频道一致的做法,性能瓶颈得到了释放。本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令 相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘 等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应 地,上述实施例中的各模块可以采用硬件的形式实现,也可以采用软件功能模块的形式实 现。本发明不限制于任何特定形式的硬件和软件的结合。当然,本发明还可有其他多种实施方式,在没有背离本发明精神及其实质的情况 下,熟悉本领域的技术人员可根据本发明做出各种相应的改变和变形,但这些相应的改变 和变形都应属于本发明所附的权利要求的保护范围。
权利要求
一种交互式网络电视系统中的码流分片方法,包括中心节点接收到直播码流后,在所述直播码流的每个媒体包中打入标签,所述标签包括当前媒体包所属分片的首个媒体包的绝对协调世界时(UTC)时间、当前媒体包相对于所述首个媒体包的相对时间、当前媒体包所属分片的分片时长、以及当前媒体包所属分片的文件名标识;所述中心节点将打入所述标签的直播码流单播或组播到一个或多个下级节点;所述中心节点和所述下级节点分别存储所述打入标签的直播码流,根据所述标签的内容将所述直播码流存储为分片。
2.如权利要求1所述的方法,其特征在于所述根据标签的内容将所述直播码流存储为分片的步骤包括将所述文件名标识相同的媒体包存储为一个分片文件,存储过程中,为每个媒体包建 立媒体包索引,并为每个分片建立分片索引,所述媒体包索引包括当前媒体包所属分片的 首个媒体包的绝对UTC时间,以及当前媒体包相对于所述首个媒体包的相对时间,所述分 片索引包括分片中的首个媒体包的绝对UTC时间,以及该分片的分片时长。
3.如权利要求1所述的方法,其特征在于所述在所述直播码流的每个媒体包中打入标签前,所述方法还包括所述中心节点监控码率变化,当当前码率低于或超过阈值后,所述中心节点根据预先 确定的最优分片颗粒大小和当前码率计算分片时长。
4.如权利要求1所述的方法,其特征在于所述中心节点将打入所述标签的直播码流单播或组播到一个或多个下级节点前,所述 方法还包括所述中心节点在频道的基本属性中携带频道创建时间,通过控制面消息发送给各下级 节点。
5.如权利要求1-4中任一项所述的方法,其特征在于所述中心节点和所述下级节点根据所述标签的内容将所述直播码流存储为分片的步 骤之后,所述方法还包括所述中心节点定期向网络校时协议服务器发起时间同步,根据时间同步结果调整分片 中首个媒体包的绝对UTC时间和/或当前媒体包相对于所述首个媒体包的相对时间,并将 调整结果发送给一个或多个下级节点。
6.一种码流分片系统,包括转码子系统,位于中心节点,其用于接收到直播码流后,在所述直播码流的每个媒体包 中打入标签,所述标签包括当前媒体包所属分片的首个媒体包的绝对UTC时间、当前媒体 包相对于所述首个媒体包的相对时间、当前媒体包所属分片的分片时长、以及当前媒体包 所属分片的文件名标识;发送子系统,位于中心节点,其用于将打入所述标签的直播码流单播或组播到一个或 多个下级节点;存储子系统,位于中心节点和一个或多个下级节点,其用于存储所述打入标签的直播 码流,根据所述标签的内容将所述直播码流存储为分片。
7.如权利要求6所述的系统,其特征在于,所述存储子系统包括存储模块和索引建立模块,其中所述存储模块,用于将所述文件名标识相同的媒体包存储为一个分片文件;所述索引建立模块,用于为每个媒体包建立媒体包索引,并为每个分片建立分片索引, 所述媒体包索引包括当前媒体包所属分片的首个媒体包的绝对UTC时间,以及当前媒体包 相对于所述首个媒体包的相对时间,所述分片索引包括分片中的首个媒体包的绝对UTC时 间,以及该分片的分片时长。
8.如权利要求6所述的系统,其特征在于,所述系统还包括分片时长计算子系统,位于中心节点,其用于监控码率变化,当当前 码率低于或超过阈值后,根据预先确定的最优分片颗粒大小和当前码率计算分片时长。
9.如权利要求6所述的系统,其特征在于,所述发送子系统,还用于在将打入所述标签的直播码流单播或组播到一个或多个下级 节点前,在频道的基本属性中携带频道创建时间,通过控制面消息发送给各下级节点。
10.如权利要求6-9中任一项所述的系统,其特征在于,所述系统还包括时间同步子系统,位于中心节点,其用于定期向网络校时协议服务器 发起时间同步,根据时间同步结果调整分片中首个媒体包的绝对UTC时间和/或当前媒体 包相对于所述首个媒体包的相对时间,并将调整结果发送给一个或多个下级节点。
全文摘要
本发明公开了一种交互式网络电视系统中的码流分片方法和系统,解决传统的绝对等间隔分片方法不能对分片时长进行调整的问题。所述码流分片方法,包括中心节点接收到直播码流后,在所述直播码流的每个媒体包中打入标签,所述标签包括当前媒体包所属分片的首个媒体包的绝对UTC时间、当前媒体包相对于所述首个媒体包的相对时间、当前媒体包所属分片的分片时长、以及当前媒体包所属分片的文件名标识;所述中心节点将打入所述标签的直播码流单播或组播到一个或多个下级节点;所述中心节点和所述下级节点分别存储所述打入标签的直播码流,根据所述标签的内容将所述直播码流存储为分片。
文档编号H04N7/173GK101969551SQ20101029441
公开日2011年2月9日 申请日期2010年9月26日 优先权日2010年9月26日
发明者周磊, 陈珊 申请人:中兴通讯股份有限公司