处理国际标准化组织基础媒体文件格式网页资源追踪的动态网页内容的制作方法

文档序号:22047532发布日期:2020-08-28 18:58阅读:153来源:国知局
处理国际标准化组织基础媒体文件格式网页资源追踪的动态网页内容的制作方法

本申请主张2018年1月19日提交的美国临时申请第62/619,641号、2018年2月28日提交的美国临时申请第62/636,701号、2018年4月26日提交的美国临时申请第62/663,112号、2019年1月17日提交的美国申请第16/250,776号的权益,所述申请中的每一者的全部内容以引用的方式并入本文中。

本公开涉及经编码媒体数据的存储和输送。



背景技术:

数字视频能力可并入至广泛范围的装置中,包含数字电视、数字直播系统、无线广播系统、个人数字助理(pda)、膝上型或台式计算机、数字摄像机、数字记录装置、数字媒体播放器、视频游戏设备、视频游戏控制面板、蜂窝式或卫星无线电电话、视频电话会议装置及类似者。数字视频装置实施视频压缩技术,诸如描述于由mpeg-2、mpeg-4、itu-th.263或itu-th.264/mpeg-4第10部分进阶视频译码(avc)、itu-th.265(也被称作高效率视频译码(hevc))及此类标准的扩展所定义的标准中的那些技术,从而更高效地传输及接收数字视频信息。

视频压缩技术执行空间预测及/或时间预测以减少或去除视频序列中所固有的冗余。对于基于块的视频译码,可将视频图框或图块分割成宏块。可进一步分割每一宏块。使用相对于相邻宏块的空间预测来编码经框内译码(i)的图框或图块中的宏块。经框间译码(p或b)图框或图块中的宏块可使用相对于同一图框或图块中的相邻宏块的空间预测或相对于其它参考图框的时间预测。

在已编码视频数据之后,可将视频数据封包化以用于传输或存储。可将视频数据组译成符合多种标准中的任一者的视频文件,所述标准诸如国际标准化组织(iso)基础媒体文件格式(bmff)及其扩展,诸如avc。



技术实现要素:

一般来说,本公开描述用于处理国际标准化组织基础媒体文件格式(isobmff)文件或其它此类文件的动态网页内容的技术。具体来说,动态网页内容可包含于isobmff文件的网页资源追踪中。动态网页内容可由html元素(诸如javascript元素)定义。

在一个实例中,一种处理媒体数据的方法包含:检索包含一或多个样本的国际标准化组织基础媒体文件格式(isobmff)文件,所述一或多个样本包含定义动态网页内容的超文本标记语言(html)元素;自所述文件的所述样本提取所述html元素;以及处理所述html元素以呈现所述动态网页内容。

在另一实例中,一种用于处理媒体数据的装置包含:存储器,其经配置以存储包含一或多个样本的国际标准化组织基础媒体文件格式(isobmff)文件,所述一或多个样本包含定义动态网页内容的超文本标记语言(html)元素;及处理单元,其实施于电路中且经配置以:检索所述isobmff文件;自所述文件的所述样本提取所述html元素;以及处理所述html元素以呈现所述动态网页内容。

在另一实例中,一种用于处理媒体数据的装置包含:用于检索包含一或多个样本的国际标准化组织基础媒体文件格式(isobmff)文件的装置,所述一或多个样本包含定义动态网页内容的超文本标记语言(html)元素;用于自所述文件的所述样本提取所述html元素的装置;以及用于处理所述html元素以呈现所述动态网页内容的装置。

在另一实例中,提供一种其上存储有指令的计算机可读存储媒体,所述指令在执行时使得处理器进行以下操作:检索包含一或多个样本的国际标准化组织基础媒体文件格式(isobmff)文件,所述一或多个样本包含定义动态网页内容的超文本标记语言(html)元素;自所述文件的所述样本提取所述html元素;以及处理所述html元素以呈现所述动态网页内容。

在以下随附图式及描述中阐述一或多个实例的细节。其它特征、目标及优点将自所述描述及图式以及权利要求书而显而易见。

附图说明

图1为说明实施用于经由网络串流传输媒体数据的技术的实例系统的框图。

图2为更详细地说明图1的组件的实例集合的框图。

图3为说明实例多媒体内容的元素的概念图。

图4为说明实例视频文件的元素的框图,所述实例视频文件可对应于表示的区段。

图5为说明网页资源的实例通用假设处理模型的概念图。

图6为说明根据本公开的技术的实例动态html数据和程序模型描述的概念图。

图7为说明实例网页资源程序模型的流程图。

图8为说明用于执行本公开的技术的实例方法的流程图。

具体实施方式

一般来说,本公开描述用于构建及使用包含用于携载媒体数据和网页内容两者的一或多个追踪的文件(例如,符合iso基础媒体文件格式(isobmff)或类似格式)的技术。更具体来说,文件格式处理器(例如,文件囊封器或解囊封器)可处理包含用于携载网页资源(包含动态网页数据)的追踪。

mpeg.chiariglione.org/standards/mpeg-4/iso-base-media-file-format/text-isoiec-14496-12-5th-edition可获得的2015年2月20日的iso/iec14496-12“iso基础媒体文件格式(isobasemediafileformat)”指定诸如媒体串流及资源的计时资源的存储的格式,其中不存在计时串流结构或不需要暴露计时串流结构。

2017年10月的斯托克汉姆(stockhammer)和孔科拉托(concolato),“isobmff中的网页资源的携载上的wd(wdoncarriageofwebresourceinisobmff)(iso/iec23001-15)”iso/iecjtc1/sc29/wg11,文档n17242(“n17242”)提出追踪类型及处理模型以支持网页资源的携载。本公开描述可用于可使用n17242的追踪来将动态网页递送至客户端侧装置的特定使用情况的技术。追踪格式和基本处理模型遵循n17242中呈现的理念。将n17242附加至此临时申请,如权利要求书之后的附件a。

本公开描述此格式可如何用于存储网页资源及定义相关联名称的技术。本公开还规定如何处理这些网页资源与携载网页资源的isobmff文件的参考。以此方式,本公开描述启用由iso/iec14496-12支持的同步媒体及网页资源的递送用于文档下载、渐进式文件下载、串流、广播或类似者的技术。假定isobmff文件含有足够信息以使得isobmff文件可在常规浏览器中播放。未定义网页数据的呈现处理模型,且呈现可为网页浏览器所拥有。

本公开还描述用于传信所需网页能力以处理此isobmff文件的技术。这些技术可以可在专用框(box)(例如,mime框)中传信由其它组织定义的网页配置文件的方式来执行,类似于mpeg.chiariglione.org/standards/mpeg-4/timed-text-and-other-visual-overlays-iso-base-media-file-format/isoiec-14496-30可获得的2012年10月的辛格(singer)等人,“iso基础媒体文件格式中的计时文本和其它视觉迭加(timedtextandothervisualoverlaysinisobasemediafileformat)”,iso/iec14496-30。

可在无特殊网页配置文件的情况下实践本公开的技术。

当需要计时解码及呈现时,可使用追踪来完成网页资源(html、javascript…)的存储,包含诸如搜寻、快速传递、特技播放等的操作。在此情况下,假定样本中携载的网页资源将在样本呈现时间由网页资源处理器(例如,网页浏览器)处理(例如,解析及解译)。此允许网页处理(例如,显现或javascript执行)与诸如音频/视频/副标题追踪的其它追踪同步。参看图5的实例假设处理模型给出这些追踪的处理的更多细节,如下文更详细地论述。

若干类型的追踪可用于不同目的。首先,追踪递送可在播放其它媒体追踪时被用作迭加且可随时间变化的html内容。此类追踪不应参考其它媒体追踪(音频、视频)。携载的html内容可转而参考其它媒体追踪(音频、视频…)。此类型的追踪还可用于仅提供进阶图像迭加。

第二种类型的追踪为递送javascript代码的追踪。可在html文档的上下文中评估此代码,其先前通过isobmff文件的加载之前的应用、通过来自先前类型的追踪的样本的加载或通过项目的加载来加载。

第三种类型的追踪为将由内部页码javascript代码使用的如html中所指定递送元数据的追踪,其先前通过isobmff文件的加载之前的应用、或通过来自先前类型的追踪的样本的加载或通过项目的加载来加载。

第四种类型的追踪为是以上第一、第二及/或第三类型的追踪的组合的追踪,可能地还允许html-5追踪控制媒体串流,例如用于成框、子母图片等。

根据本公开的技术可使用用于追踪之间的相关性的两个模型。在一个模型中,追踪为独立的,且不从属于任何父代html。举例来说,追踪可为自行显现的html追踪,或其为不分派任何事件但执行代码的javascript追踪。举例来说,如果javasscript代码使用canvasapi产生迭加并且如果其不采用任何特定html(而是仅空html<html><body></body></html>)并产生所有html元素时,可能出现此情况。在此情况下,不需要html进入点。

另一模型为追踪从属于某一执行上下文。举例来说,追踪可为javascript追踪且仅含有别处所定义功能的调用。替代地,追踪可为网页视频文本追踪(webvtt)格式追踪,且相关联的处理可包含于javascript文件中。在此情况下,可在无上下文环境、html及javascript的情况下使用追踪。因此,html/js进入点为必需的且应在同一isobmff文件中。

