用于更新HTTP内容描述的方法和设备与流程

文档序号:12008608阅读:273来源:国知局
用于更新HTTP内容描述的方法和设备与流程
本发明总体上涉及超文本传输协议(HTTP)流传输,且更具体地涉及用于更新HTTP内容描述的方法和设备。

背景技术:
超文本传输协议(HTTP)流传输客户端使用HTTPGET(获得)请求来下载一个或多个媒体呈现。如在可扩展标记语言(XML)文档(例如,3GPPSA4规范)中描述的呈现也可被称为媒体呈现(MPD)。根据MPD,客户端可以了解媒体内容的编码格式(如比特率、编解码器、分辨率、语言)。然后,客户端基于屏幕分辨率、信道带宽、信道接收条件、用户的语言偏好等等中的一个或多个来选择格式。在使用HTTP流传输的情况下,一次下载媒体的一部分。这对于实况内容而言是必须的,使得内容的播出不会落后于实况编码太多。它还使客户端能够根据信道条件等等自适应地切换到不同的内容编码。根据3GPPHTTP自适应流传输,段(segment)是在MPD中被描述了其位置(URL,并且有可能是字节范围)的媒体的可下载部分。换言之,经由MPD向客户端通知如何访问段。根据3GPP,HTTP流传输客户端假定使用3GPP文件格式和电影片段,其中,段包含一个或多个电影片段。3GPP文件格式以ISO/IEC14496-12ISO基本媒体文件格式为基础。文件包括一系列称为盒(box)的对象。盒可以包含媒体或元数据。每个盒具有关联的盒类型(boxtype)(通常是4个字符的名称(总共32个字节))和关联的大小(通常是32位的无符号整数)。电影片段可以包括“moof”/“mdat”盒对。“moof”盒包含电影片段的元数据,而“mdat”盒包含电影片段的媒体数据。使用分段的文件使得客户端能够一次下载媒体的一部分,同时通过在“moof”盒中包括元数据,而不是在“moov”盒中的前部包括元数据, 来最小化启动延迟。“moov”盒仍包含对用于编码的编解码器的描述,但不包含与媒体采样有关的任何具体信息,例如定时、偏移量等。

