动态地按需要产生用于http直播流传输的媒体序列的方法和设备的制作方法
【专利摘要】本发明所描述的是动态地按需要产生用于HTTP直播流传输的媒体序列文件。该操作可以包括:在使用HTTP直播流传输的网络上,基于远端媒体播放器的前向或反向跳转请求来接收一个关于媒体序列文件的请求;响应于该请求,确定与媒体序列文件相对应的媒体源文件的位置,以便能够跳转到媒体源文件的所述位置,由此从媒体源文件中产生媒体序列文件;以及促使提供一个表明媒体序列文件已经产生的通知。所述媒体序列文件的格式不同于媒体源文件的格式。并且所述媒体序列文件的格式兼容远端媒体播放器。
【专利说明】动态地按需要产生用于HTTP直播流传输的媒体序列的方法和设备
[0001]相关申请的交叉引用
[0002]本申请要求依照35U.S.C.$119享有2011年5月9日提交的名为“Method andapparatus for dynamically generating media clips on demand for live streaming,,的美国临时专利申请61/484,169的优先权,其中所述申请在这里作为参考而被全部引入,以便用于各种目的。
【技术领域】
[0003]本主题主要涉及媒体流传输,尤其涉及动态地按需要产生用于HTTP直播流传输的媒体序列。
【背景技术】
[0004]在过去,用户通过⑶-ROM播放视频和音频,或者从远端的web服务器下载和播放视频及音频。在这些情况下,在用户可以开始播放所述视频或音频之前,所述视频和音频必须存在于用户本地(也就是位于CD-ROM或者被完整地下载至用户计算机)。随着网络连接技术和媒体解码、编码及压缩技术的发展,流传输媒体开始普及。例如,用户可以使用手机或平板之类的小型便携设备来对源自web服务器的媒体进行流传输,并且用户可以在完成从web服务器下载媒体的处理之前开始播放该媒体。然而,在产生媒体文件时,当前技术并未提供有效的资源利用,对超文本传输协议(HTTP)直播流媒体而言更是如此。
【发明内容】
[0005]在本公开的一个方面中,一种动态地按需要产生用于超文本传输协议(HTTP)直播流传输的媒体序列文件的方法可以包括:在使用HTTP直播流传输的网络上,基于远端媒体播放器的前向或反向跳转操作来接收关于媒体序列文件的请求;以及响应于该请求,确定与所述媒体序列文件对应的媒体源文件的位置,以便能够找到所述媒体源文件的位置,进而从所述媒体源文件中产生媒体序列文件,以及促使提供一个关于所产生的媒体序列文件的通知,其中所述媒体序列文件代表的媒体源文件的多个顺序位置之一,其中媒体序列文件的格式不同于媒体源文件的格式,以及其中媒体序列文件的格式与远端媒体播放器兼容。
[0006]在本公开的一个方面中,一种机器可读存储介质可以用指令编码,其中所述指令可以由一个或多个处理器运行,以便执行一个或多个操作。所述一个或多个操作可以包括:在使用HTTP直播流传输的网络上,基于远端媒体播放器的向前或向后寻道操作来接收关于媒体序列文件的请求;以及响应于该请求,确定与所述媒体序列文件相对应的媒体源文件的位置,以便能够找到所述媒体源文件的位置,进而从所述媒体源文件中产生媒体序列文件。
[0007]在本公开的一个方面中,一种设备可以包括被配置成执行一个或多个操作的一个或多个模块,所述操作包括:在使用HTTP直播流传输的网络上,基于远端媒体播放器的向前或向后寻道操作来接收关于媒体序列文件的请求;以及响应于该请求,确定与所述媒体序列文件相对应的媒体源文件的位置,以便能够找到所述媒体源文件的位置,进而从所述媒体源文件中产生媒体序列文件。
[0008]在本公开的一个方面中,一种设备可以包括:用于在使用HTTP直播流传输的网络上,基于远端媒体播放器的向前或向后寻道操作来接收关于媒体序列文件的请求的装置;以及用于响应于该请求,确定与所述媒体序列文件相对应的媒体源文件的位置,以便能够找到所述媒体源文件的位置,进而从所述媒体源文件中产生媒体序列文件的装置。
[0009]应该理解的是,本领域技术人员很容易从以下举例显示和描述本技术主题的不同配置的详细描述中清楚了解本技术主题的其他配置。应该认识到的是,本技术主题能够采用其他不同的配置,并且在其他不同的方面是可以对其细节进行修改的,所有这些均未脱离本技术主题的范围。相应地,附图和详细描述本质上应被看作是说明性而不是限制性的。
【专利附图】
【附图说明】
[0010]图1不出的是用于超文本传输协议(HTTP)直播流传输的系统的不例;
[0011]图2A示出的是根据本公开的一个方面的技术主题配置的一个示例;
[0012]图2B示出的是根据本公开的一个方面的技术主题配置的一个示例;
[0013]图3A示出的是播放列表的一个示例;
[0014]图3B示出的是媒体播放器的显示器屏幕截图的一个示例;
[0015]图3C示出的是媒体播放器的显示器屏幕截图的一个示例;
[0016]图3D示出的是媒体源文件的一个示例;
[0017]图3E示出的是可以保存在媒体存储器中的媒体文件的一个示例;
[0018]图4示出的是动态产生媒体序列文件的处理的一个示例;
[0019]图5是示出了计算设备示例的概念性框图;
[0020]图6示出的是网络系统的一个示例的简化图示;
[0021]图7A是描绘了根据本公开的一个方面的操作方法的一个示例的框图;
[0022]图7B是描述了根据本公开的一个方面的机器可读介质的一个示例的框图;
[0023]图7C是描绘了根据本公开的一个方面的设备的一个示例的框图;
[0024]图7D是描述了根据本公开的一个方面的设备的一个示例的框图。
【具体实施方式】
[0025]以下阐述的【具体实施方式】旨在描述本技术主题的不同配置,而不是描述可以实施本技术主题的唯一配置。在这里引入了附图,并且所述附图构成了本【具体实施方式】的一部分。本【具体实施方式】包括用于全面理解本技术主题的具体细节。然而,本领域技术人员清楚了解,本技术主题是能在没有这些细节的情况下实施的。在一些情况下,为了避免与本技术主题的概念相混淆,众所周知的结构和组件均以框图形式显示。为了易于理解,相同的组件是用相同部件编号标记的。
[0026]根据流媒体的一个实施例,用于已有设计的web服务器可以具有不同格式的媒体文件(例如 H.264.mid_quality 格式,H.264.high_quality 格式,H.264.low_quality 格式,wmv格式,mpeg格式)。这些媒体文件在web服务器或共享位置上是预先存在的。当用户设备通过连接到web服务器来播放文件时,如果在web服务器或共享位置上预先存在与用户设备兼容的文件,则web服务器允许流传输。如果没有,则不进行流传输。相应地,流传输是只有在用户请求流传输之前既已存在与用户设备兼容的媒体文件(这其中包括其播放列表文件和媒体序列文件)的情况下才会进行的。
[0027]相比之下,在一个有利的方面中,本技术主题可以允许对用户请求流传输时尚不存在的媒体文件进行流传输。在一个有利的方面中,在接收用户的流传输请求之前,本技术主题的web服务器不需要产生和保持各种格式的媒体文件。
[0028]在一个方面中,本技术主题涉及的是使用web服务器且关于超文本传输协议(HTTP)直播流传输的远端视频跳转处理。现有的HTTP直播流传输方法需要所有媒体文件全都位于媒体位置,以便实施流传输以及执行跳转操作。相比之外,在一个有利的方面中,通过动态地按需要产生所需要的媒体文件,本技术主题消除了这个限制。
[0029]用于HTTP肓播流传输的系统的示例
[0030]图1示出的是HTTP直播流传输系统的一个示例。HTTP直播流传输系统110具有两个组件:HTTP服务器120以及媒体播放器130。系统110使用HTTP作为通信协议。参照HTTP服务器120的根文件夹,所有媒体文件全都位于HTTP服务器120。媒体播放器130使用HTTP协议来查询位于HTTP服务器120的媒体文件。每一个媒体文件可以分为两个部分:(a)播放列表文件,以及(b)多个媒体序列文件。所述播放列表文件包含了媒体序列文件及其他元数据的位置和名称。
[0031]为了播放媒体,媒体播放器130首先加载播放列表文件,并从播放列表中检索媒体序列文件的位置和细节。然后,它会单独请求或查询个别媒体序列文件,并且将其再现到媒体播放器的屏幕。
[0032]要想使用已有技术来执行视频搜索,所有媒体序列文件必须是预先创建的,并且必须在媒体位置中(例如在HTTP服务器120上)存在。这样做阻碍了从媒体源动态产生媒体序列文件的能力。HTTP直播流传输尚未指定一种用于克服此类限制的方法。
[0033]一种方法
[0034]一种用于解决上述问题的方法是通过控制媒体播放器的滚动条来卷动(跳转)媒体(例如视频),以及重新开始从新的滚动位置产生媒体序列文件(例如视频序列)。然而,该方法具有以下缺陷:(i)需要通过修改媒体播放器来使跳转操作正常运作。在很多情况下,该修改未必是可行的,或者有可能需要改动大量的媒体播放器,这一点取决于正在回放内容的客户机;(ii)上述方法需要从新的位置重新产生经过压缩的内容,即便在过去产生过所述内容的情况下也是如此。在一个有利的方面中,本技术主题克服了这些缺陷。
[0035]关于本技术主题配置的第一示例
[0036]图2A示出的是根据本公开的一个方面的技术主题配置的一个示例。系统210可以包括HTTP服务器120。该系统210还可以包括处于网络(例如互联网或无线连接之类的连接)上的远端媒体播放器130。
[0037]媒体播放器
[0038]在一个有利方面中,媒体播放器130可以是理解HTTP直播流的任何兼容的播放器。媒体播放器130可以通过直接查询HTTP服务器120来请求媒体文件或媒体序列文件。[0039]HTTP 服备器
[0040]HTTP服务器120可以读取媒体播放器130请求的文件,如果媒体生成器240没有产生被请求的文件,那么HTTP服务器120可以强迫媒体生成器240创建该文件(例如缺失的媒体序列文件),以及在创建了该文件时将其发送到媒体播放器130。
[0041]媒体生成器
[0042]媒体生成器240可以是软件模块、硬件模块或是其组合,并且可以使用任何媒体框架(例如直接显示,gstreamer, helix媒体服务器)。所述媒体生成器240可以产生播放列表(例如*.m3u8文件)以及媒体序列文件(例如*.ts文件)。媒体生成器240可以读取媒体源250中的媒体源文件(采用一种格式,例如*.wmv文件),并且可以创建多个比媒体源文件小的媒体序列文件(采用别的格式,例如*.ts文件)。媒体源文件可以持续很长的持续时间,例如30分钟、I小时等等。每一个媒体序列文件则持续很短的持续时间,例如5秒或10秒。
[0043]媒体源
[0044]媒体源250可以包含媒体源文件或应用,其中所述源文件或应用包含了可供媒体生成器240使用的媒体内容(例如音频/视频数据)。参见图3D。举例来说,媒体源250可以包含采用以下格式的文件,例如mpeg2文件、mp4文件、wmv文件或是用于流传输服务器的文件。
[0045]媒体存储器
[0046]媒体存储器260可以用于HTTP直播流传输,并且可以存储媒体文件。每一个媒体文件具有两种类型的媒体文件:(i)播放列表文件(其示例是扩展名为诸如*.m3u8的文件,例如名为“index.m3u8”的文件),以及(ii)多个媒体序列文件(其示例是扩展名为*.ts的文件,例如名为“100.ts”、“101.ts”等等的文件)。参见3E。播放列表文件可以具有关于所有媒体序列文件的细节。媒体序列文件可以包含音频和/或视频数据。媒体文件扩展(例如播放列表文件和媒体序列文件)可以是任何格式的。媒体生成器240可以用一种非常有效的方式来创建文件,以免在跳转操作过程中创建重复的文件。
[0047]在本公开的一个方面中,诸如计算设备290之类的系统可以包括:(i) HTTP服务器120,(ii)媒体生成器240,(iii)媒体存储器260,以及(iv)媒体源250。计算设备290可以包括一个或多个计算设备。在另一个方面中,一个计算设备可以包括组件120、240和260,另一个计算设备则可以包括250。在再一个方面中,每一个组件120、240、260以及250可被包含在不同的计算设备中。在另一个方面中,组件120、240、260以及250可以用不同的方式瓜分,并且可以包含在两个或更多单独的计算设备中。在另一个方面中,一些或每一个组件120、240、260以及250都可以包括多个组件/模块,并且这样的多个组件/模块可以包含在两个或更多的单独计算设备中。
[0048]在一个方面中,HTTP服务器和媒体生成器中的每一个都可以作为电子硬件、计算机软件或是其组合来实施。在一个方面中,HTTP服务器提供了用于在网络上使用HTTP来与别的计算设备通信的能力。
[0049]在一个方面中,计算设备280可以包括媒体播放器130。在另一个方面中,媒体播放器是计算设备。在一个方面中,媒体播放器可以作为电子硬件(例如移动电话、便携式媒体播放器或是其子部件)、计算机软件(例如Windows Media P layer、QuickTime或是其子部件)或是软硬件的组合来实施。
[0050]关于本技术主题配置的第二示例
[0051]图2B示出的是根据本公开的一个方面的技术主题配置的一个示例。HTTP服务器120可以包括请求处理机221。媒体生成器240可以包括控制器222以及媒体生成模块249。控制器222包括媒体生成器控制器225以及位置计算模块224。所述控制器222还可以包括媒体生成器配置器223以及设置接口 226。
[0052]请求处理机
[0053]在一个方面中,请求处理机221可以从媒体播放器130接收关于播放列表文件和媒体序列文件的请求。作为示例,如果请求处理机221确定在媒体存储器260中存在被请求的文件(例如播放列表文件以及媒体序列文件),那么所述请求处理机221将会取回被请求的文件,并且将其提供给媒体播放器130。如果请求处理机221确定被请求的文件不存在,那么所述请求处理机221会将该请求转发到媒体生成器控制器225。此外,当请求处理机221接收到一个表明文件已经产生(例如播放列表文件或媒体序列文件)的通知时,所属请求处理机221可以从诸如媒体存储器260取回该文件,并且可以将其提供给媒体播放器130。
[0054]媒体生成器控制器
[0055]在一个方面中,媒体生成器控制器225可以在不同组件(例如221,224,223,226以及249)之间提供通信和控制。当媒体生成器控制器225接收到来自一个模块(例如221,224,223,226以及249)的请求、通知或命令时,它可以确定所述请求、通知和命令以及恰当目的地模块(也就是需要将所述请求、通知或命令送抵的模块)的类型,并且可以将其提供给所选择的恰当的目的地模块(例如249,224,223,226,221)。
[0056]在一个方面中,举例来说,媒体生成器控制器225可以从请求处理机221接收一个关于文件(例如缺失的媒体序列文件)的请求,该控制器可以确定所述请求是一个针对缺失的媒体序列文件的请求,并且可以确定恰当的目的地是位置计算模块224,以及将所述请求提供给位置计算模块224。
[0057]在一个方面中,媒体生成器控制器225可以经由请求处理机221或者别的信道或虚拟信道(例如图2A中的285)接收媒体播放器的回放配置信息。当媒体生成器控制器225确定其接收到了媒体播放器的回放配置信息时,所述控制器225可以确定恰当的目的地是媒体生成器配置器223,并且可以将该信息提供给媒体生成器配置器223。
[0058]当媒体生成器控制器225从位置计算模块224接收到诸如时间之类的参数,从媒体生成器223接收到配置参数或者从设置接口 226接收到设置参数的时候,该控制器225可以基于所述信息确定发送至媒体生成模块249的参数,并且可以将这些参数提供给媒体生成模块249。
[0059]当媒体生成器控制器225从媒体生成模块249接收到一个表明播放列表文件或媒体序列文件已经产生的通知时,所述媒体生成器控制器225可以将该通知发送给请求处理机 221。
[0060]位置计算模块
[0061]当位置计算模块224接收到关于缺失的媒体序列文件的请求时(例如经由225从221),所述位置计算模块224将会计算该请求,并且会将其转换成与缺失的媒体序列文件(例如200.ts文件)相对应的媒体源文件的位置(例如200秒的时间),以及将诸如时间这样的位置提供给媒体生成器控制器225。所述计算可以基于与缺失的媒体序列文件相关联的播放列表文件中的信息(例如媒体源文件的总的持续时间,媒体序列文件的总数,媒体序列文件的名称,以及关于媒体序列文件的次序或顺序的指示)。
[0062]举个例子,该计算可以基于与缺失的媒体序列文件相关联的媒体源文件的总的持续时间,将要为媒体源文件产生的媒体序列文件的总数,以及与媒体源文件的其他媒体序列文件相对的缺失媒体序列文件的位置。作为示例,如果总的持续时间是I小时,那么媒体序列文件的总数是720,并且缺失的媒体序列文件是第120个文件,那么媒体源文件的相应时间是600秒(I小时*3600秒/小时*120/720=600秒)。
[0063]设置接口
[0064]在一个方面中,设置接口 226被配置成确定媒体源文件(例如媒体源250)的一个或多个位置,以及用于存储播放列表文件和媒体序列文件的一个或多个位置(例如媒体存储器260),并且将位置信息提供给媒体生成器控制器225,所述控制器225则将该位置信息提供给媒体生成模块249。
[0065]媒体生成器配置器
[0066]在一个方面中,媒体生成器配置器223可以在初始设置处理或是媒体播放器的回放过程中接收媒体播放器配置信息,并且可以产生用于媒体生成模块249的配置参数。举例来说,此类配置参数可以包括供转码器245使用的视频比特率、音频比特率、图像宽高比(例如图像的宽度与其高度的比值)以及帧速率(例如帧/秒)。
[0067]在初始设置过程中,媒体生成器配置器223可以借助诸如设置接口 226接收信息,并且可以经由诸如设置接口 226及媒体生成器控制器225来将配置信息提供给媒体生成模块249。在回放过程中,媒体生成器配置器223可以经由诸如媒体生成器控制器225接收信息,并且可以经由诸如媒体生成器控制器225来向媒体生成模块249提供配置参数。在另一个方面中,媒体生成器配置器223可以经由其他信道接收/发送信息。
[0068]在一个方面中,如果媒体播放器配置信息在媒体播放器130的回放过程中发生了变化,那么媒体生成器配置器223可以检测到这种变化,并且可以作为响应而调整媒体生成器的配置参数。举例来说,如果计算设备280与290之间的网络的质量或带宽网络因为从W1-Fi变成3G而降低,那么作为接收到表明网络质量或带宽下降的通知的响应,媒体生成器配置器223可以调整编码器243的参数,例如视频和音频速率,以便降低传送至媒体播放器130的媒体的质量。
[0069]媒体牛成樽块
[0070]在一个方面中,媒体生成模块249可以包括源读取器241,转码器245,以及写入器244。转码器245可以包括解码器242和编码器243。
[0071]响应于初始设置请求(例如来自225),媒体生成模块249可以设置其配置参数,例如所选择的媒体资源文件(例如媒体资源250)的位置,存储媒体输出文件(例如媒体序列文件)的位置(例如媒体存储器260)。以及媒体生成模块249的不同组件(例如241,242,243以及244)的配置参数。
[0072]源读取器241可以读取媒体源文件。在一个方面中,媒体生成模块249(例如241)或者诸如媒体生成器控制器225之类的别的组件可以确定媒体源文件的持续时间以及所要产生的媒体序列文件的总数。所述媒体生成模块249可以创建、编写播放文件列表(例如使用写入器244来将播放列表文件存入媒体存储器260),以及通告创建了播放列表文件(例如经由221和224或者经由别的信道来向媒体播放器130通告)。播放列表文件可以包含与媒体源文件和媒体序列文件(例如媒体源文件的总的持续时间,媒体序列文件的总数,媒体序列文件的顺序,媒体序列文件的名称等等)有关的信息。
[0073]媒体生成模块249的源读取器241可以读取媒体源250中的数据(例如媒体源文件),并且可以将数据馈送到模块242和243。模块242和243可以按顺序创建媒体序列文件,并且可以将媒体序列文件写入输出文件位置(例如使用244来写入260)。在从媒体播放器那里接收到关于每一个媒体序列文件的请求之后,请求处理机221可以取回每一个媒体序列文件,并且将其提供给媒体播放器130。当请求处理机221不能发现被请求的媒体序列文件时,它会通知媒体生成模块249 (例如借助225)。
[0074]响应于请求/命令(例如来自媒体生成器控制器225),源读取器241可以开始读取媒体源文件(例如从文件开端(例如在初始设置期间的时间O)开始读取媒体源250中的媒体源文件,或者从特定的被请求位置(例如从60秒这样的被请求时间)开始读取媒体源文件。所述源读取器241可以从设置的位置开始读取媒体源250中的媒体序列文件,并且可以在流结束的时候或者在位置被复位至另一个值(或另一个跳转)的情况下停止读取媒体序列文件。由此,媒体生成模块249可以从设置的位置开始创建所有媒体序列文件,并且可以在流结束的时候或者所述位置被复位成另一个值(或另一个跳转)的时候停止创建媒体序列文件。
[0075]解码器242可以解码从媒体源文件中读取的媒体,并且编码器243可以使用配置参数来对媒体进行编码。写入器244可以将媒体序列文件写入媒体存储器260。
[0076]不同的操作例证
[0077]以下描述的是根据本公开不同方面的不同细节层次上的媒体回放和跳转操作的不同例证。
[0078]例证I
[0079]参考图2A、2B和3A-3E,根据本公开的一个方面,在这里对照媒体播放器以及其他组件示出了关于媒体回放和跳转操作的一个示例。
[0080](i)媒体播放器130的用户从播放列表(例如310A)中选择所要播放的媒体源文件(例如图3A中的320A)的名称。
[0081](ii)媒体播放器130开始播放与所选择的媒体源文件(例如图3D中的媒体源文件I)相关联的媒体文件(例如图3E中的媒体文件A)的媒体序列文件(例如图3E中的媒体序列文件A-1、A-2等等),其中所述媒体源文件的文件名(例如320A)是在播放列表(例如310A)上显示的。媒体播放器130可以向用户显示一个具有跳转选项(例如向前/向后寻道330B和330C,向前寻道380B,向后寻道370C)以及总的持续时间(例如360B)的进度栏(例如图3B和3C中的330B、330C)。
[0082](iii)用户可以让媒体播放器130前向或反向跳转。在图3B和3C所示的示例中,前向跳转和反向跳转可以通过点击进度栏上的位置或是元素370C或380C中的一个来完成。
[0083](iv)媒体播放器130依照用户前向或反向跳转的请求来将回放向前或向后移动。[0084](V)媒体播放器130可以显示其当前时间(例如350B)以及总的持续时间(例如360B)。
[0085]例证2
[0086]参考图2A和2B,根据本公开的一个方面,在这里对照媒体生成器以及其他组件示出了媒体回放和跳转操作的一个示例。
[0087](i)媒体生成模块249 (例如源读取器241)可以从媒体源250中读取媒体源文件(例如具有扩展名.wmv的文件)。
[0088](ii)媒体生成模块249 (例如241或其他组件)可以确定媒体源文件的总持续时间,并且可以确定回放所需要的媒体序列文件的总数。然后,媒体生成模块可以使用该信息来填充播放列表文件。当媒体播放器130请求播放列表文件时,即使尚未创建所有媒体序列文件,所述媒体播放器也会假设回放所需要的所有媒体序列文件都已存在(例如在媒体存储器260中)。由此,在一个优选方面中,媒体回放和跳转操作与媒体播放器是无关的。
[0089](iii)当HTTP服务器120 (例如请求处理机221)从媒体播放器130接收到关于不存在的媒体序列文件的请求时,该请求处理机221会将该请求发送到媒体生成器控制器225,所述媒体生成器控制器将会确定请求类型,并且会将该请求转发到位置计算模块224。
[0090](iv)位置计算模块224将该请求转换成相应的时间格式,并且将该结果发送到媒体生成器控制器225,所述媒体生成器控制器225则将该结果转发给媒体生成模块249,以使媒体生成模块249可以跳转所需要的位置。举例来说,当媒体播放器130请求播放列表文件中的文件5.ts时,媒体生成模块249将会理解其需要需找媒体源文件中的第五秒,并且将会产生缺失的媒体序列文件。
[0091](V) —旦媒体生成模块249产生了缺失的媒体序列文件,则媒体生成模块249将会通知HTTP服务器120 (例如借助媒体生成器控制器225通知请求处理机221),并且HTTP服务器120 (例如请求处理机221)会通过取回所产生的媒体序列文件以及将其提供给媒体播放器130来对媒体播放器130做出响应。
[0092]例证3
[0093]参考图2A、2B、3A和4,根据本公开的一个方面,在这里示出了用于动态实时地按需要要产生媒体序列文件的处理的一个示例。
[0094]在步骤420,媒体播放器130请求得到某个文件(例如媒体序列文件)。该请求可以是一个跳转请求,并且该请求有可能是在开始播放媒体之后当用户执行跳转操作(例如前向跳转或反向跳转)的时候出现的。HTTP服务器120 (例如请求处理机221)接收该请求,并且一旦接收到该请求,则HTTP服务器120 (例如221)在步骤430中确定该文件是否存在,例如是否存在于媒体存储器260中。在步骤490,如果该文件存在,则HTTP服务器120获取所述文件,并且将该文件返回给媒体生成器配置器223。
[0095]在步骤432,如果该文件不存在,则媒体生成器控制器223可以确定是否需要改变媒体生成模块249的配置。如果否,那么该操作前进至处理450。如果是的话,则媒体生成器配置器223将会改变媒体生成器配置参数,并且会将新的配置参数发送到媒体生成器控制器225,在步骤434,所述媒体生成器控制器225会将新的配置通知给媒体生成模块249。
[0096]在步骤450,控制器222 (例如224、或224和225)解释该请求,并且会将该请求转换成时间格式。在步骤460,媒体生成模块249 (例如241)跳转到相应的时间。在步骤470,媒体生成模块249 (例如242,243和244)响应于该请求来创建缺失的媒体序列文件。在480,媒体生成模块249向HTTP服务器120 (例如借助225向221)告知已经创建了缺失的媒体序列文件。然后,所述HTTP服务器120 (例如121)取回已创建的媒体序列文件,并且将其提供给媒体播放器130。
[0097]例证4
[0098]参考图2A和2B,根据本公开的一个方面,以下描述了用于动态产生媒体序列文件的处理的一个示例。
[0099](i )媒体生成模块249开始创建播放列表文件(例如图3E中的播放列表文件A),并且确定所要产生的媒体序列文件的数量。对本示例而言,媒体生成模块249需要创建12个媒体序列文件。
[0100](ii)如下表1所示,媒体生成模块249从文件1.ts开始按顺序创建媒体序列文件。
[0101]表1
【权利要求】
1.一种动态地按需要产生用于超文本传输协议(HTTP)直播流传输的媒体序列文件的方法,包括: 在使用HTTP直播流传输的网络上,基于远端媒体播放器的前向或反向跳转请求来接收一个关于媒体序列文件的请求; 响应于该请求, 确定与媒体序列文件相对应的媒体源文件的位置,以便能够跳转到媒体源文件的所述位置,由此从媒体源文件中产生媒体序列文件; 促使提供一个表明媒体序列文件已经产生的通知, 其中媒体序列文件代表的是媒体源文件的多个顺序位置之一, 其中媒体 序列文件的格式不同于媒体源文件的格式, 其中媒体序列文件的格式兼容远端媒体播放器。
2.如权利要求1所述的方法,还包括: 响应于该请求, 确定媒体序列文件是否存在,以免重新创建已有的媒体序列文件; 如果所述确定表明媒体序列文件存在,则允许取回所述媒体序列文件,以及提供取回的媒体序列文件,而不产生所述媒体序列文件,以及 如果所述确定表明媒体序列文件不存在,则允许确定媒体源文件的位置,以及执行促使提供所述通知的处理。
3.如权利要求1所述的方法,其中媒体源文件的位置是与媒体序列文件相对应的时间。
4.如权利要求1所述的方法,还包括: 响应于关于每一个媒体序列文件的请求,确定所请求的每一个媒体序列文件是否存在, 其中只有当媒体序列文件缺失的时候,所述确定媒体源文件的位置以及促使提供通知的处理才会被执行。
5.如权利要求1所述的方法,还包括: 检测远端媒体播放器的回放配置的变化; 基于检测到的变化,调整一个或多个用于产生媒体序列文件的配置参数。
6.如权利要求5所述的方法,还包括: 通过使用经过调整的一个或多个配置参数来促使产生所述媒体序列文件。
7.如权利要求1所述的方法,还包括: 在接收关于媒体序列文件的请求之前,从远端媒体播放器接收一个要求播放媒体源文件的媒体的初始请求; 响应于所述初始请求,执行一个初始设置处理,包括: 确定媒体源文件的位置; 确定用于存储与媒体源文件相关联的播放列表文件和媒体序列文件的一个或多个位置; 基于远端媒体播放器的回放配置信息来产生用于生成媒体序列文件的配置参数。
8.如权利要求7所述的方法,其中初始设置处理还包括:确定将要为媒体源文件产生的媒体序列文件的总数; 产生包含了媒体序列文件名称的播放列表文件, 其中媒体源文件不兼容远端媒体播放器, 其中播放列表文件和媒体序列文件兼容远端媒体播放器, 其中被请求的媒体序列文件是播放列表文件上列举的媒体序列文件之一。
9.如权利要求1所述的方法,还包括: 促使创建用于媒体源文件的播放列表文件; 促使确定将要为媒体源文件产生的媒体序列文件的总数; 在为媒体源文件创建所有媒体序列文件之前,允许远端媒体播放器开始播放至少一个媒体序列文件,以及允许前向或反向跳转操作。
10.如权利要求1所述的方法,还包括: 在接收关于媒体序列文件的请求之前,从远端媒体播放器接收一个要求播放媒体源文件的媒体的初始请求; 响应于所述初始请求, 确定将要为媒体源文件产生的媒体序列文件的总数; 产生包含了媒体序列文件名称以及媒体序列文件总数的播放列表文件; 促使将所述播放列表文件提供给远端媒体播放器, 其中确定媒体源文件位置的处理包括:基于播放列表文件中的信息来确定媒体源文件的位置。
11.如权利要求1所述的方法,还包括: 促使产生用于媒体源文件的媒体序列文件,以及促使将所述媒体序列文件提供给远端媒体播放器, 其中促使产生媒体序列文件以及促使提供媒体序列文件的操作是在与远端媒体播放器无关以及未修改远端媒体播放器的情况下执行的, 其中确定媒体源文件位置以及促使提供通知的操作是在与远端媒体播放器无关以及未修改远端媒体播放器的情况下执行的。
12.如权利要求1所述的方法,还包括: 响应于所述请求,将所述请求转换成时间,以及从媒体源文件的时间中产生媒体源文件; 跳过创建已经存在的媒体序列文件的处理。
13.如权利要求1所述的方法,还包括: 促使在使用HTTP直播流传输的网络上向远端媒体播放器提供媒体序列文件,其中所述网络包括互联网和无线网络中的一个或多个。
14.如权利要求2所述的方法,其中接收请求的处理是由请求处理机和媒体生成器控制器之一或是所有这二者执行的,其中确定媒体源文件位置的处理是由位置计算模块或是由位置计算模块和媒体生成器控制器模块执行的,其中促使提供通知的处理是由媒体生成器控制器和媒体生成模块之一或是所有这二者执行的,其中确定处理是由请求处理机执行的,其中所述请求处理机、媒体生成器控制器以及媒体生成模块位于远端媒体播放器的远端。
15.如权利要求6所述的方法,其中检测处理是由媒体生成器配置器和媒体生成器控制器之一或是所有这二者执行的,其中所述调整是由媒体生成器配置器执行的,其中促使产生媒体序列文件的处理是由媒体生成器配置器、媒体生成器控制器以及媒体生成模块中的至少一个或多个执行的,其中所述媒体生成器配置器,媒体生成器控制器以及媒体生成模块位于远端媒体播放器的远端。
16.如权利要求8所述的方法,其中接收初始请求的处理是由请求处理机、媒体生成器控制器和设置接口中的至少一个或多个执行的,其中确定位置以及确定一个或多个位置的处理是由设置接口执行的,其中生成配置参数的处理是由媒体生成器控制器执行的,其中确定总数的处理是由媒体生成模块和媒体生成器控制器中的至少一个执行的,其中生成播放列表文件的处理是由媒体生成模块执行的,其中请求处理机、媒体生成器控制器、设置接口、媒体生成器配置器以及媒体生成模块位于远端媒体播放器的远端。
17.如权利要求9所述的方法,其中所述允许包括:确定媒体序列文件是否存在,如果媒体序列文件不存在,则确定所述位置,其中所述允许是由位于远端媒体播放器的远端的请求处理机、媒体生成器控制器以及位置计算模块中的至少一些执行的。
18.如权利要求11所述的方法,其中促使产生媒体序列文件的处理是由媒体生成模块、媒体生成器控制器以及位置计算模块中的至少一些执行的,其中促使提供媒体序列文件的处理是由媒体生成模块、媒体生成器控制器以及请求处理机中的至少一些执行的。
19.如权利要求12所述的方法,其中转换请求的处理是由位置计算模块执行的,以及所述跳过的处理是由请求处理机执行的。
20.一种使用指令编码的机器可读存储介质,所述指令可以由一个或多个处理器运行,以便执行一个或多个操作,所述一个或多个操作包括: 在使用HTTP直播流传输的网络上,基于远端媒体播放器的前向或反向跳转请求来接收一个关于媒体序列文件的请求; 响应于该请求, 确定与媒体序列文件相对应的媒体源文件的位置,以便能够跳转到媒体源文件的所述位置,由此从媒体源文件中产生媒体序列文件, 其中媒体序列文件代表的是媒体源文件的多个顺序位置之一, 其中媒体序列文件的格式不同于媒体源文件的格式, 其中媒体序列文件的格式兼容远端媒体播放器。
21.如权利要求20所述的机器可读存储介质,其中所述一个或多个操作包括: 响应于该请求, 确定媒体序列文件是否存在,以免重新创建已有的媒体序列文件; 如果所述确定表明媒体序列文件存在,则允许取回所述媒体序列文件,以及提供取回的媒体序列文件,而不产生所述媒体序列文件,以及 如果所述确定表明媒体序列文件不存在,则允许确定媒体源文件的位置,以及执行促使提供所述通知的处理。
22.如权利要求20所述的机器可读存储介质,其中媒体源文件的位置是与媒体序列文件相对应的时间。
23.如权利要求20所述的机器可读存储介质,其中所述一个或多个操作包括:响应于关于每一个媒体序列文件的请求,确定所请求的每一个媒体序列文件是否存在, 其中只有当媒体序列文件缺失的时候,所述确定媒体源文件的位置以及促使提供通知的处理才会被执行。
24.如权利要求20所述的机器可读存储介质,其中所述一个或多个操作包括: 检测远端媒体播放器的回放配置的变化; 基于检测到的变化,调整一个或多个用于产生媒体序列文件的配置参数。
25.如权利要求24所述的机器可读存储介质,其中所述一个或多个操作包括: 基于经过调整的一个或多个配置参数来促使产生所述媒体序列文件。
26.如权利要求20所述的机器可读存储介质,其中所述一个或多个操作包括: 在接收关于媒体序列文件的请求之前,从远端媒体播放器接收一个要求播放媒体源文件的媒体的初始请求; 响应于所述初始请求,执行一个初始设置处理,包括: 确定媒体源文件的位置; 确定用于存储与媒体源文件相关联的播放列表文件和媒体序列文件的一个或多个位置; 基于远端媒体播放器的回放配置信息来产生用于生成媒体序列文件的配置参数。
27.如权利要求26所述的机器可读存储介质,其中初始设置处理还包括: 确定将要为媒体源文件产生的媒体序列文件的总数; 产生包含了媒体序列文件名称的播放列表文件, 其中媒体源文件不兼容远端媒体播放器, 其中播放列表文件和媒体序列文件兼容远端媒体播放器, 其中被请求的媒体序列文件是播放列表文件上列举的媒体序列文件之一。
28.如权利要求20所述的机器可读存储介质,其中所述一个或多个操作包括: 促使创建用于媒体源文件的播放列表文件; 促使确定将要为媒体源文件产生的媒体序列文件的总数; 在为媒体源文件创建所有媒体序列文件之前,允许远端媒体播放器开始播放至少一个媒体序列文件,以及允许前向或反向跳转操作。
29.如权利要求20所述的机器可读存储介质,其中所述一个或多个操作包括: 在接收关于媒体序列文件的请求之前,从远端媒体播放器接收一个要求播放媒体源文件的媒体的初始请求; 响应于所述初始请求, 确定将要为媒体源文件产生的媒体序列文件的总数; 产生包含了媒体序列文件名称以及媒体序列文件总数的播放列表文件; 促使将所述播放列表文件提供给远端媒体播放器, 其中确定媒体源文件位置的处理包括:基于播放列表文件中的信息来确定媒体源文件的位置。
30.如权利要求20所述的机器可读存储介质,其中所述一个或多个操作包括: 促使产生用于媒体源文件的媒体序列文件,以及促使将所述媒体序列文件提供给远端媒体播放器, 其中促使产生媒体序列文件以及促使提供媒体序列文件的操作是在与远端媒体播放器无关以及未修改远端媒体播放器的情况下执行的, 其中确定媒体源文件位置以及促使提供通知的操作是在与远端媒体播放器无关以及未修改远端媒体播放器的情况下执行的。
31.如权利要求20所述的机器可读存储介质,其中所述一个或多个操作包括: 响应于所述请求,将所述请求转换成时间,以及从媒体源文件的时间中产生媒体源文件; 跳过创建已经存在的媒体序列文件的处理。
32.如权利要求20所述的机器可读存储介质,其中所述一个或多个操作包括: 促使在使用HTTP直播流传输的网络上向远端媒体播放器提供媒体序列文件,其中所述网络包括互联网和无线网络中的一个或多个。
33.如权利要求28所述的机器可读存储介质,其中机器可读存储介质包括关于位于远端媒体播放器的远端的请求处 理机、媒体生成器控制器以及位置计算模块的代码, 其中所述允许包括:确定媒体序列文件是否存在,如果媒体序列文件不存在,则确定所述位置, 其中请求处理机、媒体生成器控制器以及位置计算模块中的至少一些位于远端媒体播放器的远端。
34.如权利要求20所述的机器可读存储介质,其中所述一个或多个操作包括:响应于请求,促使提供一个指示媒体序列已被产生的通知。
35.一种硬件设备,包括: 被配置成执行一个或多个操作的一个或多个模块,所述操作包括: 在使用HTTP直播流传输的网络上,基于远端媒体播放器的前向或反向跳转请求来接收一个关于媒体序列文件的请求; 响应于该请求, 确定与媒体序列文件相对应的媒体源文件的位置,以便能够跳转到媒体源文件的所述位置,由此从媒体源文件中产生媒体序列文件, 其中媒体序列文件代表的是媒体源文件的多个顺序位置之一, 其中媒体序列文件的格式不同于媒体源文件的格式, 其中媒体序列文件的格式兼容远端媒体播放器。
36.如权利要求35所述的硬件设备,其中所述一个或多个操作包括: 响应于该请求, 确定媒体序列文件是否存在,以免重新创建已有的媒体序列文件; 如果所述确定表明媒体序列文件存在,则允许取回所述媒体序列文件,以及提供取回的媒体序列文件,而不产生所述媒体序列文件,以及 如果所述确定表明媒体序列文件不存在,则允许确定媒体源文件的位置,以及执行促使提供所述通知的处理。
37.如权利要求35所述的硬件设备,其中媒体源文件的位置是与媒体序列文件相对应的时间。
38.如权利要求35所述的硬件设备,其中所述一个或多个操作包括: 响应于关于每一个媒体序列文件的请求,确定所请求的每一个媒体序列文件是否存在, 其中只有当媒体序列文件缺失的时候,所述确定媒体源文件的位置以及促使提供通知的处理才会被执行。
39.如权利要求35所述的硬件设备,其中所述一个或多个操作包括: 检测远端媒体播放器的回放配置的变化; 基于检测到的变化,调整一个或多个用于产生媒体序列文件的配置参数; 基于经过调整的一个或多个配置参数来促使产生所述媒体序列文件。
40.如权利要求35所述的硬件设备,其中所述一个或多个操作包括: 在接收关于媒体序列文件的请求之前,从远端媒体播放器接收一个要求播放媒体源文件的媒体的初始请求; 响应于所述初始请求,执行一个初始设置处理,包括: 确定媒体源文件的位置; 确定用于存储与媒体源文件相关联的播放列表文件和媒体序列文件的一个或多个位置; 基于远端媒体播放器的回放配置信息来产生用于生成媒体序列文件的配置参数, 其中初始设置处理还包括: 确定将要为媒体源文件产生的媒体序列文件的总数; 产生包含了媒体序列文件名称的播放列表文件, 其中媒体源文件不兼容远端媒体播放器, 其中播放列表文件和媒体序列文件兼容远端媒体播放器, 其中被请求的媒体序列文件是播放列表文件上列举的媒体序列文件之一。
41.如权利要求35所述的硬件设备,其中所述一个或多个操作包括: 促使创建用于媒体源文件的播放列表文件; 促使确定将要为媒体源文件产生的媒体序列文件的总数; 在为媒体源文件创建所有媒体序列文件之前,允许远端媒体播放器开始播放至少一个媒体序列文件,以及允许前向或反向跳转操作。
42.如权利要求35所述的硬件设备,其中所述一个或多个操作包括: 在接收关于媒体序列文件的请求之前,从远端媒体播放器接收一个要求播放媒体源文件的媒体的初始请求; 响应于所述初始请求, 确定将要为媒体源文件产生的媒体序列文件的总数; 产生包含了媒体序列文件名称以及媒体序列文件总数的播放列表文件; 促使将所述播放列表文件提供给远端媒体播放器, 其中确定媒体源文件位置的处理包括:基于播放列表文件中的信息来确定媒体源文件的位置。
43.如权利要求35所述的硬件设备,其中所述一个或多个操作包括: 促使产生用于媒体源文件的媒体序列文件,以及促使将所述媒体序列文件提供给远端媒体播放器, 其中促使产生媒体序列文件以及促使提供媒体序列文件的操作是在与远端媒体播放器无关以及未修改远端媒体播放器的情况下执行的, 其中确定媒体源文件位置以及促使提供通知的操作是在与远端媒体播放器无关以及未修改远端媒体播放器的情况下执行的。
44.如权利要求35所述的硬件设备,其中所述一个或多个操作包括: 响应于所述请求,将所述请求转换成时间,以及从媒体源文件的时间中产生媒体源文件; 跳过创建已经存在的媒体序列文件的处理。
45.如权利要求35所述的硬件设备,其中所述一个或多个操作包括: 促使在使用HTTP直播流传输的网络上向远端媒体播放器提供媒体序列文件,其中所述网络包括互联网和无线网络中的一个或多个。 45.如权利要求45所述的硬件设备,其中所述一个或多个操作包括:响应于请求,促使提供一个指示媒体序列已被产生的通知。
46.一种设备,包括: 用于在使用HTTP直播流传输的网络上,基于远端媒体播放器的前向或反向跳转请求来接收一个关于媒体序列文件的请求的装置; 用于对所述请求做出响应来确定与媒体序列文件相对应的媒体源文件的位置,以便能够跳转到媒体源文件的所述位置,由此从媒体源文件中产生媒体序列文件的装置, 其中媒体序列文件代表的是媒体源文件的多个顺序位置之一, 其中媒体序列文件的格式不同于媒体源文件的格式, 其中媒体序列文件的格式兼容远端媒体播放器。
47.如权利要求46所述的设备,包括: 用于对所述请求做出响应来确定媒体序列文件是否存在,以免重新创建已有的媒体序列文件的装置; 用于对所述请求做出响应而在所述确定表明媒体序列文件存在的情况下允许取回所述媒体序列文件,以及在不产生所述媒体序列文件的情况下提供取回的媒体序列文件的装置,以及 用于对所述请求做出响应而在所述确定表明媒体序列文件不存在的情况下,允许确定媒体源文件的位置以及执行促使提供所述通知的处理的装置。
48.如权利要求46所述的设备,其中媒体源文件的位置是与媒体序列文件相对应的时间。
49.如权利要求46所述的设备,包括: 用于响应关于每一个媒体序列文件的请求来确定所请求的每一个媒体序列文件是否存在的装置, 其中只有当媒体序列文件缺失的时候,用于确定媒体源文件的位置的装置以及用于促使提供通知的装置才是可执行的。
50.如权利要求46所述的设备,包括: 用于检测远端媒体播放器的回放配置的变化的装置;用于以检测到的变化为基础来调整一个或多个用于产生媒体序列文件的配置参数的装置; 基于经过调整的一个或多个配置参数来促使产生所述媒体序列文件的装置。
51.如权利要求60所述的设备,包括: 用于在接收关于媒体序列文件的请求之前,从远端媒体播放器接收一个要求播放媒体源文件的媒体的初始请求的装置; 用于响应于所述初始请求来执行一个初始设置处理的装置,包括: 用于确定媒体源文件位置的装置; 用于确定用于存储与媒体源文件相关联的播放列表文件和媒体序列文件的一个或多个位置的装置; 基于远端媒体播放器的回放配置信息来产生用于生成媒体序列文件的配置参数的装置, 其中用于执行初始设置处理的装置还包括: 用于确定将要为媒体源文件产生的媒体序列文件的总数的装置; 用于产生包含了媒体序列文件名称的播放列表文件的装置, 其中媒体源文件不兼容远端媒体播放器, 其中播放列表文件和媒体序列文件兼容远端媒体播放器, 其中被请求的媒体序列文件是播放列表文件上列举的媒体序列文件之一。
52.如权利要求46所述的设备,包括: 用于促使创建用于媒体源文件的播放列表文件的装置; 用于促使确定将要为媒体源文件产生的媒体序列文件的总数的装置; 用于在为媒体源文件创建所有媒体序列文件之前,允许远端媒体播放器开始播放至少一个媒体序列文件,以及允许前向或反向跳转操作的装置。
53.如权利要求40所述的设备,包括: 用于在接收关于媒体序列文件的请求之前,从远端媒体播放器接收一个要求播放媒体源文件的媒体的初始请求的装置; 用于对所述初始请求做出响应来确定将要为媒体源文件产生的媒体序列文件的总数的装置; 用于对所述初始请求做出响应来产生包含了媒体序列文件名称以及媒体序列文件总数的播放列表文件的装置; 用于对所述初始请求做出响应来促使将所述播放列表文件提供给远端媒体播放器的装置, 其中用于确定媒体源文件位置的装置包括:基于播放列表文件中的信息来确定媒体源文件的位置的装置。
54.如权利要求46所述的设备,包括: 用于促使产生用于媒体源文件的媒体序列文件的装置,以及用于促使将所述媒体序列文件提供给远端媒体播放器的装置, 其中用于促使产生媒体序列文件的装置以及用于促使提供媒体序列文件的操作的装置能在与远端媒体播放器无关以及未修改远端媒体播放器的情况下被执行,其中用于确定媒体源文件位置的装置以及用于促使提供通知的装置能在与远端媒体播放器无关以及未修改远端媒体播放器的情况下被执行。
55.如权利要求46所述的设备,包括: 用于对请求做出响应来将所述请求转换成时间以及从媒体源文件的时间中产生媒体源文件的装置; 用于跳过创建已经存在的媒体序列文件的处理的装置。
56.如权利要求46所述的设备,包括:用于对请求做出响应来促使提供一个指示媒体序列已被产生 的通知的装置。
【文档编号】G06F15/16GK103649937SQ201280034199
【公开日】2014年3月19日 申请日期:2012年1月9日 优先权日:2011年5月9日
【发明者】S·M·嫩达库马尔, D·E·巴雷托 申请人:韦斯技术有限公司