单个文件可含有多个基于网页的追踪。一些追踪(例如,javascript)的处理可为一些其它追踪(例如,html追踪)所要求的。将播放哪组独立追踪的选择为特定实现。其可基于文件中给出的元数据(配置文件能力、语言信息)或基于用户输入(例如,经由gui)实现。

网页数据可为常见的。举例来说,网页数据可包含几乎所有样本的更新。替代地,网页数据可为非常稀少的。本公开解决网页计时数据的定义及文件格式中的追踪格式的表示。如果网页数据的定义稀少,则可考虑替代方案,且通过此约束,(例如)如果输送不允许使用多个追踪,则作为追踪的表示导致其它问题。

在后一种情况下,可考虑稀少的网页数据追踪可经映像至不同结构以实现此多任务。实例为使用电影片段中的metaboxes或使用eventmessageboxes。此方法还可解决分段追踪在较长时段没有样本的问题或在下一样本处于任意更迟时间时样本持续时间待定的问题,在串流直播应用中发生时尚未知晓。

如iso/iec14496-30中所指定,除非通过嵌入环境(例如,通过带外(out-of-band)递送或带内(in-band)递送且经识别为文件进入点的html页面)所指定,否则使用不同追踪的trackheaderbox来指定包含迭加html追踪及图像的追踪的布局。

在一些实例中,名称‘htmt’用于传信追踪(例如,迭加html追踪)的存在,约束如下:

●追踪处理程序类型应为‘text’

●样本条目格式应为‘stxt’且:

○其mime_format字段应设定为'text/html'或'application/xhtml+xml',

○其content_encoding字段应含有http的内容编码标头中允许的空串或值

●每一样本含有html代码,且可经标记为以下中的一者:

○作为同步样本(使用'stss'框或使用设定为2的sample_depends_on旗标)

○作为冗余同步样本,其中sample_has_redundancy旗标设定为1

加载html样本可等效于导览新样本中包含的文档。处理浏览器中的此类信息可为特定实现,但应避免视信息为用户导航,例如捕获浏览器历史中的信息。在特定呈现时间搜寻样本可等效于搜寻样本的开端,即,未预期处理。

在一些实例中,名称‘hjst’用于传信追踪(例如,javascript追踪)的存在,约束如下:

●追踪处理程序类型应为'meta'

●样本条目格式应为'stxt'且:

○其mime_format字段应设定为'application/javascript'或'text/javascript',

○其content_encoding字段应含有http的内容编码标头中允许的空串或值

●每个样本含有javascript代码且应经标记为以下中的一者:

○作为同步样本(使用'stss'框或使用设定为2的sample_depends_on旗标)

○作为冗余同步样本,其中sample_has_redundancy旗标设定为1

在一些实例中,名称‘hvtt’用于传信追踪(例如,webvtt元数据追踪)的存在,约束如下:

●追踪处理程序类型应为'meta'

●样本条目格式应为'wvtt',如iso/iec14496-30中所指定且:

○其配置值应为“webvtt\r\n”

●配置应含有标头“类型:元数据(kind:metadata)”。在此情况下

○kindbox应呈现在trackbox中的userdatabox中,其值如下:

■schemeuri:about:html-kind,如html中所指定

■值:元数据(value:metadata),如html中所指定

○每个样本应含有文本提示且应经标记为以下中的一者:

■作为同步样本(使用'stss'框或使用设定为2的sample_depends_on旗标)

■作为冗余同步样本,其中sample_has_redundancy旗标设定为1

图像为重要网页资源。如iso/iec14496-12或iso/iec23008-12中所指定的图像追踪可用于提供图像迭加。当html内容参考图像(在追踪中或作为项目)时,如所指定的迭加html追踪还可在无互动性的情况下用于提供进阶图像迭加。

当没有特定时间与所述资源(进入点css、html、js)的加载相关时,网页资源可经存储为项目。可宣布项目在可放置在电影标头中的metabox中。metabox可在电影标头中或在电影片段标头中使用。

在一些实例中,名称‘htmi’可用于传信metabox的使用,约束如下:

●其应在文件层级呈现

●其应使用handlerbox,其中handler_type设定为'html'

●其应含有primaryitembox,其宣布初级项目为类型'text/html'或'application/xhtml+xml'的资源,

●其不应使用datainformationbox、itemprotectionbox或ipmpcontrolbox

●其应使用iteminformationbox,约束如下:

○其版本为0或1

○每个项目通过iteminfoentry来描述,约束如下:

■其版本设定为0

■其item_protection_index设定为0

■如果项目参考另一项目的内容中的url,则其item_name等于所述url。

●其应使用itemlocationbox,约束如下:

○其版本设定为1或2

○每个项目通过条目来描述,且值0、1或2可用于建构方法。

●其可使用上文未明确排除的任何其它框(诸如itemreferencebox)。

如果网页资源嵌入iso/iec14496-12文件中(如上文所描述在追踪样本或项目中),且如果这些资源中的任一者含有还嵌入同一isobmff文件中的url至其它资源(包含至isobmff文件自身(例如,在视频卷标中)),则以下约束可应用于文件:

●metabox应在文件层级呈现,约束如下

○针对每一url至嵌入isobmff文件中的资源,对应于所述资源的项目的item_name应设定为所述url

○可使用绝对url

○可使用相对url。如果使用相对url,则包含资源的基础url定义基础url。应使用遵循rfc3986的参考分辨率。

○如果嵌入isobmff文件中的资源使用至所述同一isobmff文件的url,则应添加额外项目,其item_name设定为所述url且项目位置描述整个文件(偏移:0,整个长度)

本公开的技术可应用于符合根据以下中的任一者囊封的视频数据的视频文件:isobmff、可调式视频译码(svc)文件格式、进阶视频译码(avc)文件格式、第三代合作伙伴计划(3gpp)文件格式及/或多视图视频译码(mvc)文件格式或其它类似视频文件格式。

本公开的技术解决与处理文件(例如,isobmff文件)的网页资源追踪中包含的动态网页内容相关的某些问题。举例来说,本公开描述网页资源追踪的样本数据以使得网页资源追踪可携载分段isobmff文件中的网页数据。为实现此目的,本公开描述携载什么数据的实例说明。举例来说,共同数据追踪可经携载于电影及追踪标头中作为同步样本,且影响文档目标模型(dom)的数据在同步样本之间作为异步样本。作为另一实例,共同数据追踪可经携载于电影及追踪标头中,且影响dom的数据可经携载为(潜在地冗余)同步样本及/或异步样本。本公开还描述与客户端装置的网页资源解码功能可如何在不同样本类型之间区分且因此正确处理各种类型的样本及/或利用多种不同类型的信息(例如,上述三种类型)中的适当一者相关的用于客户端装置侧技术的处理模型。

值(有时被称作“名称”)“dhtm”可用于传信追踪(诸如动态html或html5追踪)的存在,在一个实例中约束如下:

●追踪处理程序类型应为'text'

●样本条目格式应为'stxt'且:

○其mime_format字段应设定为'text/html'或'application/xhtml+xml',

○其content_encoding字段应含有http的内容编码标头中允许的空串或值

初始‘moov’框下方的‘meta’信息框应含有应利用追踪中的样本的符合html文档。

html文档通常含有通常与相同文件中的其它媒体同步地根据追踪的解码时间使用样本的javascript部分。两种实例方式界定于可如何由网页存取样本:经由自本地快取提取的xmlhttprequest(xhr)或经由本地网络套接字通信。xhr为允许数据在网页浏览器与服务器(其可为本地代理服务器)之间传送的api。

将使用xhr自本地快取提取的样本可不迟于在样本解码时间使可用请求用户代理或网页。在初始播放、搜寻或调入等动作时,如果初始网页逻辑需要使用xhr来提取样本数据,则可使用如下文所指定的url模板信息来重构样本的url。在一些实例中,如果播放开始于冗余同步样本,则将冗余同步样本放置在高速缓存中仅存取一次。

在一些实例中,网页资源追踪携载样本名称及位置信息。此信息可呈样本的url的形式。归因于安全考虑,名称和位置可相对于初始网页或初始文件的完全合格的主机名。可存在携载名称和位置信息的若干种方法。追踪标头可携载样本数据的类型及如何产生url。三个实例选项呈现如下,且针对每一个,追踪标头可指示使用哪一个:

1)在一个实例中,每个样本的相对url携载于携载样本自身的每个电影片段中的框中。在下文中指定用于递送此信息的框结构的语法及语义的实例。替代地,样本自身可为包含实体标头以及实体本体两者的http实体。在后一种情况下,追踪标头包含每个样本为http实体(其中http标头携载于内部)的信息。

2)在另一实例中,追踪标头包含实现样本编号取代为模板以创建样本url的模板url。在下文中指定用于递送基于编号的模板信息的框结构的实例语法及语义。在此情况下,$编号$($number$)将由开始于0且针对每个以下样本递增1的编号取代。另外,如果sample_max_num存在,则增量为模数sample_max_num。如果sample_max_num存在,则放置在高速缓存中的样本的总持续时间不应超过最终sample_max_num样本的持续时间,以避免快取样本的环绕覆写。

3)在另一实例中,追踪标头含有基于时间的url模板,从而通过取代模板中的样本的解码时间来重构样本的url及名称。在此情况下,追踪标头包含实现向模板增加解码时间以创建统一url的模板url。在下文中指定用于递送此信息的框结构的语法及语义。在此情况下,$时间$($time$)将由样本的解码时间取代。

