用于在线媒体预览的系统和方法

文档序号:6359013阅读:159来源:国知局
专利名称:用于在线媒体预览的系统和方法
技术领域
本发明大体上涉及一种用于在线媒体的系统和方法,更具体地说涉及一种用于在线媒体预览的系统和方法。
背景技术
在典型的媒体平台或传输系统中,点播媒体例如视频、音频和其他类型的多媒体, 通过允许用户随机寻找到任意点以继续视频播放的媒体播放器显示内容。通常,有两种方式使用媒体内容第一种方式是以线性的方式使用(默认情况下,例如通过单击某个网络缩略图以在媒体播放器内播放媒体);第二种方式是以随机的方式使用,由最终用户将媒体播放器的播放头向前或向后拖动到某个随机点。这些类型的媒体使用模式通常不会向最终用户提供有效的媒体内容使用。虽然播放头的随机拖动或移动功能看起来可以向最终用户提供无限的灵活性,但是像这样拖动到某个点处通常会涉及随机猜测工作,而且用户往往也需要短时间地观看,以判定是从此处继续播放,还是再进行一次随机拖动操作以在媒体中找到另外一点。

发明内容
通过本发明用于提供在线媒体预览的实施例,可以解决或避开上述问题和其他问题,而且通常具有技术优势。根据本发明的范例实施例,一种用于在线媒体预览的方法包括以下步骤从媒体文件的分段中提取一帧作为预览帧;将若干个这种预览帧存储在若干个层中;向用户传输媒体文件和若干个预览帧。所述分段为以下之一的媒体元素图象组、固定长度的视频分段、固定长度的媒体流、以及视频的一个快照。预览帧可以降低到更小的分辨率以对应于预览参数,其中此参数包括以下之一及其组合,每个参数包括预览窗大小、播放质量、预览帧之间的距离间隔以及预览帧的组合。此外,预览帧可以保存在分级数据结构或分层数据结构中。用于在线媒体预览的此方法进一步包括以下步骤生成元数据文件;生成包括预览描述信息的描述文件;生成包括各个预览帧的位置信息的索引文件;生成预览媒体流。 索引文件包括媒体文件中各个预览帧的位置信息。此外,用于在线媒体预览的此方法还包括以下步骤在选择的时间点处传输若干个这种预览帧,以减少延迟和播放抖动。根据本发明的另一个范例实施例,一种用于在线媒体预览的系统包括媒体文件和相应的预览文件,此预览文件包括若干个帧,其中每个帧都是从媒体文件中提取的。这些若干个帧存储在分层数据结构中。必要时,每个帧可以采用低比特率格式进行保存。用于在线媒体预览的此系统进一步包括媒体文件、描述文件、索引文件和预览媒体流。索引文件包括媒体文件中各个帧的位置信息。根据本发明的再另一个范例实施例,一种用于在线媒体预览的方法包括以下步骤呈现媒体文件;接收用户的预览请求;呈现预览文件的第一层,以生成一级颗粒预览; 呈现预览文件的第二层,以生成二级颗粒预览。用于在线媒体预览的此方法进一步包括以下步骤接收预览文件的若干个采用交错格式的帧。上文已广泛地概述了本发明的特征和技术优势,便于能够更好地理解下文中有关本发明的具体实施方案。下文将介绍本发明的其他特征和优势,这些特征和优势构成本发明权利要求的主题。所属领域的技术人员应了解,提供的概念和具体实施例可以直接作为修改或设计其他与本发明具有相同目的的结构或过程的依据。所属领域的技术人员还应认识到,这种等效构造不应偏离所附权利要求中规定的本发明的基本精神和范围。