技术实现要素:
附图说明为了更完整地理解本公开,现在结合附图和具体实施方式来参考下述附图描述,其中,相似的附图标记表示类似的部分。图1是被配置为根据本公开的客户端来工作的无线手持设备的图;图2是被配置为根据本公开来工作的系统的图;图3是示出了被配置为根据本公开来工作的系统的消息的图;图4是根据本公开的用于接收经由HTTP来流传输的呈现的方法的流程图;图5是根据本公开的用于发送经由HTTP来流传输的呈现的方法的流程图;以及图6是根据本公开的媒体呈现描述的图。具体实施方式应该意识到:为了说明的简单和清楚,在认为合适的地方,附图标记在附图中可以重复,以指示对应的或类似的元素。另外,阐述了众多的具体细节,以提供对本文描述的实施例的彻底理解。然而,本领域技术人员应该了解:可以在没有这些具体细节的情况下,实施本文描述的实施例。在其他实例中,没有详细描述公知的方法、过程、以及部件,以避免模糊本文所描述的实施例。此外,不应该认为本说明书限制了本文描述的实施例的范围。对于HTTP流传输,经由MPD向客户端通知媒体段的地址。MPD可以将播放列表结构或模板结构用于媒体段的地址。在利用播放列表结构的情况下,MPD将每个媒体段的统一资源定位符(URL)包含在MPD中。在利用模板结构的情况下,MPD将包含对客户端应该如何构造URL以访问未来将创建的段的描述。当将MPD的播放列表结构与实况流传输一起使用时,用新编码的段的地址来更新MPD,一次更新一个或几个。然而,客户端控制其何时发出HTTPGET或部分GET。因此,如果客户端已经获取了进入实况呈现30分钟的MPD,并且用户想从头观看该呈现,则客户端具有针对接下来的30分钟的全部段位置。客户端在约30分钟(在该时间点数据将播放完)时间内不需要下载新MPD。MPD的模板结构的特征是:客户端不需要以规律间隔来获取MPD。在这种情况下,通过MPD向客户端通知如何构造URL以访问未来将创建的段。对于这两种使用情形(当模板或播放列表被使用,并且客户端较晚收看且想从头观看呈现时),客户端不需要按与段持续时间在同一量级的间隔来获取MPD。对于这两种使用情形,在客户端需要由MPD所提供的新的段地址之前,其可以在例如30分钟或更长时间的量级上。如果客户端不需要按任何规律间隔来获取MPD,则当HTTP流传输服务从一个服务器迁移到另一个服务器时,存在服务中断的风险。HTTP流传输服务可能会发生中断,除非在MPD中提供了timeShiftBufferDepth(时移缓冲深度)(在MPD中给出了其地址的媒体段的持续时间,即客户端在任何给定时间可以访问的内容的总持续时间)并且timeShiftBufferDepth较短,即,在分钟或更短时间的量级上。在这种情况下,当新段被添加到MPD时,其地址可以对应于新的服务器位置,并且与旧服务器对应的段将最终落在与timeShiftBufferDepth对应的时间窗口之外。timeShiftBufferDepth是MPD中的可选参数,并且较长的时移缓冲深度有助于向客户端给出所存储内容的较大的时间范围供查看和搜索。MPD还包括要求向用户通知它们将要发生改变的特定参数。一个示例是minimumUpdatePeriod(最小更新周期),这是MPD中的可选参数。minimumUpdatePeriod向客户端通知不会以比minimumUpdatePeriod更短的间隔来更新MPD。例如,考虑下述情形:minimumUpdatePeriod是10分钟,并且服务器在0、10分钟、20分钟等时间处更新MPD。此外,客户端在5分钟、15分钟和25分钟时间处获取MPD。如果在20分钟处的MPD更新时,服务器将 minimumUpdatePeriod改为1分钟,则当客户端在25分钟处获取了最新的MPD时,其错过了4个更新。尽管事实上当客户端在15分钟处获取MPD时,minimumUpdatePeriod的值曾是10分钟。服务器的更新将不会比隔10分钟更频繁。然而,当客户端在10分钟后收看时,其发现已经错过了对MPD的4个更新。在实况流传输期间,基于呈现所需的段的数量,MPD可以变得很大。可以在服务器上放置单独的较小的检查文件,其指示是否已经发生服务迁移以及MPD中的任何参数是否已经改变。如果服务迁移已经发生,则客户端可以下载整个MPD。在服务迁移很少发生并且下载整个MPD对于客户端而言将是负担沉重的情况下,该检查文件有助于以“maximumMPDFetchInterval”(最大MPD获取间隔)的定期间隔来检查。MPD中提供的信息引导3GPP自适应HTTP流传输客户端。当客户端获得更新的MPD或者客户端验证了从上次获取开始MPD还没有更新时,客户端成功获取MPD。MPD包括若干参数,所述参数包括:newMPDLocation(新MPD位置)、maximumMPDFetchInterval、minimumUpdatePeriodMPD(最小更新周期MPD)、以及timeShiftBufferDepth。newMPDLocation:由客户端检测在MPD中是否存在该参数,指示MPD的位置的改变。在先前位置和新位置都维持MPD至少等于maximumMPDFetchIInterval的持续时间。在接收具有newMPDLocation属性的MPD之后,客户端必须从newMPDLocation所指示的新MPD位置获取下一个MPD。maximumMPDFetchInterval:该参数指定由客户端进行的MPD获取之间的最大允许时间量。换言之,maximumMPDFetchInterval是与客户端设备接收MPD的频率相关联的最大获取间隔。当maximumMPDFetchInterval存在时,客户端在超过与该间隔相关联的持续时间之前获取MPD。这允许在中断流传输服务的风险较小的情况下实现服务迁移和对特定MPD参数的更新。minimumUpdatePeriodMPD:该参数提供在服务器上更新MPD的 最小周期。换言之,minimumUpdatePeriodMPD与参数和段引用的更新频率相关联。如果minimumUpdatePeriodMPD不存在,则最小更新周期被假定为无穷大。如果minimumUpdatePeriodMPD的值减小,则在减小的值首次出现时,在MPD更新之后的至少等于maximumMPDFetchInterval的较大持续时间上,MPD更新间隔继续遵循先前的较长值。timeShiftBufferDepth:该参数指示可用于实况呈现的时移缓冲区的持续时间。换言之,它是客户端在任何给定时间处可以访问的内容的总持续时间。当timeShiftBufferDepth不存在时,其值是未知的。如果针对按需服务存在该timeShiftBufferDepth,则客户端应该忽略该属性。如果timeShiftBufferDepth值减少,则在减小的值首次出现时,在MPD更新之后的至少等于maximumMPDFetchInterval的持续时间上,应当保持先前的较长值的时间窗口内的所有段。另外,可以使用保护间隔。保护间隔是添加到maximumMPDFetchInterval的持续时间,在此期间服务器继续维持MPD的先前位置和任何内容段,从而避免在网络时延拖延了客户端获取MPD的情况下中断HTTP流传输。要求客户端至少按maximumMPDFetchInterval的频率来获取新MPD将允许服务以与maximumMPDFetchInterval一样快地从一个服务器迁移到另一个服务器。MPD可被更新,使得段位置对应于新的服务器位置。内容将在这两个位置都存在等于maximumMPDFetchInterval的持续时间。在maximumMPDFetchInterval之后,内容创建者可以确信所有客户端都已经获取最新的MPD,并且能够开始从原始服务器中移除那些段。备选地,可能需要服务器在两个位置处都将那些段保持较长的持续时间,该持续时间例如等于maximumMPDFetchInterval加上保护间隔。这将允许客户端具有一些额外的时间,因为它需要下载完整的MPD。这也允许下述情况:客户端在持续时间maximumMPDFetchInterval已经经过之前请求MPD,而服务器直到已经过持续时间maximumMPDFetchInterval之后才接收到该请求。一个例子是在存在高网络时延的情况下。此外,该客户端不 一定如minimumUpdatePeriod(其可以短于maximumMPDFetchInterval)那么频繁地获取MPD,由此节省带宽。存在客户端可以初始找到MPD的多种方式,其中之一包括对浏览器链接的点击事件。一旦客户端有权访问MPD,可以使用称为newMPDLocation(即呈现描述位置)的参数来改变MPD的位置。这在服务从一个位置迁移到另一个位置时可能是需要的。例如,MPD和段本身可以位于同一服务器上。如果内容创建者希望将MPD的位置从一个服务器改变到另一服务器,则其可以用参数newMPDLocation(新MPD位置)来指示新MPD位置的URL。当客户端看到MPD中指示的newMPDLocation时,则客户端可以从newMPDLocation中指示的URL获取所有未来的MPD。只要服务器在两个位置都维持MPD至少等于maximumMPDFetchInterval的持续时间,则其可以确信所有客户端现在从新位置获取MPD。此外,与maximumMPDFetchInterval相关联的持续时间可以进一步与保护间隔相关联,例如,通过将两个间隔加起来,以防止在因网络时延减慢了通信的情况下出现服务中断。参数maximumMPDFetchInterval自身可被更新。如果maximumMPDFetchInterval的原始值是“x”而新值是“y”,则如果在从“y”在MPD中首次出现的时间到时间“y+x”的时间间隔期间更新了任何参数或执行了服务迁移,则服务器应该在旧服务器上保持旧的参数值或段达等于x或y中较大者的时间长度。此外,该参数maximumMPDFetchInterval可以与另一参数相关联。一个实施例中,可以令maximumMPDFetchInterval是这样的数:其与minimumUpdatePeriod相乘以确定客户端获取MPD的频率。在一个示例中,maximumMPDFetchInterval可以是1.2,而minimumUpdatePeriod可以是10分钟;在该情况下,客户端将每12分钟获取一次MPD。在上文的描述中,客户端拉取MPD。作为补充或替代,在诸如服务器维护客户端状态的情况下MPD可被推送给客户端。在一个示例中,在一些情况下OMADM管理对象可被用于服务迁移和更新参数,而不是要求客户端按不长于maximumMPDFetchInterval的间隔执行对MPD的连续获取。这可能对应于下述情况:无线运营商向客户端设备 提供无线通信服务,并且向客户端设备提供HTTP流传输服务。运营商网络上的具有OMADM客户端且还配置为消费HTTP流传输服务的所有客户端可以使得经由管理对象从运营商的DM服务器向它们发送新参数。例如,可以使用OMADM管理对象将newMPDLocation和minimumUpdatePeriod的新值发送给客户端,并且由客户端接收它们。还可以发送对客户端应该立即从特定位置获取新MPD的指示。本公开的实施例可以使用与maximumMPDFetchInterval类似的minimumUpdatePeriod。在这种情况下,客户端将在超过与minimumlUpdatePeriod相关联的持续时间之前获取MPD。在这种情况下,要求客户至少按隔minimumUpdatePeriod的频率获取新MPD将允许服务与minimumUpdatePeriod一样快地从一个服务器迁移到另一个服务器。图1是根据本公开的一种无线手持设备的图,该无线手持设备被配置为作为客户端来工作。无线手持设备100包括数字键区101、显示器102和一个或多个处理器(未示出)。设备100的一个或多个处理器被配置为充当HTTP流传输客户端,以及执行本公开的方法。设备100可被配置为根据包括3GPP在内的各种蜂窝电话通信标准来工作。图2是被配置为根据本公开来工作的系统的图。系统201包括经由网络204可通信连接的客户端202和服务器203。客户端202可以是根据本公开的、可用于接收呈现的任何设备。其示例包括根据各种3GPP标准工作的移动电话(例如,无线手持设备100)和膝上型计算机。服务器203可以是根据本公开的、可用于发送呈现描述的任何设备。尽管服务器203被描绘成单一服务器,但是服务器203可以包括多个服务器、计算机、处理器、存储器和数据仓库。服务器203可以存储MPD,并且还可以存储具有一个或多个段的形式的呈现。备选地,所述一个或多个段可被存储于不同的服务器、存储器和数据库上或者存储在它们之间(未示出)。网络204可以是提供在客户端202和服务器203之间的通信的任何类型或风格的网络。其示例包括互联网和用于移动电话的公共无线 运营商网络。图3是描绘系统的消息的图,所述系统被配置为根据本公开工作。在301,客户端202向服务器203发送针对呈现描述(例如MPD)的内容请求,例如HTTPGET请求302。在303,服务器203从客户端202接收针对MPD的HTTPGET请求302。在304,客户端202从服务器203接收第一呈现描述(MPD305)。在306,服务器203向客户端304发送第一呈现描述(MPD305)。第一呈现描述(MPD305)包括获取间隔,所述获取间隔确定客户端202必须何时获取或以其他方式接收新MPD。第一呈现描述(MPD305)还可以包括新呈现描述位置,所述新呈现描述位置确定客户端202必须从何处获取或以其他方式接收新MPD。MPD305还包括对与呈现关联的一个或多个段的至少一个引用。每个段与统一资源定位符(URL)相关联。在307,客户端202向服务器203发送针对一个或多个段的一个或多个HTTPGET请求308。如上所述,服务器203可以包括多个服务器,使得不同的服务器可以存储MPD和一个或多个段。在309,服务器203从客户端202接收针对一个或多个段的一个或多个HTTPGET请求308。在310,客户端202从服务器203接收所请求的段311。在312,服务器203向客户端202发送段311。在客户端202接收到第二呈现描述(例如MPD317)之前,该客户端可以接收到一个或多个段。在313,可选地,客户端202可以向服务器203发送针对第二呈现描述(即,更新的MPD)的HTTPGET请求314。在315,可选地,服务器203从客户端202接收针对第二呈现描述的HTTPGET请求314。在客户端202处经过了获取间隔(例如maximumMPDFetchInterval)的持续时间之前,由客户端202发送针对更新的MPD的HTTPGET请求314。在316,客户端202从服务器203接收第二呈现描述(MPD317)。在318,服务器203向客户端202发送第二呈现描述(MPD317)。在客户端202没有请求第二呈现描述(MPD317)的情况下,例如当使 用OMADM对象的情况下,在获取间隔持续时间过去之前,服务器203发送该第二呈现描述(MPD317)。在319,客户端202向服务器203发送针对一个或多个段的一个或多个HTTPGet请求320。在321,服务器203接收针对一个或多个段的一个或多个HTTPGET请求320。HTTPGET请求320与第二呈现描述(MPD317)一致。因此,与HTTPGET请求308相比,HTTPGET请求320可被发送给不同的服务器。此外,一个或多个HTTPGET请求308可以是仅请求段的一部分的局部HTTPGET请求。在322,客户端202从服务器203接收段323。在324,服务器203向客户端202发送段323。如上文讨论的,发送第二呈现描述(MPD317)的服务器可以与发送段的服务器不相同。此外,这说明了在客户端设备消费所述段中的一个或多个段之前接收到第二呈现描述(MPD317)的情形。图4是根据本公开的用于接收经由HTTP来流传输的呈现的方法的流程图。在401,HTTP流传输客户端发送针对内容的请求。如上文讨论的,其示例包括媒体呈现描述。在402,客户端接收基于内容请求的MPD。媒体呈现描述包括获取间隔,该获取间隔指示在其结束之前客户端应该获取或以其他方式接收更新的MPD的持续时间。在403,可选地,客户端可以请求更新的MPD。该请求应该由客户端在与获取间隔关联的持续时间过去之前做出。在404,客户端接收第二MPD。第二MPD是在402中接收的MPD的更新版本,但可以与在402中接收的MPD相同。图5是根据本公开的、用于发送经由HTTP来流传输的呈现的方法的流程图。在501,服务器接收针对内容的请求。如上文讨论的,其示例包括媒体呈现描述。在502,服务器发送基于在501中接收的内容请求的MPD。发送的MPD包括在其结束之前应该获取的或以其他方式向客户端发送更新的MPD的持续时间。在503,可选地,服务器可以接收针对更新的MPD的请求。服务 器可能没有接收到来自客户端的请求,如在该服务器是维护客户端状态的OMADM服务器的情况下那样。在504,服务器向客户端发送第二MPD。第二MPD是在502中发送的MPD的更新版本,但有可能与在502中发送的MPD相同。发送第二MPD可以是响应于在客户端处与获取间隔相关联的持续时间过去之前由客户端发送的请求。备选地,发送第二MPD可以是在服务器处与获取间隔相关联的持续时间过去之前,例如在服务器维护客户端状态并且可以使用OMADM对象来发送第二MPD的情况下。图6是根据本公开的媒体呈现描述的图。MPD601包括一个或多个参数602和一个或多个段描述603。参数602包括获取间隔。获取间隔可以是maximumFetchInterval或minimumUpdatePeriod。另外,参数602可以同时包括maximumFetchInterval和minimumUpdatePeriod。段描述603可以具有下述形式:播放列表、模板、或两者兼而有之。此外,段描述603可以具有提供呈现的一个或多个段的多个服务器。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1