如果网页资源追踪携载将使用网络套接字推送至用户代理以用于包含于初始网页中的数据,则网络套接字地址可由网页资源追踪标头携载。举例来说,网络套接字地址可携载于电影框下方的框中或作为媒体信息的部分,如下文所指定。

实例样本url框语法及语义经提供如下:

定义:

框类型:‘surl’

箱:追踪片断框('traf')

必选:否

数量:零或大于零

样本url框针对追踪片断中的样本携载所需的isobmffrelativeurl。

语法:

语义:

sample_url:样本的相对url。

网页资源媒体标头的实例语法及语义经提供如下:

定义:

框类型:‘wmhd’

箱:媒体信息框(‘minf’)

必选:是

数量:仅一个

网页资源追踪媒体信息框层次中的webmediaheaderbox携载的信息的使用。网页媒体标头含有使解码器重构样本的相对url及初始网页接收样本数据的网络套接字的语义及/或url的信息。

定义以下旗标:

0x000001sample-url-template-present.

0x000002sample-max-num-present

0x000004web-socket-present.

语法:

语义:

redundant_sync_url为追踪中的任何冗余同步的相对url。

sample_url_template携载追踪的同步及异步样本的url模板。此串应含有$编号$或$时间$。

sample_max_num携载编号模数,如果经传信,$编号$自0递增。

web_socket携载网页套接字url以发送样本数据。