为了对本发明及其优势有更加充分地了解,请参阅有下列说明及附图,其中图1显示了一种用于预览媒体的系统的简图;图2显示了一种示例媒体播放器图;图3显示了一种高级媒体预览装置的框图;图4显示了一种分层数据结构;图5显示了根据预览流调度方案的流程图的一部分;图6显示了如图5所示的流程图的另一部分;图7显示了交错传输调度方案;图8显示了一种根据实施例可用于实施高级媒体预览方法的计算机系统的简化框图。
具体实施方案下文将详细介绍实施例的制定和使用。但是,应了解,本发明提供了很多可适用的发明概念,在各种特定的情况下可以实施这些概念。讨论的具体实施例仅是实现并使用本发明的特定方式的示例,不限制本发明的范围。将针对特定情况下的范例实施例介绍本发明,即生成、传输和显示在线视频预览的过程。但是,本发明还可以应用于预览音频等其他类型的多媒体,也可应用于本地或非在线内容等其他内容位置。图1显示了一种用于预览媒体的系统的简图。如图1所示的实施例架构包括用户 100、网络102和媒体源104。用户102可以是一种显示装置,能够通过网络102接收来自于媒体源104的媒体内容并对接收的媒体内容进行存储。而且,用户100能够通过其显示器呈现媒体内容。用户100可以随机拖动媒体的任意部分(即拖动播放器中的播放头以寻找一个更合适的点以继续)。高级媒体预览装置(如图3所示)用于从媒体文件中提取若干个帧并创建预览媒体流。当用户100沿着用户显示器(如图2所示)的进度条拖动播放头时,高级媒体预览装置将根据用户的预览请求向用户100提供一系列的预览图像(或者甚至较低分辨率的视频片段)。高级媒体预览装置通过允许用户100寻找并找到一个更适合的点以继续媒体使用,加大了主动媒体消费需求,从而大大提高了最终用户的媒体消费体验。YouTube等一些现有系统提供了有限的预览功能应用。在目前的YouTube播放器中,预览限于视频的已下载部分,这仅仅占到整个视频中非常小的一部分。而本发明的实施例提供了移动预览功能,能够将预览扩展到整个视频,而不仅仅是视频的已下载部分,从而扩展了预览功能。这种改进可以大大增强用户在视频播放之前、之中和之后浏览点播视频的能力。实施例包括使用在线媒体播放器在网络媒体传输系统中实现移动预览的系统和方法。其他实施例包括分层数据结构、传输调度方案、帧定位方案,以加快可伸缩传输和可伸缩呈现,从而提供最佳用户体验。图2显示了一种示例媒体播放器图。如图2所示,示例媒体播放器200用于说明典型的媒体播放器组件及其在媒体播放器中的相对位置。当然,在不同的实施例中,这些组件的排列、相对大小和比例可能各有不同。根据一个实施例,媒体播放器200包括播放控制面板210。播放控制面板210进一步包括位于其左侧的播放/暂停按钮202和位于其右侧的预览条208。此图显示了缩小尺寸的移动预览窗206,其尺寸在很小的窗口尺寸到整个播放器窗口尺寸的范围内变化,具体取决于应用需要。当媒体播放器用户启动了移动视频时, 用户沿着预览条208向前或向后拖动播放头204。应注意,预览条208可以是播放进度条, 或者可以是独立的条。通常,预览的粒度与视频时长成一般比例。然而,要提供个性化的体验,可以使用本发明的实施例实现可伸缩预览呈现功能。此外,还可以实现局部可伸缩预览呈现功能,其中借助位置敏感性视频可伸缩性与播放头的拖动速度成比例。用户可以轻松地从头到尾浏览或来回浏览整个视频。用户还可以从任意预览处立即开始播放并观看后续视频。预览流传输方案加快了视频预览启动时间,同时提供顺畅的预览播放。图3显示了一种高级媒体预览装置的框图。在收到媒体流之后,高阶媒体预览装置用于执行以下流程以支持移动预览。如图3所示,在预览生成流程300中,高级媒体预览装置提取出若干个预览帧并生成预览媒体文件。在生成了预览媒体文件之后,高级媒体预览装置通过预览传输流程302将预览媒体文件传输给用户。在用户侧,凭借插入式模块,高级媒体预览装置执行预览呈现流程304。应注意,当图3显示媒体预览装置能够执行上述三个预览流程即预览生成、预览传输和预览呈现时,在媒体源侧的高级媒体预览装置仅包括预览生成流程和预览传输流程。预览呈现流程可以由媒体播放器通过媒体播放器与高级媒体预览装置之间的通信来执行。此外,媒体播放器可以具有插入式模块,通过此模块,媒体播放器可以替代高级媒体预览装置的呈现功能。预览生成流程300用于提取和准备预览媒体数据和元数据(例如用于加快传输的描述文件或索引文件),以实现有效的传输和呈现。在媒体文件管理系统中,摄取流程用于获取到媒体文件和相应的元数据并将它们保存到媒体文件管理系统中。预览生成流程300 可以会在摄取流程期间或摄取流程之后进行,但是在媒体内容从媒体文件管理系统中传输到最终用户之前进行的。应注意,预览生成流程300可能会生成现有媒体和元数据之外的其他媒体数据和元数据,以支持媒体预览功能。预览传输流程302用于将预览媒体数据和元数据传输给最终用户以实现预览呈现。在图5、图6和图7中有针对何时传输以及如何传输哪些预览数据文件的详细方法的说明。预览呈现流程304用于在将播放头拖动到需要的位置时将传输的预览数据文件呈现给最终用户。预览呈现流程304很普遍,因此可以使用任何带插入式模块的播放器轻松地实现此流程。再次参考图3,典型的预览生成流程300包括以下步骤1.提取预览媒体数据; 2.生成元数据;3.创建描述文件和索引文件;4.创建预览媒体流。要加快整个视频预览和加快预览启动,需要预览媒体数据流足够小,以便预览媒体数据流的传输不会很大程度上阻碍原始媒体数据流的传输或影响原始媒体数据流的播放体验。要实现这一点,可以采取很多方案。在第一个实施例中,可以从每个分段中提取一个关键帧。分段可以是运动图像专家组(MPEG)格式视频中的一个图象组、媒体流的固定长度的视频分段、一个视频快照,或者可以以任何能够加快关键帧的提取的方式来定义分段, 以创建预览媒体数据流。要进一步减小预览文件大小和降低带宽要求,可以提取缩小版的关键帧。可以基于预览窗大小、播放质量要求、预览关键帧之间的距离间隔等确定比例,即关键帧的分辨率和比特率。要支持可伸缩的预览呈现功能,关键帧可以设置在分级或分层数据结构中。下文将介绍用于加快个性化瞬时预览体验的分层数据结构和封装方案。根据本发明的一个实施例,整个预览媒体流的关键帧的数量为Nm,滚动条的长度为Lm,关键帧的层数为K。关键帧的分层结构构建如下。为了便于说明,在以下示例实施例中,关键帧的数量大致相同。即,在第k层中关键帧Nk的数量约为Nm/K。从第一分段S(I) 开始,如果i mod K = k,则分段S(i)的关键帧将聚集到第k层。图4中显示了一个4层预览媒体流的范例,其中,虚线对应于关键帧在视频中的位置,在此处每层有8个关键帧。应注意,所属领域的技术人员可以轻易地修改此处,以便为每层定义不同数量的关键帧。各个不同层的关键帧可以保持在同一文件中,也可以保持在不同文件中,具体取决于不同的配置要求。一旦提取了预览媒体数据,会立即生成相应的元数据,即用于描述媒体数据的描述数据,同时还会生成用于加快移动预览的描述文件和索引文件。索引文件将列出预览媒体数据流的数据结构以及关键帧在原始媒体数据流中的位置。描述文件,作为预览媒体数据描述文件,可以包括不同的描述和元数据,以加快移动预览的不同使用。例如,描述文件中可以包括预览文件的位置、标题、类型和生成商信息等全部元数据以及一些场景描述信息、注释等内容。虽然在一个实施例中,描述文件是与预览数据文件分开来封装的,但是在另一个实施例中,描述文件可以与预览视频数据文件封装到同一文件中。借助索引文件,播放器可以方便快速地分配移动预览媒体数据。在某些情况下,它还有助于节省带宽、内存等资源。在这种情况下,实际上,预览媒体数据流并非是从原始媒体流中提取并保存在单独的文件中的。反之,索引文件是用于为播放器明确说明关键帧的位置,以实时从原始媒体流中提取实现移动预览。注意,此实施例最适用于实施提取方便可行而且成本较低的某些应用场景。要确保在任意预览点都可顺畅播放,可以使用预览帧定位功能。要做到这一点,将每个关键帧在原始媒体数据流中的对应位置记录在索引文件中用于预览呈现。在预览生成流程300中,通过从原始媒体文件中提取帧生成预览媒体数据文件。 在收到了最终用户的预览请求之后,预览传输流程302立即将预览媒体数据和元数据传输给最终用户。下面将讨论预览传输的示例实施例,重点将关注预览流调度方案。还将介绍一种多步传输方案,此方案利用了上述封装算法和调度算法以确保预览的体验质量(QoE)。假定将视频流Vm从边缘服务器传输给客户端进行播放的时间为TO ;播放器启动视频播放的最小缓冲时长为△ T ;开始传输第k层预览关键帧的第i个数据块的时间为 T(i,k);完成传输第k层预览关键帧的第i个数据块的时间为T*(i,k)。另外假定=Bth(t) 表示在t时服务器与客户端之间用于内容传输的可用带宽;Rp(t)表示在t时针对Vm媒体播放器的播放比特率;Rvm(t)表示在t时为客户端出现播放抖动Vm的最小传输比特率; Rk (t)表示在t时关键帧流的传输比特率;KF(n,k)表示第k层预览关键帧的第η个关键帧。在以下示例实施例中,我们假定不同层的关键帧被封装在不同的文件中,其中 F(k)表示第k层预览文件。所属领域的技术人员可以轻易地修改此实施例,以便将不同层的关键帧封装在单个预览文件中。通常,ΔΤ受到很多因素的影响,例如压缩视频的GOP大小。基于此领域内的很多参考资料,所属领域的技术人员可以根据具体的应用要求计算出 ΔΤ。图5显示了根据预览调度方案的流程图的一部分。在步骤500中,将视频流Vm 从边缘服务器传输给客户端进行播放,其中△T是播放器用于开始视频播放的最小缓冲时长。在步骤510中,如果Bth(t) >Rvm(t),则算法执行步骤520,其中算法开始传输F(I)并设置 Τ(0,1) = Τ0+ΔΤ, Max (Rk (t)) = Bth (t)-Rvm(t)(实例一)。另一方面,如果 Bth (t) < Rvm(t),算法执行步骤530,其中算法随后执行比特率适应并传输F(I)。图6显示了如图5所示的流程图的另一部分。在步骤600中,算法完成第一层预览文件的关键帧传输。在步骤610中,如果Bth (t) >Rvm(t),则算法执行步骤620,其中算法开始传输F (k),k = 2,3,. . .,η。另一方面,如果Bth (t) < Rvm(t),则算法执行步骤630, 其中算法随后执行比特率适应并传输F(k)。根据一个实施例,一开始传输Vm时,就可以传输F(I)。根据另一个实施例,在开始传输Vm之前,就可以传输F(I)。但是,在多数应用中,都是尽可能早地传输Vm以便实现最短的启动延迟。根据再另一个实施例,可以从其他服务器或对端客户端传输部分或全部
F(k) (k = 1,2........)。当原服务器的下行带宽受限从而成为瓶颈问题时,这种方案可以
帮助减少服务器拥塞问题和提高用户QoE。应注意,虽然图5和图6显示了用于传输预览媒体数据的控制算法,但是所属领域的技术人员会认识到有很多替代方案。图7显示了交错传输调度方案。当采用交错传输调度方案时,通常需要满足以下准则Rp(t)彡Rvm(t)*(T*(0,j)-T(0, j))/(T*(0, j+l)-T*(0,j))/其中 T*(0,j = 0) = TO。虽然仅在上述示例实施例中假定一个预览层k并在T(0,j)与T*(0,j)之间传输 F(k),但是所属领域的技术人员应了解,F(k)也可以是包括多个预览层或包括某个预览层的一部分的超级文件。在任何一种情况下,都可以使用类似的调度方案。应注意,虽然图5、6、7显示了用于传输预览媒体数据的两种算法,但是图5、6、7中的算法仅用于说明目的。所属领域的技术人员会认识到,很多快速启动算法可以结合既定的不会有损于QoE的方案一起使用。在将预览媒体数据和元数据传输给最终用户之后,预览视图呈现流程将预览数据文件呈现给最终用户。在以下示例实施例中,基于预览关键帧在预览数据结构中的位置对预览关键帧进行封装。换言之,不同层的关键帧封装在不同的文件中。同样,所属领域的技术人员可以轻易地修改此实施例,以便将这些关键帧封装在单个文件中,或者将同一层的关键帧封装在多个文件中。第一步媒体播放器获取到描述文件并提取出分层预览文件的位置。第二步媒体播放器下载第一层预览文件。第三步媒体播放器下载第二层预览文件。媒体播放器重复类似下载操作,直至媒体播放器下载到第k层预览文件。媒体播放器并非始终需要下载完描述文件中说明的所有预览文件。数字k取决于预览滚动条的长度和视频时长。对于特定的视频,较长的预览滚动条可以实现更精确的颗粒鼠标移动。因此,可以下载更多的预览关键帧,从而可以下载更多的预览文件,实现可伸缩的预览体验。不难预想到,在单个媒体播放器会话内,最终用户可以在给定的媒体播放器的全屏模式和常规屏幕模式之间进行切换。这种切换操作会更改滚动条长度,从而可能需要加快下载其他预览媒体数据层(文件),以适应这种模式切换(例如,切换到全屏显示模式)O通过第一层预览文件,用户可以获得粗颗粒预览体验。在获取到后续层的预览文件之后,用户可以享受到细颗粒预览体验。即下载越多层数的预览文件,移动预览可以提供的粒度将越来越好,从而能够实现的预览体验也将越来越好。一旦开始播放视频,媒体播放器将检查计算机的可用带宽可否下载预览文件,同时还将保持视频播放的顺畅。媒体播放器将定期检查网络状况,直至需要的预览文件下载完毕。一般不启用移动预览功能,直至至少一个预览文件下载完毕。要加快从任意移动预览点处的即时播放,即从任意移动预览关键帧处播放视频, 媒体播放器将从索引文件中获取到关键帧的原始媒体数据位置信息。之后,媒体播放器会将获取到的位置与缓冲区进行比较。如果此位置在缓冲区的外侧,媒体播放器将立即与边缘服务器进行通信,以从原始媒体数据流中获取到对应的媒体分段,以加快即时启动。图8显示了一种根据实施例可用于实施高级媒体预览方法的计算机系统800的简化框图。计算机系统800包括高级媒体预览装置810、内存820、处理器830、存储装置840、 网络接口输入设备850、网络接口输出设备860和数据总线870。应注意,此图仅作为个人计算机的范例,而不应过度限制权利要求的范围。个人计算机的很多其他配置在本发明的范围内。所属领域的技术人员也会认识到,此高级媒体预览方法可以由包括便携式计算机、 工作站、网络计算机等的其他计算机系统执行。高级媒体预览装置810可以是物理设备、软件程序或者软硬件的组合,例如专用集成电路(ASIC)。根据一个实施例,当计算机通过网络接口输入设备850接收到媒体文件时,处理器830将媒体文件载入到存储装置840中。根据高级媒体预览方法由软件程序实施的实施例,处理器830从存储装置840中载入此软件程序并在内存820中操作此程序。在处理器830执行了如图3所示的步骤之后,处理器830通过网络接口输出设备860将预览结果发送给最终用户。虽然已经详细介绍了本发明及其优势,但是应该理解的是,可以在不偏离所附权利要求规定的本发明的基本精神和范围情况下做出各种更改、替换和变动。例如,上述讨论的很多特征和功能可以使用软件、硬件、固件或三者的结合来实现。此外,本发明的范围不限于本说明书中规定的程序、机械、产品、组成、方式、方法和步骤的特定实施例。根据本发明以及本发明的的程序、机械、产品、组成、方式、方法和步骤的公开,所属领域的技术人员了解,可以根据本发明使用其功能大体上与本文中相应实施例的功能相同的或者可与其达到同样效果的实施例,无论是现有实施例还是以后制定的实施例。相应地,所附权利要求也将这些程序、机械、产品、组成、方式、方法和步骤包括在其范围之内。
权利要求
1.一种方法包括从媒体文件的某个分段中提取一帧作为预览帧; 将若干个所述预览帧存储在若干个层中; 向用户传输所述媒体文件和若干个所述预览帧。
2.根据权利要求1所述的方法,所述分段包括以下之一的媒体元素图象组、固定长度的视频分段、固定长度的媒体流、以及视频的一个快照。
3.根据权利要求1所述的方法,所述预览帧可以降低到更小的分辨率以对应于预览参数,所述参数包括以下之一以及它们的组合预览窗大小、播放质量、预览帧之间的距离间隔以及预览帧。
4.根据权利要求1所述的方法,所述预览帧保存在分级数据结构中。
5.根据权利要求1所述的方法,所述预览帧保存在分层数据结构中。
6.根据权利要求1所述的方法,包括 生成元数据文件;生成包括预览描述信息的描述文件;生成包括各个所述预览帧的位置信息的索引文件;生成预览媒体流。
7.根据权利要求6所述的方法,所述索引文件包括媒体文件中各个所述预览帧的位置fn息ο
8.根据权利要求1所述的方法,进一步包括以下步骤在选择的时间点处传输若干个所述预览帧,以减少延迟和播放抖动。
9.一种系统包括 媒体文件;相应的预览文件,所述览文件包括若干个帧,其中每个帧都是从所述媒体文件中提取的。
10.根据权利要求9所述的系统,所述若干个帧存储在分层数据结构中。
11.根据权利要求9所述的系统,所述每个帧采用低比特率格式进行保存。
12.根据权利要求9所述的系统,进一步包括 元数据文件;描述文件; 索引文件; 预览媒体流。
13.据权利要求12所述的系统,所述索引文件包括所述媒体文件中所述各个帧的位置 fn息ο
14.一种方法,包括 呈现媒体文件;接收用户的预览请求;呈现预览文件的第一层,以生成一级颗粒预览; 呈现预览文件的第二层,以生成二级颗粒预览。
15.根据权利要求14所述的方法,进一步包括接收所述预览文件的若干个采用交错格式的帧。
16.一种计算机程序产品,包括非暂态计算机可读介质及其中保存的计算机程序,所述计算机程序包括用于从媒体文件的分段中提取一帧作为预览帧的计算机程序代码; 用于将所述若干个这种预览帧存储在若干个层中的计算机程序代码; 用于向用户传输所述媒体文件和所述若干个预览帧的计算机程序代码。
17.根据权利要求16所述的计算机程序产品,进一步包括 用于呈现媒体文件的计算机程序代码;用于接收用户的预览请求的计算机程序代码;用于呈现预览文件的第一层以生成一级颗粒预览的计算机程序代码;用于呈现预览文件的第二层以生成二级颗粒预览的计算机程序代码。
18.根据权利要求16所述的计算机程序产品,进一步包括 用于生成元数据文件的计算机程序代码;用于生成包括预览描述信息的描述文件的计算机程序代码;用于生成包括所述各个预览帧的位置信息的索引文件的计算机程序代码;用于生成预览媒体流的计算机程序代码。
19.根据权利要求16所述的计算机程序产品,进一步包括用于在向用户传输预览帧时执行比特率适应的计算机程序代码。
20.根据权利要求16所述的计算机程序产品,进一步包括用于从所述媒体文件中提取出帧并将这些帧分层数据结构中的计算机程序代码。
全文摘要
一种高级媒体预览单元,包括预览产生处理器300抽取多个预览帧以及在预览生成过程300中产生预览媒体文件。预览帧存储在分层数据结构中。此外,该预览帧可被降低至低分辨率以便由该预览帧形成的预览文件能够减小文件大小。预览文件通过预览传输流程302传输至用户。例如,传输调度方案将在选择的时间点处传输预览帧,以最大程度上减少启动延迟和播放抖动。在用户侧,通过插入模块,该高级预览单元执行预览呈现流程304。
文档编号G06F3/00GK102576248SQ201180001638
公开日2012年7月11日 申请日期2011年2月1日 优先权日2010年2月2日
发明者冯江平, 林奎, 虹·希瑟·郁, 黄浴 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1