为了理解网页资源的不同样本追踪什么,理解客户端侧动态网页(在客户端侧动态变化的网页)如何动作是相关的。此类网页的最公知的认识为通过使用javascript更新的html内容。此网页的非常简单的实例(来自en.wikipedia.org/wiki/dynamic_html#example:_displaying_an_additional_block_of_text)如下:

通过将实例插入www.w3schools.com/html/tryit.asp?filename=tryhtml_intro的w3schoolstryit编辑器中,我们可见此实例在操作中。此处,javascript可用于向现有网页更新及增加某些元素。

在http串流中,频繁使用的操作包含head、get及部分get。head操作检索与给定的统一资源定位符(url)或统一资源名称(urn)相关联的文件的标头,但不检索与url或urn相关联的有效负载。get操作检索与给定url或urn相关联的整个文件。部分get操作接收字节范围作为输入参数且检索文件的连续数目个字节,其中字节的数目对应于所接收字节范围。因此,可提供电影片段以用于http串流,这是因为部分get操作可得到一或多个单独的电影片段。在电影片段中,能够存在不同追踪的若干追踪片段。在http串流中,媒体呈现可为客户端可存取的数据的结构化集合。客户端可请求且下载媒体数据信息以向用户呈现串流服务。

在使用http串流来串流3gpp数据的实例中,可能存在针对多媒体内容的视频及/或音频数据的多个表示。如下文所解释,不同表示可对应于不同译码特性(例如,视频译码标准的不同配置文件或层级)、不同译码标准或译码标准的扩展(诸如多视图及/或可缩放扩展)或不同位率。这些表示的指令清单可在媒体呈现描述(mpd)数据结构中定义。媒体呈现可对应于http串流客户端装置可存取的数据的结构化集合。http串流客户端装置可请求且下载媒体数据信息以向客户端装置的用户呈现串流服务。媒体呈现可在mpd数据结构中描述,mpd数据结构可包含mpd的更新。

媒体呈现可含有一或多个周期(period)的序列。每一周期可延伸直至下一周期(period)开始为止,或在最末周期的情况下,直至媒体呈现结束为止。每一周期可含有针对同一媒体内容的一或多个表示。表示可为音频、视频、计时文本或其它此类数据的数个替代性经编码版本中的一者。表示可因编码类型而异(例如,对于视频数据,因位率、分辨率及/或编码解码器而异,对于音频数据,则因位率、语言及/或编码解码器而异)。术语表示可用于指代经编码音频或视频数据的对应于多媒体内容的特定周期且以特定方式编码的部分。

特定周期的表示可指派给由mpd中的属性指示的群组,所述属性指示表示所属的调适集。同一调适集中的表示通常被视为彼此的替代,这是因为客户端装置可在这些表示之间动态地且顺畅地切换,例如执行带宽调适。举例来说,特定周期的视频数据的每一表示可指派至同一调适集,以使得可选择所述表示中的任一者进行解码以呈现对应周期的多媒体内容的媒体数据(诸如视频数据或音频数据)。在一些实例中,一个周期内的媒体内容可由来自群组0(如果存在)的一个表示来表示,或由来自每一非零群组的至多一个表示的组合来表示。周期的每一表示的时序数据可相对于所述周期的开始时间来表达。

表示可包含一或多个区段。每一表示可包含初始化区段,或表示的每一区段可自初始化。当存在时,初始化区段可含有用于存取表示的初始化信息。一般来说,初始化区段不含有媒体数据。区段可由识别符唯一地参考,诸如统一资源定位符(url)、统一资源名称(urn)或统一资源识别符(uri)。mpd可为每一区段提供识别符。在一些实例中,mpd还可提供呈范围属性的形式的字节范围,所述范围属性可对应于可由url、urn或uri存取的文件内的区段的数据。

可选择不同表示以用于大体上同时检索不同类型的媒体数据。举例来说,客户端装置可选择音频表示、视频表示及计时文本表示,自所述表示检索区段。在一些实例中,客户端装置可选择特定调适集以用于执行带宽调适。即,客户端装置可选择包含视频表示的调适集、包含音频表示的调适集及/或包含计时文本的调适集。替代地,客户端装置可选择某些类型媒体(例如,视频)的调适集,且直接选择其它类型媒体(例如,音频及/或计时文本)的表示。

图1为说明实施用于经由网络串流传输媒体数据的技术的实例系统10的框图。在此实例中,系统10包含内容准备装置20、服务器装置60及客户端装置40。客户端装置40及服务器装置60通过网络74以通信方式耦接,所述网络可包括因特网。在一些实例中,内容准备装置20与服务器装置60还可通过网络74或另一网络耦接,或可直接以通信方式耦接。在一些实例中,内容准备装置20及服务器装置60可包括同一装置。

在图1的实例中,内容准备装置20包括音频源22及视频源24。音频源22可包括(例如)产生表示待由音频编码器26编码的所捕获音频数据的电信号的麦克风。替代地,音频源22可包括存储先前记录的音频数据的存储媒体、诸如计算机化的合成器的音频数据产生器或音频数据的任何其它来源。视频源24可包括:视频摄像机,其产生待通过视频编码器28编码的视频数据;存储媒体,其编码有先前记录的视频数据;视频数据产生单元,诸如计算机图形源;或任何其它视频数据源。内容准备装置20未必在所有实例中均以通信方式耦合至服务器装置60,但可将多媒体内容存储至由服务器装置60读取的单独媒体。

原始音频及视频数据可包括模拟或数字数据。模拟数据可在由音频编码器26及/或视频编码器28编码前经数字化。音频源22可在说话参与者正在说话时自说话参与者获得音频数据,且视频源24可同时获得所述说话参与者的视频数据。在其它实例中,音频源22可包括包括所存储的音频数据的计算机可读存储媒体,且视频源24可包括包括所存储的视频数据的计算机可读存储媒体。以此方式,本公开中所描述的技术可应用于实况、串流、实时音频及视频数据或所存盘的、预先记录的音频及视频数据。

对应于视频图框的音频图框通常为含有通过音频源22俘获(或产生)的音频数据的音频图框,音频数据同时伴随含于视频图框内的通过视频源24俘获(或产生)的视频数据。举例来说,当说话参与者通常通过说话而产生音频数据时,音频源22俘获音频数据,且视频源24同时即在音频源22正俘获音频数据的同时俘获说话参与者的视频数据。因此,音频图框在时间上可对应于一或多个特定视频图框。因此,对应于视频图框的音频图框大体上对应于同时俘获到的音频数据及视频数据且音频图框及视频图框分别包括同时俘获到的音频数据及视频数据的情形。

在一些实例中,音频编码器26可对每一经编码音频图框中表示记录经编码音频图框的音频数据的时间的时间戳进行编码,且类似地,视频编码器28可对每一经编码视频图框中表示记录经编码视频图框的视频数据的时间的时间戳进行编码。在这些实例中,对应于视频图框的音频图框可包括:包括时间戳的音频图框及包括相同时间戳的视频图框。内容准备装置20可包含内部频率,音频编码器26及/或视频编码器28可根据所述内部频率产生时间戳,或音频源22及视频源24可使用所述内部频率以分别使音频数据及视频数据与时间戳相关联。

在一些实例中,音频源22可向音频编码器26发送对应于记录音频数据的时间的数据,且视频源24可向视频编码器28发送对应于记录视频数据的时间的数据。在一些实例中,音频编码器26可对经编码音频数据中的序列识别符进行编码以指示经编码音频数据的相对时间排序,但未必指示记录音频数据的绝对时间,且类似地,视频编码器28还可使用序列识别符来指示经编码视频数据的相对时间排序。类似地,在一些实例中,序列识别符可经映像或以其它方式与时间戳相关。

音频编码器26通常产生经编码音频数据的串流,而视频编码器28产生经编码视频数据的串流。每一个别数据串流(不论音频或视频)可被称作基本串流。基本串流为表示的单个的经数字译码(可能经压缩)的分量。举例来说,表示的经译码视频或音频部分可为基本串流。基本串流可在被囊封于视频文件内之前被转换成封包化基本串流(pes)。在相同表示内,可使用串流id来区分属于一个基本串流的pes封包与其它pes封包。基本串流的数据的基本单元为封包化基本串流(pes)封包。因此,经译码视频数据大体对应于基本视频串流。类似地,音频数据对应于一或多个相应基本串流。

许多视频译码标准(诸如,itu-th.264/avc及即将来临的高效视频译码(hevc)标准)界定无误差位流的语法、语义及译码过程,所述无误差位流中的任一者符合特定配置文件或层级。视频译码标准通常并不指定编码器,但编码器具有保证所产生的位流对于解码器而言是标准兼容的任务。在视频译码标准的上下文中,“配置文件”对应于算法、特征或工具及施加至算法、特征或工具的约束的子集。如由例如h.264标准所定义,“配置文件”为由h.264标准指定的完整位流语法的子集。“层级”对应于解码器资源消耗,诸如(例如),解码器内存及计算的限制,所述限制涉及图片分辨率、位率及块处理速率。配置文件可用profile_idc(配置文件指示符)值传信,而层级可用level_idc(层级指示符)值传信。

举例来说,h.264标准认为,在由给定配置文件的语法所强加的界限内,仍然可能要求编码器及解码器的效能有较大变化,此取决于位流中的语法元素(诸如,经解码图像的指定大小)所取的值。h.264标准进一步认为,在许多应用中,实施能够处理特定配置文件内的语法的所有假设使用的解码器既不实际又不经济。因此,h.264标准将“层级”定义为强加于位流中的语法元素的值的约束的指定集。这些约束可为对值的简单限制。替代地,这些约束条件可呈对值的算术组合(例如,图片宽度乘以图片高度乘以每秒解码的图片数目)的约束的形式。h.264标准进一步规定,个别实施对于每一所支持配置文件可支持不同层级。

符合配置文件的解码器一般支持配置文件中所定义的所有特征。举例来说,作为译码特征,b图片译码在h.264/avc的基线配置文件不被支持,但在h.264/avc的其它配置文件中被支持。符合层级的解码器应能够解码不需要超出所述层级中所定义的限制的资源的任何位流。配置文件及层级的定义可有助于解译。举例来说,在视频传输期间,可针对整个传输会话协商及同意一对配置文件定义及层级定义。更具体地说,在h.264/avc中,层级可定义对于需要处理的宏块的数目、经解码图片缓冲器(dpb)大小、经译码图片缓冲器(cpb)大小、竖直运动向量范围、每两个连续mb的运动向量的最大数目及b块是否可具有小于8×8像素的子宏块分区的限制。以此方式,解码器可确定解码器是否能够适当地对位流进行解码。

在图1的实例中,内容准备装置20的囊封单元30接收包括来自视频编码器28的经译码视频数据的基本串流及包括来自音频编码器26的经译码音频数据的基本串流。在一些实例中,视频编码器28及音频编码器26可各自包含用于自经编码数据形成pes封包的封包化器。在其它实例中,视频编码器28及音频编码器26可各自与用于自经编码数据形成pes封包的相应封包化器介接。在另外其它实例中,囊封单元30可包含用于自经编码音频及视频数据形成pes封包的封包化器。

视频编码器28可用多种方式编码多媒体内容的视频数据,以产生多媒体内容的各种位率且具有各种特性的不同表示,所述特性诸如像素分辨率、图框速率、对各种译码标准的符合、对各种译码标准的各种配置文件及/或配置文件层级的符合、具有一个或多个视图的表示(例如,对于二维或三维播放)或其它此类特性。如本公开中所使用,表示可包括音频数据、视频数据、文本数据(例如,用于封闭字幕)或其它此数据中的一者。表示可包含诸如音频基本串流或视频基本串流的基本串流。每一pes封包可包含stream_id,其识别pes封包所属的基本串流。囊封单元30负责将基本串流组译成各种表示的视频文件(例如,区段)。

囊封单元30自音频编码器26及视频编码器28接收表示的基本串流的pes封包且自所述pes封包形成对应的网络抽象层(nal)单元。译码视频区段可经组织成nal单元,其提供“网络友好”视频表示寻址应用程序,诸如视频电话、存储装置、广播或串流。nal单元可分类为视频译码层(vcl)nal单元及非vclnal单元。vcl单元可含有核心压缩引擎,且可包含块、宏块及/或图块层级数据。其它nal单元可为非vclnal单元。在一些实例中,一个时间实例中的经译码图片(通常呈现为初级经译码图片)可含于存取单元中,所述存取单元可包含一或多个nal单元。

非vclnal单元可尤其包含参数集nal单元及seinal单元。参数集可含有序列层级标头信息(在序列参数集(sps)中)及不频繁改变的图片层级标头信息(在图片参数集(pps)中)。对于参数集(例如,pps及sps),不频繁改变的信息不需要针对每一序列或图片重复,因此可提高译码效率。此外,使用参数集可实现重要标头信息的频带外传输,从而避免需要冗余传输以用于错误恢复。在带外传输实例中,参数集nal单元可在与其它nal单元(诸如,seinal单元)不同的频道上传输。

补充增强信息(sei)可含有对于对来自vclnal单元的经译码图片样本进行解码并非必需的信息,但可辅助与解码、显示、抗误码及其它目的相关的过程。sei消息可含于非vclnal单元中。sei消息为一些标准规格的标准化部分,且因此对于符合标准的解码器实施并非始终为必选的。sei消息可为序列层级sei消息或图片层级sei消息。某一序列层级信息可含于sei消息中,诸如svc的实例中的可缩放性信息sei消息,及mvc中的视图可缩放性信息sei消息。这些实例sei消息可传达关于(例如)操作点的提取及操作点的特性的信息。此外,囊封单元30可形成指令清单文件,诸如描述表示的特性的媒体呈现描述符(mpd)。囊封单元30可根据可扩展标记语言(xml)来格式化mpd。

囊封单元30可向输出接口32提供多媒体内容的一或多个表示的数据以及指令清单文件(例如,mpd)。输出接口32可包括网络接口或用于对存储媒体进行写入的接口,诸如通用串流总线(usb)接口、cd或dvd写入器或刻录器、至磁性或快闪存储媒体的接口,或用于存储或传输媒体数据的其它接口。囊封单元30可将多媒体内容的表示中的每一者的数据提供至输出接口32,所述输出接口可经由网络传输或存储媒体将所述数据发送至服务器装置60。在图1的实例中,服务器装置60包含存储各种多媒体内容64的存储媒体62,每一多媒体内容64包含相应指令清单文件66及一或多个表示68a至68n(表示68)。在一些实例中,输出接口32还可将数据直接发送至网络74。

在一些实例中,表示68可分成若干调适集。即,表示68的各种子集可包含:相应共同特性集,诸如编解码器、配置文件及层级、分辨率、视图数目、区段的文件格式;文本类型信息,其可识别待使用表示来显示的语言或文本的其它特性及/或待解码及例如由说话者呈现的音频数据;摄像机视角信息,其可描述用于调适集中的表示的摄像机视角或场景的现实世界摄像机视角;分级信息,其描述特定观众的内容适合性;或类似者。

指令清单文件66可包含指示对应于特定调适集的表示68的子集以及所述调适集的共同特性的数据。指令清单文件66还可包含表示调适集的个别表示的个别特性(诸如位率)的数据。以此方式,调适集可提供简化的网络带宽调适。调适集中的表示可使用指令清单文件66的调适集元素的子代元素来指示。

服务器装置60包含请求处理单元70及网络接口72。在一些实例中,服务器装置60可包含多个网络接口。此外,服务器装置60的特征中的任一者或全部可在内容递送网络的其它装置,诸如,路由器、网桥、代理装置、交换器或其它装置上实施。在一些实例中,内容递送网络的中间装置可快取多媒体内容64的数据,且包含大体上与服务器装置60的组件一致的组件。一般来说,网络接口72经配置以经由网络74发送及接收数据。

请求处理单元70经配置以接收来自客户端装置(诸如,客户端装置40)对存储媒体62的数据的网络请求。举例来说,请求处理单元70可实施超文本传送协议(http)版本1.1,如在r.菲尔丁(r.fielding)等人的rfc2616,“超文本传送协议-http/1.1”(网络工作小组,ietf,1999年6月)中所描述。即,请求处理单元70可经配置以接收httpget或部分get请求,且响应于所述请求提供多媒体内容64的数据。请求可指定表示68中的一者的区段,例如使用区段的url。在一些实例中,所述请求还可指定区段的一或多个字节范围,因此包括部分get请求。请求处理单元70可经进一步配置以服务httphead请求以提供表示68中的一者的区段的标头数据。在任何情况下,请求处理单元70可经配置以处理所述请求以将请求的数据提供至诸如客户端装置40的请求装置。

另外或可替代地,请求处理单元70可经配置以经由诸如embms的广播或多播协议而递送媒体数据。内容准备装置20可用与所描述大体上相同的方式产生dash区段及/或子区段,但服务器装置60可使用embms或另一广播或多播网络传送协议来递送这些区段或子区段。举例来说,请求处理单元70可经配置以接收来自客户端装置40的多播群组加入请求。即,服务器装置60可对与特定媒体内容(例如,实况事件的广播)相关联的客户端装置(包含客户端装置40)通告与多播群组相关联的因特网协议(ip)地址。客户端装置40又可提交加入多播群组的请求。此请求可遍及网络74,例如,构成网络74的路由器传播,以使得致使所述路由器将去往与多播群组相关联的ip地址的业务导向至订用的客户端装置,诸如客户端装置40。

如图1的实例中所说明,多媒体内容64包含指令清单文件66,所述指令清单文件66可对应于媒体呈现描述(mpd)。指令清单文件66可含有不同替代性表示68(例如,具有不同质量的视频服务)的描述,且所述描述可包含(例如)编解码器信息、配置文件值、层级值、位率及表示68的其它描述性特性。客户端装置40可检索媒体呈现的mpd以确定如何存取表示68的区段。

具体来说,检索单元52可检索客户端装置40的配置数据(未展示)以确定视频解码器48的解码能力及视频输出端44的显现能力。所述配置数据还可包含由客户端装置40的用户选择的任何或所有语言偏好、对应于由客户端装置40的用户设定的深度偏好的一或多个摄像机视角及/或由客户端装置40的用户选择的分级偏好。检索单元52可包括(例如)经配置以提交httpget及部分get请求的网页浏览器或媒体客户端。检索单元52可对应于由客户端装置40的一或多个处理器或处理单元(未展示)执行的软件指令。在一些实例中,关于检索单元52描述的所有或部分功能性可以硬件或硬件、软件及/或固件的组合来实施,其中可提供必需的硬件以执行用于软件或固件的指令。

检索单元52可比较客户端装置40的解码及显现能力与由指令清单文件66的信息指示的表示68的特性。检索单元52可一开始检索指令清单文件66的至少一部分以确定表示68的特性。举例来说,检索单元52可请求描述一或多个调适集的特性的指令清单文件66的一部分。检索单元52可选择表示68中具有可由客户端装置40的解码及显现能力满足的特性的子集(例如,调适集)。检索单元52可接着确定用于调适集中的表示的位率,确定网络带宽的当前可用量,及自表示中具有可由网络带宽满足的位率的一者检索区段。

一般来说,较高位率表示可产生较高质量的视频播放,而较低位率表示可在可用网络带宽减少时提供足够质量的视频播放。因此,当可用网络带宽相对高时,检索单元52可自相对高位率的表示检索数据,而当可用网络带宽较低时,检索单元52可自相对低位率的表示检索数据。以此方式,客户端装置40可经由网络74串流传输多媒体数据,同时还调适网络74的改变的网络带宽可用性。

另外或可替代地,检索单元52可经配置以根据诸如embms或ip多播的广播或多播网络协议来接收数据。在这些实例中,检索单元52可提交加入与特定媒体内容相关联的多播网络群组的请求。在加入多播群组后,检索单元52可接收多播群组的数据,而无发出至服务器装置60或内容准备装置20的进一步请求。检索单元52可提交当不再需要多播群组的数据时离开多播群组的请求,例如,以停止播放或将频道改变至不同多播群组。

网络接口54可接收并提供选定表示的区段的数据至检索单元52,检索单元52又可将所述区段提供至解囊封单元50。解囊封单元50可将视频文件的元素解囊封成构成的pes串流,解封包化所述pes串流以检索经编码数据,且将经编码数据发送至音频解码器46或视频解码器48,此取决于经编码数据为音频还是视频串流的部分,例如,如由所述串流的pes包头指示。音频解码器46对经编码音频数据进行解码,且向音频输出端42发送经解码音频数据;而视频解码器48对经编码视频数据进行解码,且向视频输出端44发送经解码视频数据,所述经解码视频数据可包含串流的多个视图。

视频编码器28、视频解码器48、音频编码器26、音频解码器46、囊封单元30、检索单元52及解囊封单元50各自可实施为适用的多种合适处理电路系统中的任一者,合适处理电路系统诸如一或多个微处理器、数字信号处理器(dsp)、特殊应用集成电路(asic)、场可编程门阵列(fpga)、离散逻辑电路系统、软件、硬件、固件或其任何组合。视频编码器28及视频解码器48中的每一者可包含在一或多个编码器或解码器中,编码器或解码器中的任一者可整合为组合式编码器/解码器(编解码器(codec))的部分。同样地,音频编码器26及音频解码器46中的每一者可包含于一或多个编码器或解码器中,编码器或解码器中的任一者可经整合为组合式codec的部分。包含视频编码器28、视频解码器48、音频编码器26、音频解码器46、囊封单元30、检索单元52及/或解囊封单元50的设备可包括集成电路、微处理器及/或无线通信装置,诸如蜂窝式电话。

客户端装置40、服务器装置60及/或内容准备装置20可经配置以根据本公开的技术操作。出于实例的目的,本公开描述关于客户端装置40及服务器装置60的这些技术。然而,应理解,替代服务器装置60(或除了服务器装置60之外),内容准备装置20可经配置以执行这些技术。

囊封单元30可形成nal单元,所述nal单元包括识别nal单元所属的程序的标头,以及有效负载,例如音频数据、视频数据或描述nal单元所对应的传送或程序串流的数据。举例来说,在h.264/avc中,nal单元包含1字节标头及不同大小的有效负载。在其有效负载中包含视频数据的nal单元可包括各种粒度层级的视频数据。举例来说,nal单元可包括视频数据块、多个块、视频数据的图块或视频数据的整个图片。囊封单元30可自视频编码器28接收呈基本串流的pes封包的形式的经编码视频数据。囊封单元30可使每一基本串流与对应程序相关联。

囊封单元30还可组译来自多个nal单元的存取单元。一般来说,存取单元可包括用于表示视频数据的图框以及对应于所述图框的音频数据(当此音频数据可用时)的一或多个nal单元。存取单元通常包含一个输出时间实例的所有nal单元,例如一个时间实例的所有音频及视频数据。举例来说,如果每一视图具有20图框每秒(fps)的图框速率,则每一时间实例可对应于0.05秒的时间间隔。在此时间间隔期间,可同时呈现相同存取单元(相同时间实例)的所有视图的特定图框。在一个实例中,存取单元可包括一个时间实例中的经译码图片,其可呈现为初级经译码图片。

因此,存取单元可包括共同时间实例的所有音频图框及视频图框,例如对应于时间x的所有视图。本公开还将特定视图的经编码图片称作“视图分量”。即,视图分量可包括在特定时间针对特定视图的经编码图片(或图框)。因此,存取单元可定义为包括共同时间实例的所有视图分量。存取单元的解码次序未必与输出或显示次序相同。

媒体呈现可包含媒体呈现描述(mpd),所述媒体呈现描述可含有不同替代表示(例如,具有不同质量的视频服务)的描述,且所述描述可包含例如编码解码器信息、配置文件值及层级值。mpd为指令清单文件(诸如,指令清单文件66)的一个实例。客户端装置40可检索媒体呈现的mpd以确定如何存取各种呈现的电影片段。电影片段可位于视频文件的电影片段框(moof框)中。

指令清单文件66(其可包括例如mpd)可通告表示68的区段的可用性。即,mpd可包含指示表示68中的一者的第一片段变得可用的挂钟时间的信息,以及指示表示68内的区段的持续时间的信息。以此方式,客户端装置40的检索单元52可基于在特定区段前的区段的开始时间以及持续时间来确定每一区段可用的时间。

在囊封单元30已基于所接收的数据将nal单元及/或存取单元组译成视频文件之后,囊封单元30将视频文件传递至输出接口32以用于输出。在一些实例中,囊封单元30可将视频文件存储在本端,或经由输出接口32而将视频文件发送至远程服务器,而非将视频文件直接发送至客户端装置40。输出接口32可包括例如传输器、收发器、用于将数据写入至计算机可读媒体的装置,诸如光驱、磁性媒体驱动器(例如,软盘驱动器)、通用串行总线(usb)端口、网络接口或其它输出接口。输出接口32将视频文件输出至计算机可读媒体,诸如传输信号、磁性媒体、光学媒体、存储器、闪速存储器或其它计算机可读媒体。

网络接口54可经由网络74接收nal单元或存取单元并经由检索单元52将nal单元或存取单元提供至解囊封单元50。解囊封单元50可将视频文件的元素解囊封成构成的pes串流,解封包化所述pes串流以检索经编码数据,且将经编码数据发送至音频解码器46或视频解码器48,此取决于经编码数据为音频还是视频串流的部分,例如,如由所述串流的pes包头指示。音频解码器46对经编码音频数据进行解码,且向音频输出端42发送经解码音频数据;而视频解码器48对经编码视频数据进行解码,且向视频输出端44发送经解码视频数据,所述经解码视频数据可包含串流的多个视图。

根据本公开的技术,解囊封单元50可经配置以在音频、视频及包含动态网页内容的网页内容(例如,html)之间进行区分。此外,解囊封单元50可提取初始化信息及样本类型。解囊封单元50可经配置以提取分段isobmff文件(或多个文件)中封装的动态网页数据。具体来说,动态网页数据可以网页资源追踪的形式封装,如下:

1.不意图针对追踪变化的html文档的任何部分应包含于初始‘moov’框下方的‘meta’信息框中。

2.同步样本为html元素。其标识符(id)设定为“urn:mpeg:webresource:sync:<id>”,其中<id>为视情况增加的字符串。字符串前缀“urn:mpeg:webresource:sync:”应在使用此元素之前由客户端应用程序自id去除。

a.如果相同类型的元素存在于文档目标模型(dom)中,则此元素替换现有元素。

b.如果此类型的多个元素存在于dom中,则:

i.此元素替换具有相同<id>的dom中的元素。

ii.如果此元素不含有<id>,则所有相同类型的元素用此元素来替换。

3.异步样本为添加至html本体的html元素。其id设定为“urn:mpeg:webresource:nonsync:<id>”,其中<id>为视情况增加的字符串。字符串前缀“urn:mpeg:webresource:nonsync:”应在使用此元素之前由客户端应用程序自id去除。

因此,解囊封单元50可确定初始‘moov’框下方的‘meta’信息框的html数据不发生变化。解囊封单元50还可使用样本的id值来区分同步样本与异步样本。即,解囊封单元50可确定id在“urn:mpeg:webresource:sync:”之前的样本为同步样本,且id在“urn:mpeg:webresource:nonsync:”之前的样本为异步样本。同样地,解囊封单元50可在使用对应元素之前自id遥控这些前述元素(“urn:mpeg:webresource:sync:”及“urn:mpeg:webresource:nonsync:”)。替代地,单独单元(例如,软件应用程序,诸如网页客户端或其它应用程序)可经配置以自id去除前述元素。

通过使非改变数据在‘meta’信息框中,收集不意图在初始电影框中改变的网页数据避免共同数据的再传输。因此,这些技术可减少处理要求且防止原本由再传输导致的网络带宽浪费。此外,根据本公开的技术,html页面的任何元素(卷标)可经发送为同步样本,其允许替换相同类型的一或多个元素。此允许使用一或多个同步样本来改变网页的部分或全部网页。此外,根据本公开的技术,通过使用异步样本,可将更多元素添加至网页。通过使用脚本元素作为异步样本将javascript添加至网页可能为适用的。

在一些实例中,在初始电影框中收集不意图变化的网页数据可避免共同数据的再传输。在一些实例中,单个符合html文档充当用于追踪的任何存取的共同起始点。因此,初始播放、搜寻或其它此类操作不需要html“页面刷新”。替代地,后续同步及异步样本中包括的额外信息可渐进地堆积初始网页。

网页资源解码块可使用以上样本的id属性的前缀(其中前缀为例如“urn:mpeg:webresource:sync:”或“urn:mpeg:webresource:nonsync:”)以在同步样本与异步样本之间进行区分。因此,网页资源解码块可去除前缀,而非解囊封单元50。

本公开的技术还基于网页资源追踪及初始条目接口支持应用程序的创建。基于网页的条目接口可形成应用程序的部分,其中用户选择播放交互式串流。接口可含有javascript服务人员,其负责使用如其角色所定义的样本,如上文所论述。

本公开的技术还允许网页相关文件的带内递送。即,这些技术可允许网页资源追踪的样本提供用于显现网页的侧数据(图标、图像、css等),且具体来说,在内容提供商期望时允许此侧数据带内递送。根据本公开的技术,可通过直接嵌入网页的html中的网页的相关数据(图像、css等)来实现网页相关文件的带内递送。举例来说,图像可直接嵌入html中。此嵌入可不利地影响压缩效率,但考虑到交互式网页的通常大小并非在很大程度上影响。举例来说,嵌入html中的jpeg压缩图像的六十四进制(base64)表示可大于初始jpeg文件。然而,更多测试及评估可基于目标使用案例提供决定性答案。此外,通过以此方式嵌入相关数据,不需要解析相关联资源的相对路径(不需要解析相对活页夹,等)。因此,这些嵌入技术可减少处理要求且减少输送网页数据的潜时。

图2为更详细地说明图1的检索单元52的实例组件集合的框图。在此实例中,检索单元52包含embms中间软件单元100、dash客户端110及媒体应用程序112。

在此实例中,embms中间软件单元100进一步包含embms接收单元106、高速缓存104及代理服务器单元102。在此实例中,embms接收单元106经配置以经由embms接收数据,例如根据http://tools.ietf.org/html/rfc6726可获得的2012年11月t.拜拉(t.paila)等人,“flute-经由单向输送的文件递送(flute-filedeliveryoverunidirectionaltransport)”网络工作小组,rfc6726中所描述的经由单向输送的文件递送((flute)。即,embms接收单元106可经由来自例如服务器装置60的广播接收文件,服务器装置60可充当广播/多播服务中心(bm-sc)。

在embms中间软件单元100接收文件的数据时,embms中间软件单元可将所接收的数据存储于高速缓存104中。高速缓存104可包括计算机可读存储媒体,诸如闪存、硬盘、ram或任何其它合适的存储媒体。

代理伺服单元102可充当用于dash客户端110的服务器。举例来说,代理伺服单元102可将mpd文件或其它指令清单文件提供至dash客户端110。代理伺服单元102可通告用于mpd文件中的区段的可用性时间,以及可检索区段的超链接。这些超链接可包含对应于客户端装置40的本端主机地址前缀(例如,ipv4的127.0.0.1)。以此方式,dash客户端110可使用httpget或部分get请求自代理服务器单元102请求区段。举例来说,对于可自链接http://127.0.0.1/rep1/seg3获得的区段,dash客户端110可建构包含针对http://127.0.0.1/rep1/seg3的请求的httpget请求,且将请求提交至代理服务器单元102。代理服务器单元102可自高速缓存104检索所请求的数据且响应于这些请求而将数据提供至dash客户端110。

图3为说明实例多媒体内容120的元素的概念图。多媒体内容120可对应于多媒体内容64(图1),或对应于存储于存储媒体62中的另一多媒体内容。在图3的实例中,多媒体内容120包含媒体呈现描述(mpd)122及多个表示124a至124n(表示124)。表示124包含a可选标头数据126及区段128a至128n(区段128),而表示124n则包含可选标头数据130及区段132a至132n(区段132)。为了方便起见,使用字母n来指定表示124中的每一者中的最后一个电影片段。在一些实例中,表示124之间可存在不同数目的电影片段。

mpd122可包括与表示124分开的数据结构。mpd122可对应于图1的指令清单文件66。同样地,表示124可对应于图1的表示68。一般来说,mpd122可包含大体描述表示124的特性的数据,诸如,译码及显现特性、调适集、mpd122对应的配置文件、文本类型信息、摄像机角度信息、分级信息、特技模式信息(例如,指示包含时间子序列的表示的信息)及/或用于检索远程周期(例如,用于在播放期间至媒体内容内的目标化的广告插入)的信息。

标头数据126(当存在时)可描述区段128的特性,例如,随机存取点(rap,其也被称作串流存取点(sap))的时间位置、区段128中的哪一者包含随机存取点、与区段128内的随机存取点的字节偏移、区段128的统一资源定位符(url),或区段128的其它方面。标头数据130(当存在时)可描述区段132的相似特性。另外或可替代地,这些特性可完全包含于mpd122内。

区段128、132包含一或多个经译码视频样本,其中的每一者可包含视频数据的图框或图块。区段128的经译码视频样本中的每一者可具有类似特性,例如,高度、宽度及带宽要求。此类特性可通过mpd122的数据来描述,尽管此数据在图3的实例中未说明。mpd122可包含如3gpp规范所描述的特性,同时添加了本公开中所描述的发信信息中的任一者或全部。

区段128、132中的每一者可与唯一的统一资源定位符(url)相关联。因此,区段128、132中的每一者可使用串流网络协议(诸如dash)来独立地检索。以此方式,诸如客户端装置40的目的地装置可使用httpget请求来检索区段128或132。在一些实例中,客户端装置40可使用http部分get请求来检索区段128或132的特定字节范围。

图4为说明实例视频文件150的元素的框图,所述实例视频文件可对应于表示的区段,诸如,图3的区段114、124中的一者。区段128、132中的每一者可包含基本上符合图4的实例中所说明的数据的布置的数据。视频文件150可称为囊封区段。如上所述,根据iso基础媒体文件格式及其扩展的视频文件将数据存储于一系列对象(称为“框”)中。在图4的实例中,视频文件150包含文件类型(ftyp)框152、电影(moov)框154、区段索引(sidx)框162、电影片段(moof)框164及电影片段随机存取(mfra)框166。虽然图4表示视频文件的一实例,但应理解,根据iso基础媒体文件格式及其扩展,其它媒体文件可包含类似于视频文件150的数据结构化的其它类型的媒体数据(例如,音频数据、计时文本数据或类似者)。

文件类型(ftyp)框152大体描述用于视频文件150的文件类型。文件类型框152可包含识别描述用于视频文件150的最佳用途的规范的数据。在各种实例中,文件类型框152可放置于moov框154、电影片段框164及/或mfra框166前。

在一些实例中,诸如视频文件150的区段可包含在ftyp框152前的mpd更新框(未图示)。mpd更新框可包含指示待更新对应于包含视频文件150的表示的mpd的信息,连同用于更新所述mpd的信息。举例来说,mpd更新框可提供待用于更新mpd的资源的uri或url。作为另一实例,mpd更新框可包含用于更新mpd的数据。在一些实例中,mpd更新框可紧接在视频文件150的区段类型(styp)框(未图示)之后,其中styp框可定义视频文件150的区段类型。

在图4的实例中,moov框154包含电影标头(mvhd)框156、追踪(trak)框158及一或多个电影扩展(mvex)框160。一般来说,mvhd框156可描述视频文件150的一般特性。举例来说,mvhd框156可包含描述以下的数据:原先创造视频文件150的时间、最后修改视频文件150的时间、用于视频文件150的时间标度、用于视频文件150的播放持续时间或大体描述视频文件150的其它数据。

尽管图4中未示出,但moov框154可进一步包含‘meta’信息框。根据本公开的技术,‘meta’信息框可包含不意图针对追踪改变的html文档的任何部分。因此,客户端装置40可确定“meta”信息框中包含的任何网页内容将不针对视频文件150的对应追踪而改变(例如,为不可变的)。同样地,内容准备装置20可建构视频文件150以包含用于‘meta’信息框中的追踪的非改变(不可变)网页内容。

trak框158可包含用于视频文件150的追踪的数据。trak框158可包含描述对应于trak框158的追踪的特性的追踪标头(tkhd)框。在一些实例中,trak框158可包含经译码视频图片,而在其它实例中,所述追踪的经译码视频图片可包含于电影片段164中,电影片段可由trak框158及/或sidx框162的数据参考。

在一些实例中,视频文件150可包含一个以上追踪。因此,moov框154可包含等于视频文件150中的追踪的数目的数个trak框。trak框158可描述视频文件150的对应追踪的特性。举例来说,trak框158可描述用于对应追踪的时间及/或空间信息。当囊封单元30(图3)包含视频文件(诸如,视频文件150)中的参数集追踪时,类似于moov框154的trak框158的trak框可描述参数集追踪的特性。囊封单元30可在描述参数集追踪的trak框内传信序列层级sei消息存在于参数集追踪中。

mvex框160可描述对应电影片段164的特性,例如,发信视频文件150除包含moov框154(如果存在)内的视频数据之外还包含电影片段164。在串流传输视频数据的上下文中,经译码视频图片可包含于电影片段164中,而非在moov框154中。因此,所有经译码视频样本可包含于电影片段164中,而非在moov框154中。

moov框154可包含等于视频文件150中的电影片段164的数目的数个mvex框160。mvex框160中的每一者可描述电影片段164中的对应者的特性。举例来说,每一mvex框可包含描述用于电影片段164中的所述对应者的时距的电影扩展标头框(mehd)框。

如上文所提到,囊封单元30可存储视频样本中的序列数据集,其并不包含实际经译码视频数据。视频样本可大体上对应于存取单元,其为特定时间实例下的经译码图片的表示。在avc的上下文中,经译码图片包含一或多个vclnal单元,其含有用于建构存取单元的所有像素的信息,及其它相关联的非vclnal单元(诸如sei消息)。因此,囊封单元30可在电影片段164中的一者中包含序列数据集,其可包含序列层级sei消息。囊封单元30可进一步将序列数据集及/或序列层级sei消息的存在发信号为存在于对应于电影片段164中的一者的mvex框160中的一者内的电影片段164中的一者中。

sidx框162为视频文件150的可选元素。即,符合3gpp文件格式的视频文件或其它这些文件格式未必包含sidx框162。根据3gpp文件格式的实例,sidx框可用于识别一区段(例如,视频文件150内含有的一区段)的子区段。3gpp文件格式将子区段定义为“具有一或多个对应媒体数据框及含有通过电影片段框引用的数据的媒体数据框的一或多个连续电影片段框的自含式集合,必须跟在电影片段框之后,并在含有关于同一轨道的信息的下一个电影片段框之前”。3gpp文件格式还指示sidx框“含有对由框记录的(子)区段的子区段参考的序列。所参考的子区段在呈现时间上连续。类似地,由区段索引框参考的字节始终在区段内连续。所参考大小给出所参考材料中的字节的数目的计数”。

sidx框162大体提供表示视频文件150中包含的区段的一或多个子区段的信息。举例来说,此类信息可包含子区段开始及/或结束的播放时间、子区段的字节偏移、所述子区段是否包含(例如,开始于)串流存取点(sap)、sap的类型(例如,sap是否为瞬时解码器再新(idr)图片、清洁随机存取(cra)图片、断链存取(bla)图片或类似者)、子区段中的sap(就播放时间及/或字节偏移而言)的位置及类似者。

电影片段164可包含一或多个经译码视频图片。在一些实例中,电影片段164可包含一或多个图片群组(gop),其中的每一者可包含数个经译码视频图片,例如图框或图片。另外,如上文所描述,在一些实例中,电影片段164可包含序列数据集。电影片段164中的每一者可包含电影片段标头框(mfhd,图4中未展示)。mfhd框可描述对应电影片段的特性,诸如电影片段的序号。电影片段164可按序列号次序包含于视频文件150中。

mfra框166可描述在视频文件150的电影片段164内的随机存取点。此可辅助执行特技模式,诸如,执行对在由视频文件150囊封的区段内的特定时间位置(即,播放时间)的搜寻。在一些实例中,mfra框166通常可选,且不需要包含于视频文件中。同样地,诸如客户端装置40的客户端装置未必需要参考mfra框166来正确地解码及显示视频文件150的视频数据。mfra框166可包含等于视频文件150的追踪的数目或在一些实例中等于视频文件150的媒体追踪(例如,非提示追踪)的数目的数个追踪片段随机存取(tfra)框(未展示)。

在一些实例中,电影片段164可包含一或多个串流存取点(sap),诸如idr图片。同样地,mfra框166可提供对sap在视频文件150内的位置的指示。因此,视频文件150的时间子序列可由视频文件150的sap形成。时间子序列还可包含其它图片,诸如依赖于sap的p图框及/或b图框。时间子序列的图框及/或图块可配置于区段内,以使得时间子序列的取决于子序列的其它图框/图块的图框/图块可被恰当地解码。举例来说,在数据的阶层式配置中,用于其它数据的预测的数据也可包含于时间子序列中。

图5为说明网页资源的实例通用假设处理模型180的概念图。当媒体播放器(诸如图1的客户端装置40的媒体播放器,其可包含检索单元52、解囊封单元50、音频解码器46及视频解码器48的部分)与网页引擎(图1中未示出)整合时,图5的处理模型180可适用。在此情况下,媒体播放器处理isobmff文件、提取串流样本及项目且同步地处理串流样本。媒体播放器可具现化网页引擎以处理网页追踪。媒体播放器可随后在图框精确显现的情况下合并经解码视频数据及显现的网页引擎数据以用于最终显示。

处理模型180的另一版本可在起始时通过加载一些网页内容(例如,html页面)且在所述页面加载时通过媒体内容(例如,使用视频及/或音频卷标)而适用。

图5的处理模型180包含媒体播放器182,媒体播放器182接收isobmff文件200以及音频输出端196及视频输出端198。媒体播放器182包含文件/片段解囊封单元184、音频解码单元186、视频解码单元188、网页资源解码单元190、音频显现单元192及视频显现单元194。文件/片段解囊封单元184解封装isobmff文件200,且将经编码音频数据202分配给音频解码单元186,将经编码视频数据204分配给视频解码单元188以及将经编码网页资源数据206分配给网页资源解码单元190。音频解码单元186将经解码音频数据202'传递给音频显现单元192。视频解码单元188将经解码视频数据204'传递至视频显现单元194。网页资源解码单元190将经解码网页资源数据206'传递至视频显现单元194。

音频显现单元192显现经解码音频数据202',且将经显现音频数据202"传递至音频输出端196,音频输出端196可对应于说话者(例如,扬声器及/或头戴式耳机,或其它音频呈现装置)。视频显现单元194同时显现经解码音频数据204'及经解码网页资源数据206',且将经显现视频及网页内容208传递至视频输出端198,视频输出端198可对应于显示器。媒体播放器182还可经由一或多个用户接口装置(例如,包含交互式触摸屏显示器,诸如视频输出端210,或其它装置,诸如键盘、鼠标或类似者)接收定义与网页内容的互动的互动性数据210,并将此数据提供给网页资源解码单元190。

图5的组件可通常对应于客户端装置40的组件(图1)。举例来说,文件/片段解囊封单元184可对应于解囊封单元50,音频解码单元186可对应于音频解码器46,视频解码单元188及网页资源解码单元190可对应于视频解码器48,音频显现单元192可对应于音频输出端42的组件,且视频显现单元194可对应于视频输出端44的组件(或图1中未示出的客户端装置40的其它单元)。替代地,网页资源解码单元190可对应于图1中未示出的客户端装置40的网页资源解码器。

概念地,在一些实例中,文件解囊封单元184可提取存储为isobmff文件200中的项目的所有资源,且将这些项目放置在网页资源解码单元190的高速缓存中,使用item_name作为对应项目的url。这些资源随后可用于由网页引擎起始的下载(诸如使用xmlhttprequest或fetchapis)。当通过将metaboxes放入片段中渐进地递送项目时,此可适用于即使在使用isobmff片段串流的情况。

相同内容可使用上文所述的两个实例处理模型中的任一个。应注意,在所述样本的呈现时间可获得javascript追踪的样本中包括的javascript代码的执行结果,且类似地,在所述样本的呈现时间完成html迭加追踪样本中包括的html的显现。具体实施可考虑处理延迟以实现同步,且可预取未嵌入文件中的资源。

作为一实例,isobmff文件可包含用于播放视频内容的嵌入html进入点。对于此实例,假定网页内容由以下html文档组成(嵌入isobmff文件内部):

图6为说明根据本公开的技术的实例动态html数据及数据模型220的程序描述的概念图。具体来说,图6描绘包括于电影及追踪标头(在‘moov’框222下方)中且作为同步样本224及异步样本226的数据的各种片段的数据模型的实例。检索单元52的网页浏览器(未示出)可加载初始html符合性网页。初始html符合页面可含有处理逻辑以利用同步样本、冗余同步样本及异步样本中包括的数据,除携载用于追踪的共同数据。

图7为说明实例网页资源程序模型230的流程图。具体来说,图7的程序模型230可与图6的数据模型220一起使用。此简图省去对应的多媒体(音频及视频)追踪处理,但预期显现与媒体同步。由于此程序模型的许多另外变化是可能的,因此省去这些细节(例如,其中视听追踪数据处理还可由互动性追踪中携载的内容/逻辑处置)。

在此实例中,在终端(例如,图1的客户端装置40)执行两个动作以开始处理。首先,动态html5追踪处理程序234自网页资源追踪232的初始‘moov’/‘meta’框提取初始html文档(初始网页),并将初始html文档放置在装置内部网页服务器236(例如,图2的代理服务器102)或高速缓存(例如,图2的高速缓存104)上。随后,网页引擎(例如,图2的dash客户端110或另一网页浏览器(图2中未示出))接收指向此页面的数据。以上两个步骤可由另一逻辑(未由有关的网页资源追踪携载)在终端处执行。此可(例如)为让使用者选择播放内容的主要应用程序或网页。在此情况下,有关的内容含有上述网页资源追踪,其可通过使用例如i图框嵌入主要网页中。

在网页引擎接收装置内部网页服务器236中指向网页238的数据之后,处理的其余部分可经由网页资源追踪样本携载的逻辑自动化。由网页资源追踪携载的样本可由初始html网页使用xhr240提取及/或使用网络套接字242推送至html网页238,如图7中所示。此逻辑可含有将样本自内部网页服务器236(使用xhr)及/或自网络套接字242加载至初始dom中及使用如上文指定的位置信息合适地利用数据的功能。在一些实例中,此逻辑还可含有在终端处执行额外功能的其它逻辑。

(潜在地冗余)同步及异步样本的内容可为javascript代码的片段。在一个实例中,样本类型之间的区别为可将来自异步样本的数据添加至dom,而同步样本中的数据可替换dom中的对应数据。下文展示可如何实现此情况的实例:

1.同步样本为意图替换相同类型(即,具有共同类型)且具有相同id的现有html元素的html元素。其id设定为“urn:mpeg:webresource:sync:<id>”,其中<id>为视情况增加的字符串。字符串前缀“urn:mpeg:webresource:sync:”应在使用此元素之前由客户端应用程序自id去除。

a.如果相同类型的元素存在于dom中,则此元素替换现有元素。

b.如果此类型的多个元素存在于dom中,则

i.此元素替换具有相同<id>的dom中的元素。

ii.如果此元素不含有<id>,则所有相同类型的元素用此元素来替换。

2.异步样本为添加至html本体的html元素。其id设定为“urn:mpeg:webresource:nonsync:<id>”,其中<id>为视情况增加的字符串。字符串前缀“urn:mpeg:webresource:nonsync:”应在使用此元素之前由客户端应用程序自id去除。

在另一实例中,如果通过初始网页在初始播出时(例如,作为搜寻/播放/调入的结果)使用同步样本,则应仅加载单个此样本。应考虑几个实施方面。

针对使用轮询机制经由xhr提取,javascript样本可携载样本带内持续时间作为处理逻辑将使用的轮询持续时间,而不管更多的技术,如http2.0服务器端推的使用。

下文给出html代码实例,其中针对单个同步及异步样本嵌入样本代码。为简单起见,其不含有加载样本的所需处理逻辑。

图8为说明用于执行本公开的技术的实例方法的流程图。参照根据图5的数据模型180配置的装置来解释图8的方法,然而应理解,其它装置可经配置以执行此方法或类似方法。举例来说,图1的客户端装置40可经配置以执行这些技术。

初始地,包含媒体播放器182的装置检索isobmff文件(300)。isobmff文件包含一或多个样本,所述一或多个样本包含定义动态网页内容的超文本标记语言(html)元素。html元素可包含(例如)javascript元素,其可更新html内容以供显示。

另外,装置检索媒体数据(302),诸如音频及视频数据。在一些实例中,媒体数据可包含在包含html元素的isobmff文件中,以使得检索isobmff文件包含检索html元素及媒体数据两者。在其它实例中,媒体数据可包含在一或多个文件中,所述一或多个文件与包含html元素的isobmff文件不同。

文件解囊封单元184可随后自isobmff文件提取html元素(304)。在isobmff文件包含媒体数据(例如,音频及/或视频数据)的实例中,文件解囊封单元184还可自isobmff文件提取媒体数据。文件解囊封单元184可向相应解码器提供所述媒体数据。举例来说,文件解囊封单元184可向音频解码单元186提供经编码音频数据202,向视频解码单元188提供经编码视频数据204以及向网页资源解码单元190提供经编码网页资源数据206。各种解码单元可随后解码经编码数据,并将经解码数据传递至相应显现单元。举例来说,音频解码单元186可将经解码音频数据202'传递至音频显现单元192,视频解码单元188可将经解码视频数据204'传递至视频显现单元194,且网页资源解码单元190可将经解码网页资源数据206'传递至视频显现单元194。

视频显现单元194可随后显现(经解码网页资源数据206'的)网页内容及与网页内容对应的视频数据(308)。举例来说,视频显现单元194可确定与对应视频数据一起呈现的网页内容(例如)作为视频数据的一或多个图框的部分,且显现包含视频数据及对应网页内容的图像。另外,音频显现单元192可显现经解码音频数据202'。视频显现单元194向视频输出端198提供经显现视频及网页内容208,而音频显现单元192向音频输出端196提供经显现音频数据。

最后,视频输出端198可呈现经同步显现的视频数据及网页内容208(310)。即,由于由(例如)视频显现单元194同步执行,视频数据及网页内容可同步。

以此方式,图8的方法表示方法的实例,所述方法包含:检索包含一或多个样本的iso基础媒体文件格式(isobmff)文件,所述一或多个样本包含定义动态网页内容的超文本标记语言(html)元素;自所述文件的样本提取html元素;以及处理所述html元素以呈现动态网页内容。

在一或多个实例中,所描述功能可以硬件、软件、固件或其任何组合来实施。如果以软件实施,则所述功能可作为一或多个指令或程序代码而存储于计算机可读媒体上或经由计算机可读媒体进行传输,且通过基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体(其对应于诸如数据存储媒体的有形媒体)或通信媒体,所述通信媒体包含(例如)根据通信协议促进计算机程序自一处传送至另一处的任何媒体。以此方式,计算机可读媒体通常可对应于(1)非暂时性的有形计算机可读存储媒体,或(2)诸如信号或载波的通信媒体。数据存储媒体可为可由一或多个计算机或一或多个处理器存取以检索用于实施本公开中所描述的技术的指令、程序代码及/或数据结构的任何可用媒体。计算机程序产品可包含计算机可读媒体。

作为实例而非限制,此类计算机可读存储媒体可包括ram、rom、eeprom、cd-rom或其它光盘存储器、磁盘存储器或其它磁性存储装置、闪存或可用以存储呈指令或数据结构形式的所要程序代码且可由计算机存取的任何其它媒体。又,任何连接被适当地称为计算机可读媒体。举例来说,如果使用同轴缆线、光缆、双绞线、数字用户线(dsl)或无线技术(诸如红外线、无线电及微波)自网站、服务器或其它远程源传输指令,则同轴缆线、光缆、双绞线、dsl或无线技术(诸如红外线、无线电及微波)包含于媒体的定义中。然而,应理解,计算机可读存储媒体及数据存储媒体不包含连接、载波、信号或其它暂时性媒体,而实情为关于非暂时性有形存储媒体。如本文中所使用,磁盘及光盘包含紧密光盘(cd)、激光光盘、光学光盘、数字多功能光盘(dvd)、软性磁盘及蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘用激光以光学方式再现数据。以上各者的组合还应包含于计算机可读媒体的范围内。

可通过诸如一或多个数字信号处理器(dsp)、通用微处理器、特殊应用集成电路(asic)、场可编程逻辑阵列(fpga)或其它等效集成或离散逻辑电路的一或多个处理器来执行指令。因此,如本文所用的术语“处理器”可指代前述结构或适用于实施本文中所描述的技术的任何其它结构中的任一者。此外,在一些方面,本文中所描述的功能可设置于经配置用于编码及解码或并入经合并的编解码器的专用硬件及/或软件模块内。此外,所述技术可完全实施于一或多个电路或逻辑组件中。

本公开的技术可实施于广泛多种装置或设备中,包含无线手持机、集成电路(ic)或ic集合(例如,芯片集合)。在本公开中描述各种组件、模块或单元以强调经配置以执行所揭示技术的装置的功能方面,但未必需要通过不同硬件单元来实现。确切地说,如上文所描述,可将各种单元组合于编解码器硬件单元中,或通过互操作性硬件单元(包含如上文所描述的一或多个处理器)的集合而结合合适软件及/或固件来提供所述单元。

各种实例已予以描述。这些及其它实例在随附权利要求书的范围内。

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