有间隙的及/或划分子段的自适应位率流的制作方法

未命名 07-20 阅读:94 评论:0

有间隙的及/或划分子段的自适应位率流
1.版权声明
2.本专利文献的公开的一部分含有受版权保护的材料。版权所有者不反对任何人对出现在专利商标局的专利文件或记录中的专利文献或专利公开进行传真复制,但无论如何将以其它方式保留所有版权权利。
技术领域
3.本公开大体上涉及用于实施媒体内容流的编码及解码的方法、系统及设备,且特定来说涉及用于实施实况自适应位率媒体内容流的编码及解码的方法、系统及设备。


背景技术:

4.传统上,流式传输及媒体内容服务使用自适应位率(“abr”)流来分发存储在网络或云中的媒体内容。abr允许不同媒体内容播放器取决于网络能力、播放器能力及/或类似者以不同格式、不同分辨率及/或不同位率从存储装置拉取媒体内容流。abr媒体内容流可包含8k、4k、高清(“hd”)、标清(“sd”)及/或类似者的格式或分辨率。abr媒体内容流的每一分辨率还可以不同位率分发。随着网络速度及/或网络业务的波动,媒体内容播放器可在abr媒体内容流的段边界处在abr媒体内容流的分辨率及/或位率之间进行切换。
5.然而,针对实况媒体内容流,用户可随时请求实况媒体内容流及/或请求在实况媒体内容频道之间进行切换。在请求实况媒体内容流或实况媒体内容频道之间的频道改变之后,媒体内容播放器可仅在实况abr媒体内容流的段边界处起始解码。当在与段边界不同的起始时间请求实况媒体内容流或实况媒体内容频道之间的频道改变时,媒体内容播放器仅具有两种选项:(1)等待实况abr媒体内容流的当前实况段完成且在实况abr媒体内容流的下一段起始边界处起始对下一段进行解码;或(2)从一开始就请求实况abr媒体内容流的当前段且在起始段边界处起始解码以立即显示实况abr媒体内容流。选项1引起滞后及/或延时,因为媒体内容播放器必须等待切换频道直到实况abr媒体内容流的下一段起始。选项2将滞后及/或延时引入到实况abr媒体内容流中,因为媒体内容播放器将显示在正被广播的实况媒体内容流之后的媒体内容流。
6.因此,需要用于媒体内容流的编码及解码的更稳健且可扩展的解决方案,且更特定来说,需要用于实施实况自适应位率媒体内容流的编码及解码的更稳健且可扩展的解决方案。


技术实现要素:

7.一方面,本公开涉及一种方法,其包括:使用计算系统将实况媒体内容流划分成一或多个段,每一段包括起始段边界及结束段边界;使用所述计算系统的一或多个主编码器将所述实况媒体内容流的所述一或多个段编码到一或多个主自适应位率流中;使用所述计算系统将所述实况媒体内容流的所述一或多个段划分成一或多个子段,其中每一子段小于所述一或多个段中的对应段的长度;及使用所述计算系统的一或多个副编码器将所述一或
多个子段编码到一或多个副自适应位率流中。
8.另一方面,本公开涉及一种设备,其包括:至少一个处理器;及非暂时性计算机可读媒体,其通信地耦合到所述至少一个处理器,所述非暂时性计算机可读媒体在其上存储有计算机软件,所述计算机软件包括一组指令,所述一组指令在由所述至少一个处理器执行时引起所述设备:接收对实况媒体内容的请求;确定一或多个主自适应位率流不在起始段边界处,其中所述一或多个主自适应位率流包括一或多个段,每一段包括所述起始段边界及结束段边界;基于确定所述一或多个主自适应位率流不在起始段边界处,向一或多个副编码器请求与所述实况媒体内容相关联的一或多个副自适应位率流,其中所述一或多个副自适应位率流包括一或多个子段,且其中每一子段小于所述一或多个段中的对应段的长度;及接收包括所述一或多个子段的所述一或多个副自适应位率流;及对与所述一或多个副自适应位率流相关联的所述实况媒体内容进行解码。
9.再一方面,本公开涉及一种系统,其包括:第一计算系统,其包括:一或多个主编码器;一或多个副编码器;至少一个第一处理器;及第一非暂时性计算机可读媒体,其通信地耦合到所述至少一个第一处理器,所述第一非暂时性计算机可读媒体在其上存储有计算机软件,所述计算机软件包括第一组指令,所述第一组指令在由所述至少一个第一处理器执行时引起所述第一计算系统:将实况媒体内容流划分成一或多个段,每一段包括起始段边界及结束段边界;使用所述一或多个主编码器将所述实况媒体内容流的所述一或多个段编码到一或多个主自适应位率流中;将所述实况媒体内容流的所述一或多个段划分成一或多个子段,其中每一子段小于所述一或多个段中的对应段的长度;及使用所述一或多个副编码器将所述一或多个子段编码到一或多个副自适应位率流中;及第二计算系统,其包括:至少一个第二处理器;及第二非暂时性计算机可读媒体,其通信地耦合到所述至少一个第二处理器,所述第二非暂时性计算机可读媒体在其上存储有计算机软件,所述计算机软件包括第二组指令,所述第二组指令在由所述至少一个第二处理器执行时引起所述第二计算系统:接收对实况频道上的实况媒体内容的请求;向所述一或多个主编码器请求与所述实况媒体内容相关联的一或多个主自适应位率流;确定所述一或多个主自适应位率流不在所述起始段边界处;基于确定所述一或多个主自适应位率流不在起始段边界处,向一或多个副编码器请求与所述实况媒体内容相关联的一或多个副自适应位率流;接收包括所述一或多个子段的所述一或多个副自适应位率流;及对与所述一或多个副自适应位率流相关联的所述实况媒体内容进行解码。
附图说明
10.通过参考说明书的剩余部分及附图,可实现对特定实施例的性质及优点的进一步理解,其中类似附图标记用来表示类似组件。在一些例子中,子标签与附图标记相关联以表示多个类似组件中的一者。当引用附图标记而没有指定存在子标签时,其意在是指所有此类多个类似组件。
11.图1是说明根据各个实施例的用于实施实况自适应位率媒体内容流的编码及解码的系统的示意图。
12.图2是说明根据各个实施例的用于实施一或多个自适应位率流的实施例的示意图。
13.图3是说明根据各个实施例的用于实施包括一或多个段的一或多个主自适应位率流及包括一或多个子段的一或多个副自适应位率流的实施例的示意图。
14.图4是说明根据各个实施例的用于实施包括一或多个段的一或多个主自适应位率流及包括一或多个子段的一或多个副自适应位率流的另一实施例的示意图。
15.图5是说明根据各个实施例的用于实施包括一或多个广告段的一或多个主自适应位率流及包括一或多个广告子段的一或多个副自适应位率流的又一实施例的示意图。
16.图6是说明根据各个实施例的用于实施实况自适应位率媒体内容流的编码的方法的流程图。
17.图7a到7d是说明根据各个实施例的用于实施实况自适应位率媒体内容流的解码的方法的流程图。
18.图8是说明根据各个实施例的实例性计算机或系统硬件架构的框图。
19.图9是说明可根据各个实施例使用的计算机、计算系统或系统硬件架构的联网系统的框图。
具体实施方式
20.综述
21.各个实施例提供用于实施媒体内容流的编码及解码的工具及技术,且更特定来说,涉及用于实施实况自适应位率媒体内容流的编码及解码的方法、系统及设备。
22.在各个实施例中,一或多个第一计算系统可将实况媒体内容流划分成一或多个段,每一段可包含起始段边界及结束段边界。所述一或多个第一计算系统可将所述实况媒体内容流的所述一或多个段编码到一或多个主自适应位率流中。所述一或多个第一计算系统还可将所述实况媒体内容流的所述一或多个段划分成一或多个子段。每一子段可小于所述一或多个段中的对应段的长度。所述一或多个第一计算系统可将所述一或多个子段编码到一或多个副自适应位率流中。
23.根据一些实施例,一或多个第二计算系统可接收对实况频道上的实况媒体内容的请求。所述一或多个第二计算系统可首先请求与所述实况媒体内容相关联的所述一或多个主自适应位率流。所述一或多个第二计算系统接着可确定所述一或多个主自适应位率流不在起始段边界处。基于确定所述一或多个主自适应位率流不在起始段边界处,所述一或多个第二计算系统可请求与所述实况媒体内容相关联的一或多个副自适应位率流。所述一或多个第二计算系统可接收包含所述一或多个子段的所述一或多个副自适应位率流且对与所述一或多个副自适应位率流相关联的所述实况媒体内容进行解码。
24.在一些情况下,所述一或多个子段可具有与所述一或多个段中的对应段的对应起始段边界不同的起始边界及与所述一或多个段中的所述对应段的对应结束段边界相同的结束边界。在一些情况下,所述一或多个子段可为连续子段、不连续子段、重叠子段及/或类似者。
25.可通过实施本文中所描述的实施例来实现若干优点。举例来说,当请求实况媒体内容流或实况媒体内容频道之间的频道改变时,可减少请求媒体内容时与显示媒体内容时之间的滞后或延时时间。另外,当请求实况媒体内容流或实况媒体内容频道之间的频道改变时,可减少实况媒体内容与经解码媒体内容之间的滞后或延时时间。总之,本公开中所描
述的所有实施例使实况频道的频道改变更快,而不会给实况媒体内容流的观众增加端到端延迟。此外,在一些实施例中,一或多个子段可以比一或多个段更低的分辨率、以更低的位率或以更低的效率或更旧的编解码器未加密地传输。关于附图更详细地描述用于实施媒体内容流的编码及解码的工具及技术及更特定来说用于实施实况自适应位率媒体内容流的编码及解码的方法、系统及设备的这些及其它方面。
26.以下详细描述进一步详细地说明几个实例性实施例以使所属领域的技术人员能够实践此类实施例。所描述实例是出于说明性目的而提供且并不意在限制本发明的范围。
27.在以下描述中,出于解释的目的,阐述众多特定细节以便提供对所描述实施例的透彻理解。然而,对于所属领域的技术人员来说将显而易见的是,本发明的其它实施例可在没有这些特定细节中的一些的情况下实践。在其它例子中,以框图形式展示某些结构及装置。本文中描述若干实施例,且虽然各种特征归于不同实施例,但应明白,关于一个实施例所描述的特征也可与其它实施例合并。然而,出于同样的原因,任何所描述实施例的单个特征或多个特征均不应被视为本发明的每个实施例必不可少的,因为本发明的其它实施例可省略此类特征。
28.除非另有指示,否则本文中用来表示数量、尺寸等等的所有所使用数字应被理解为在所有例子中均由术语“约”来修饰。在本技术案中,单数的使用包含复数,除非另有具体地陈述,且术语“及”及“或”的使用表示“及/或”,除非另有指示。此外,术语“包含”以及其它形式,例如“包含(includes)”及“经包含(included)”的使用应被视为非排他性的。而且,例如“元件”或“组件”的术语涵盖包括一个单元的元件及组件以及包括多于一个单元的元件及组件两者,除非另有具体地陈述
29.本文中所描述的各个实施例虽然体现(在一些情况下)软件产品、计算机执行方法及/或计算机系统,但表示对现存技术领域的切实、具体的改进,包含但不限于编码及解码技术、实况媒体内容分发技术、网络供应技术、网络配置技术及/或类似者。在其它方面,某些实施例可举例来说通过以下步骤改进用户设备或系统自身的运作(例如,编码及解码技术、实况媒体内容分发技术、网络供应技术、网络配置技术等):将实况媒体内容流划分成一或多个段,每一段包括起始段边界及结束段边界;使用一或多个主编码器将所述实况媒体内容流的所述一或多个段编码到一或多个主自适应位率流中;将所述实况媒体内容流的所述一或多个段划分成一或多个子段,每一子段小于所述一或多个段中的对应段的长度;使用一或多个副编码器将所述一或多个子段编码到一或多个副自适应位率流中;向所述一或多个主编码器请求与所述实况媒体内容相关联的一或多个主自适应位率流;确定所述一或多个主自适应位率流不在所述起始段边界处;基于确定所述一或多个主自适应位率流不在起始段边界处,向一或多个副编码器请求与所述实况媒体内容相关联的一或多个副自适应位率流;接收包括所述一或多个子段的所述一或多个副自适应位率流;对与所述一或多个副自适应位率流相关联的所述实况媒体内容进行解码;及/或类似步骤。
30.特定来说,就各个实施例中存在任何抽象概念来说,可由涉及特定新颖功能性(例如,步骤或操作)的装置、软件、系统及方法如本文中所描述那样实施那些概念,例如:将所述实况媒体内容流的所述一或多个段划分成一或多个子段,每一子段小于所述一或多个段中的对应段的长度;向所述一或多个主编码器请求与所述实况媒体内容相关联的一或多个主自适应位率流;确定所述一或多个主自适应位率流不在所述起始段边界处;基于确定所
述一或多个主自适应位率流不在起始段边界处,向一或多个副编码器请求与所述实况媒体内容相关联的一或多个副自适应位率流;接收包括所述一或多个子段的所述一或多个副自适应位率流;对与所述一或多个副自适应位率流相关联的所述实况媒体内容进行解码;及/或类似步骤,仅举几个实例,扩展到仅仅常规的计算机处理操作之外。这些功能性可在实施计算机系统之外产生有形结果,仅仅作为实例,包含以高效实时方式执行改进的实况媒体内容分发以减少请求实况媒体内容时的滞后及延时,以改进实况媒体内容的显示、改进对实况媒体内容频道改变的请求及/或类似者,其中的至少一些可由客户及/或服务提供商来观察或测量。
31.一方面,一种方法可包括使用计算系统将实况媒体内容流划分成一或多个段。在一些情况下,每一段可包含起始段边界及结束段边界。所述方法可通过以下步骤来继续:使用所述计算系统的一或多个主编码器将所述实况媒体内容流的所述一或多个段编码到一或多个主自适应位率流中;及使用所述计算系统将所述实况媒体内容流的所述一或多个段划分成一或多个子段。每一子段可小于所述一或多个段中的对应段的长度。所述方法另外可包含使用所述计算系统的一或多个副编码器将所述一或多个子段编码到一或多个副自适应位率流中。
32.在一些实施例中,所述一或多个主自适应位率流可为所述实况媒体内容流的一或多个连续段。在各个例子中,所述一或多个副自适应位率流可包含所述实况媒体内容流的一或多个连续子段或所述实况媒体内容流的一或多个不连续子段中的至少一者。
33.仅仅作为实例,在一些情况下,所述一或多个子段可具有与所述一或多个段中的对应段的对应起始段边界不同的起始边界及与所述一或多个段中的所述对应段的对应结束段边界相同的结束边界。在一些例子中,所述一或多个子段可为两个或更多个子段。所述两个或更多个子段中的每一子段可具有与下一子段的下一子段起始边界不同的子段起始边界。在各个实施例中,所述下一子段的所述下一子段起始边界可在前一子段的前一子段起始边界之后的预定时间量出现。替代地或另外,所述两个或更多个子段的每一子段可由所述一或多个副编码器中的单个编码器或单独编码器来编码。
34.在一些例子中,所述方法可进一步包含当所述一或多个子段到达与所述一或多个段中的所述对应段相同的所述结束边界时,使用所述计算系统释放所述一或多个副编码器。
35.根据一些实施例,所述一或多个子段可与所述一或多个段的所述结束段边界重叠,及/或所述一或多个子段可与所述一或多个段中的下一段的下一起始段边界重叠。在一些情况下,所述一或多个子段可未加密地传输。替代地或另外,所述一或多个子段可以比所述一或多个段更低的位率传输。
36.另一方面,一种设备可包括至少一个处理器及通信地耦合到所述至少一个处理器的非暂时性计算机可读媒体。所述非暂时性计算机可读媒体可在其上存储有计算机软件,所述计算机软件包括一组指令,所述一组指令在由所述至少一个处理器执行时引起所述设备:接收对实况频道上的实况媒体内容的请求;向一或多个主编码器请求与所述实况媒体内容相关联的一或多个主自适应位率流,所述一或多个主自适应位率流包含一或多个段,每一段包含起始段边界及结束段边界;确定所述一或多个主自适应位率流不在起始段边界处;基于确定所述一或多个主自适应位率流不在起始段边界处,向一或多个副编码器请求
与所述实况媒体内容相关联的一或多个副自适应位率流,所述一或多个副自适应位率流包含一或多个子段,且每一子段小于所述一或多个段中的对应段的长度;接收包含所述一或多个子段的所述一或多个副自适应位率流;及对与所述一或多个副自适应位率流相关联的所述实况媒体内容进行解码。
37.在一些实施例中,向一或多个副编码器对与所述实况频道相关联的所述一或多个副自适应位率流的所述请求进一步包含请求所述一或多个副自适应位率流中的副自适应位率流,所述副自适应位率流包括所述一或多个子段的子段,所述子段具有最接近所述实况媒体内容的实时显示时间的起始子段边界。
38.在各个例子中,所述一或多个子段包含与所述一或多个段中的对应段的对应起始段边界不同的起始边界及与所述一或多个段中的所述对应段的对应结束段边界相同的结束边界。在一些情况下,所述一组指令在由所述至少一个处理器执行时进一步引起所述设备:确定所述一或多个副自适应位率流的所述一或多个子段已到达与所述对应段的所述对应结束段边界相同的所述结束边界;基于确定所述一或多个副自适应位率流的所述一或多个子段已到达所述相同结束边界,从所述一或多个副自适应位率流中的至少一者切换到所述一或多个主自适应位率流中的至少一者;接收包括所述一或多个段的所述至少一个主自适应位率流;及对与所述至少一个主自适应位率流相关联的所述实况媒体内容进行解码。
39.在一些例子中,包括所述一或多个子段的所述一或多个副自适应位率流可以第一视频编解码器接收,且所述一或多个主自适应位率流可以与所述第一视频编解码器不同的第二视频编解码器接收。在一些情况下,所述一或多个主自适应位率流可以高效/较新的编解码器产生,而所述一或多个副自适应位率流可以较低效率的编解码器产生。所述设备能够在任何段或子段边界处在编解码器之间进行切换。
40.在一些情况下,所述一或多个子段可与所述一或多个段的所述结束段边界重叠,及/或所述一或多个子段可与所述一或多个段中的下一段的下一起始段边界重叠。当所述一或多个子段与所述一或多个段的所述结束段边界及/或所述一或多个段中的所述下一段的所述下一起始段边界重叠时,所述一组指令在由所述至少一个处理器执行时可进一步引起所述设备:丢弃所述一或多个子段的一或多个重叠子帧,其中所述一或多个重叠子帧在所述一或多个子段与所述一或多个段之间重叠。所述一或多个重叠子帧可在所述一或多个重叠子帧被解码之前被丢弃。
41.替代地或另外,当所述一或多个子段与所述一或多个段的所述结束段边界及/或所述一或多个段中的所述下一段的所述下一起始段边界重叠时,所述一组指令在由所述至少一个处理器执行时可进一步引起所述设备:接收包括所述一或多个段的至少一个主自适应位率流;接收包括所述一或多个子段的至少一个副自适应位率流;确定所述一或多个子段的一或多个重叠子帧是否在所述一或多个段的一或多个实时帧之后;基于确定所述一或多个子段的所述一或多个重叠子帧在所述一或多个段的所述一或多个实时帧之后,更快地解码及显示所述一或多个重叠子帧以赶上所述一或多个段的所述一或多个实时帧;及基于确定所述一或多个子段的所述一或多个重叠子帧已赶上所述一或多个段的所述一或多个实时帧,从所述一或多个副自适应位率流中的至少一者切换到所述一或多个主自适应位率流中的至少一者。
42.仅仅作为实例,在一些情况下,所述一组指令在由所述至少一个处理器执行时可
进一步引起所述设备:确定所述一或多个段的一或多个实时帧是否不可用;基于确定所述一或多个段的所述一或多个实时帧不可用,更慢地解码及显示所述一或多个子段的一或多个子帧中的至少一者直到所述一或多个实时帧可用,或重复所述一或多个子段的一或多个先前子帧直到所述一或多个实时帧可用;及基于确定所述一或多个实时帧可用,从所述一或多个副自适应位率流中的至少一者切换到所述一或多个主自适应位率流中的至少一者。
43.在各个实施例中,所述一或多个段可包含所述起始段边界处的报头。每一报头可指示一或多个额外可解码段边界,所述额外可解码段边界指示对应段内的其中所述设备可起始对所述实况媒体内容进行解码的一或多个额外位置。
44.另一方面,一种系统可包括第一计算系统,所述第一计算系统可包括:一或多个主编码器;一或多个副编码器;至少一个第一处理器;及第一非暂时性计算机可读媒体,其通信地耦合到所述至少一个第一处理器。所述第一非暂时性计算机可读媒体可在其上存储有计算机软件,所述计算机软件包括第一组指令,所述第一组指令在由所述至少一个第一处理器执行时引起所述第一计算系统:将实况媒体内容流划分成一或多个段,每一段包含起始段边界及结束段边界;使用所述一或多个主编码器将所述实况媒体内容流的所述一或多个段编码到一或多个主自适应位率流中;将所述实况媒体内容流的所述一或多个段划分成一或多个子段,每一子段小于所述一或多个段中的对应段的长度;及使用所述一或多个副编码器将所述一或多个子段编码到一或多个副自适应位率流中。
45.在一些情况下,所述系统可进一步包含第二计算系统,所述第二计算系统可包括:至少一个第二处理器;及第二非暂时性计算机可读媒体,其通信地耦合到所述至少一个第二处理器。所述第二非暂时性计算机可读媒体可在其上存储有计算机软件,所述计算机软件包括第二组指令,所述第二组指令在由所述至少一个第二处理器执行时引起所述第二计算系统:接收对实况频道上的实况媒体内容的请求;向一或多个主编码器请求与所述实况媒体内容相关联的一或多个主自适应位率流;确定所述一或多个主自适应位率流不在所述起始段边界处;基于确定所述一或多个主自适应位率流不在起始段边界处,向一或多个副编码器请求与所述实况媒体内容相关联的一或多个副自适应位率流;接收包括所述一或多个子段的所述一或多个副自适应位率流;及对与所述一或多个副自适应位率流相关联的所述实况媒体内容进行解码。
46.在不脱离本发明的范围的情况下,可对所论述实施例进行各种修改及添加。举例来说,虽然上文所描述的实施例涉及特定特征,但本发明的范围还包含具有不同特征组合的实施例及不包含所有上述特征的实施例。
47.特定实例性实施例
48.我们现在转向如由附图所说明的实施例。图1到9说明用于实施媒体内容流的编码及解码的方法、系统及设备及更特定来说用于实施实况自适应位率媒体内容流的编码及解码的方法、系统及设备的一些特征,如上文所提及。由图1到9所说明的方法、系统及设备是指包含各种组件及步骤的不同实施例的实例,所述组件及步骤可被视为替代方案或可在各个实施例中结合彼此使用。对图1到9中所展示的所说明方法、系统及设备的描述是出于说明的目的而提供且不应被视为限制不同实施例的范围。
49.参考附图,图1是说明根据各个实施例的用于实施实况自适应位率(“abr”)媒体内容流的编码及解码的系统100的示意图。尽管线及闪电束用来表示装置之间的通信耦合及/
或连接(例如,无线及/或有线连接),但一或多个中间装置(未展示)及/或网络(未展示)可位于图1的一或多个装置之间。
50.在图1的非限制性实施例中,系统100可包括(若干)第一计算系统105及所述(若干)第一计算系统105可与其通信地耦合的(若干)对应数据库110。在一些实施例中,系统100可进一步包含一或多个主编码器115及一或多个副编码器120及/或类似者。尽管(若干)数据库110、一或多个主编码器115及一或多个副编码器120被展示为在第一计算系统105外部,但各个实施例不限于此,且(若干)数据库110、一或多个主编码器115及/或一或多个副编码器120可安置在第一计算系统105内。另外,尽管一或多个主编码器115被指定为主且一或多个副编码器120被指定为副,但一或多个主编码器115也可用作一或多个副编码器120且一或多个副编码器120可用作一或多个主编码器115。此外,尽管一或多个主编码器115被指定为主且一或多个副编码器120被指定为副,但术语“主”及“副”仅仅用来区分编码器且并不意在指示对特定编码器的偏好、特定编码器被使用或被请求的量及/或类似者。在一些情况下,一或多个主编码器115及/或一或多个副编码器120可为编码器池的部分且能够在由一或多个用户请求实况媒体内容时或在当前正由(若干)媒体内容源125广播实况媒体内容时被启动。
51.在各个例子中,一或多个主编码器115中的每一者及/或一或多个副编码器120中的每一者可经设置以对不同实况媒体内容执行相同编码任务。在非限制性实例中,一或多个主编码器115中的每一者及/或一或多个副编码器120中的每一者可经设置以使用特定分辨率、特定位率、特定编解码器及/或类似者中的至少一者对不同实况媒体内容流进行编码。替代地,一或多个主编码器115中的每一者及/或一或多个副编码器120中的每一者可分离且对相同实况媒体内容执行一或多个不同编码任务或一系列不同编码任务。在一些例子中,实况媒体内容流可被分成一或多个不同分块或一或多个不同帧以供一或多个主编码器115及/或一或多个副编码器120进行并行编码。
52.在一些实施例中,第一计算系统105可包含但不限于第一处理器(未展示)及第一存储器(未展示)。在一些实施例中,第一计算系统105可包含但不限于用户装置、服务器计算机、网络上的服务器计算机、基于云的计算系统、网络上的基于云的计算系统或分布式计算系统及/或类似者中的一或多者。
53.系统100可进一步包括一或多个媒体内容源125a到125n(统称为媒体内容源125),所述媒体内容源中的每一者可通信地耦合到(若干)对应数据库130a到130n(统称为数据库130)。一或多个媒体内容源125可经由(若干)网络135、140及/或145(通过无线及/或有线通信)通信地耦合到第一计算系统105(或至少第一计算系统105的(若干)主编码器115及/或(若干)副编码器120)、(若干)主编码器115及/或(若干)副编码器120。媒体内容源125可包含但不限于用户装置、服务器计算机、网络上的服务器计算机、内容提供商计算机、网络上的内容提供商计算机、基于云的计算系统、网络上的基于云的计算系统或分布式计算系统及/或类似者中的一或多者。在一些情况下,可在一或多个内容源125内体现或含有第一计算系统105、一或多个主编码器115及/或一或多个副编码器120。
54.根据一些实施例,系统100可进一步包括(若干)第二计算系统、(若干)用户接口装置或(若干)用户装置150(统称为(若干)第二计算系统150)。(若干)第二计算系统可包含但不限于一或多个组件155。一或多个组件155可包含但不限于一或多个处理器160、存储器
(未展示)、一或多个解码器165、一或多个显示器170及一或多个扬声器175及/或类似者中的至少一者。在替代实施例中,(若干)第二计算系统150的组件155中的一或多者可被体现为可各自与一或多个其它组件进行通信的单独组件。例如,系统100可包含但不限于一或多个解码器165、一或多个显示器170、及/或一或多个扬声器175及/或类似者,及第二计算系统150(任选)及/或类似者,其中的每一者均可为独立或单独组件。在一些情况下,(若干)第二计算系统150可为但不限于机顶盒、电视、服务器计算机、台式计算机、膝上型计算机、平板计算机、智能电话、手机、移动电话、个人数字助理、遥控装置、游戏控制台或便携式游戏装置,或能够经由基于网络的门户、应用程序编程接口(“api”)、服务器、软件应用程序(“app”)或任何其它合适通信接口与(若干)第一计算系统105、主编码器115、副编码器120及/或内容源125进行通信的任何合适装置或类似者中的至少一者。
55.系统100可进一步包括(若干)网络135及140,所述网络可通信地耦合(若干)第一计算系统105、(若干)数据库110、(若干)主编码器115、(若干)副编码器120、(若干)内容源125、(若干)数据库130、第二计算系统150及/或(若干)第二计算系统150的组件及/或类似者中的至少一者。在各个例子中,(若干)第一计算系统105、(若干)数据库110、(若干)主编码器115、(若干)副编码器120、内容源125、(若干)第二计算系统150及/或类似者可在一或多个服务提供商网络或一或多个内容提供商网络内通信地耦合在一起。替代地或另外,第二计算系统150可位于局域网中。
56.(若干)网络135及/或140可为服务提供商网络、内容提供商网络、局域网及/或类似者。网络135及140中的每一者可包含但不限于光纤网络、以太网、token-ring
tm
网、广域网(“wan”)、无线广域网(“wwan”)、虚拟专用网(“vpn”)、因特网、内联网、外联网、公共交换电话网(“pstn”)、红外网络,在ieee 802.11协议组、所属领域中已知的bluetooth
tm
协议、所属领域中已知的z-wave协议、zigbee协议或所属领域中已知的其它ieee 802.15.4协议组及/或任何其它无线协议中的任一者下操作的无线网络,及/或这些及/或其它网络的任何组合。在特定实施例中,网络135或网络140可包含服务提供商(例如,因特网服务提供商(“isp”))的接入网络或类似者。
57.在一些实施例中,系统100还可包括一或多个电信中继系统145,所述电信中继系统可包含但不限于一或多个无线网络接口(例如,无线调制解调器、无线接入点及类似者)、一或多个塔、一或多个蜂窝塔、一或多个卫星及/或类似者。一或多个电信中继系统145可提供服务提供商(例如,(若干)第一计算系统105、(若干)主编码器115、(若干)副编码器120、(若干)内容源125等)与(若干)第二计算系统150之间的有线或无线通信。
58.在操作中,(若干)第一计算系统105、一或多个主编码器115及/或一或多个副编码器120可经由(若干)网络135、140及/或145从一或多个媒体内容源125(及/或(若干)对应数据库130)中的至少一者接收实况及/或实时媒体内容流。实况及/或实时媒体内容流表示实况内容实时或接近实时发生且与先前记录的“点播”内容不同的显示。在各个例子中,实况及/或实时媒体内容流可在实况内容发生时与在实况媒体流中显示实况内容时之间具有略微时间延迟(例如,0.5秒、1秒、2秒、5秒、10秒及/或类似时间延迟)。实况及/或实时媒体内容流可包含来自一或多个实况体育赛事、实况新闻广播、实况视频流、实况电视节目及/或类似者中的至少一者的实况视频内容。在一些情况下,实况媒体内容流可包含一或多个自适应位率(“abr”)流。所述abr流可包含但不限于8k、4k、高清(“hd”)、标清(“sd”)及/或类似
者的分辨率。所述abr流的每一分辨率还可以不同位率分发。在非限制性实例中,abr流可以5兆位每秒(“mbps”)、3mbps、1mbps、500千位每秒(“kbps”)及/或类似位率传输。
59.(若干)第一计算系统105、一或多个主编码器115及/或一或多个副编码器120可响应于来自(若干)第二计算系统150对实况媒体内容流的请求而接收实况媒体内容流。替代地,当实况媒体流正在发生或正在广播时,第一计算系统105、一或多个主编码器115及/或一或多个副编码器120可从一或多个媒体内容源125(及/或(若干)对应数据库130)中的至少一者接收实况媒体内容流,而不管(若干)第二计算系统150是否发送对实况媒体内容流的请求。
60.在一些例子中,(若干)第一计算系统105及一或多个主编码器115可从一或多个媒体内容源125(及/或(若干)对应数据库130)中的至少一者接收主实况媒体内容流及/或主实况abr媒体内容流,且(若干)第一计算系统105及一或多个副编码器120可从一或多个媒体内容源125中的至少一者接收副实况媒体内容流及/或副实况abr媒体内容流。尽管一或多个主abr流被指定为主且一或多个副abr流被指定为副,但术语“主”及“副”仅仅用来区分媒体内容流且并不意在指示对特定abr流的偏好、特定abr流被使用或被请求的量及/或类似者。替代地,在一些实施例中,第一计算系统105及/或一或多个主编码器115可将来自一或多个媒体内容源125(及/或(若干)对应数据库130)中的至少一者的实况媒体内容流转换成一或多个主实况abr媒体内容流,且第一计算系统105及/或一或多个副编码器120可将来自一或多个媒体内容源125(及/或(若干)对应数据库130)中的至少一者的实况媒体内容流及/或一或多个主实况abr媒体内容流转换成一或多个副实况abr媒体内容流。
61.在各个实施例中,(若干)第一计算系统105、一或多个主编码器115及/或一或多个媒体内容源125可将实况媒体内容流及/或一或多个主实况abr媒体内容流划分成一或多个段。每一段可基于预定时间量(例如,5秒、10秒、15秒及/或类似时间)划分成各种大小。每一段可包含起始段边界及结束段边界。每一段的起始段边界可指示其中可由第二计算系统150的(若干)解码器165对(若干)实况媒体内容流及/或一或多个主实况abr媒体内容流进行解码的起始时间。结束段边界可指示一或多个主实况abr媒体内容流的下一可解码起始段边界之前的段的结束。(若干)第一计算系统105、一或多个主编码器115及/或一或多个媒体内容源125接着可将实况媒体内容流的一或多个段编码到一或多个主实况abr媒体内容流中。
62.在一些例子中,(若干)第一计算系统105、一或多个副编码器120及/或一或多个媒体内容源125可将实况媒体内容流及/或一或多个主实况abr媒体内容流的一或多个段划分成一或多个子段。每一子段可基于预定时间量(例如,0.5秒、1秒、2秒、5秒、10秒、15秒及/或类似时间)划分成各种大小。每一子段可小于一或多个段中的对应段的长度。在非限制性实例中,如果子段在长度上是10秒,那么子段可为0.5秒、1秒、2秒、5秒、9秒等。每一子段可包含起始子段边界及结束子段边界。每一子段的起始子段边界可指示其中可由(若干)第二计算系统150的解码器165对(若干)实况媒体内容流及/或一或多个副实况abr媒体内容流进行解码的起始时间。结束子段边界可指示子段的结束。(若干)第一计算系统105、一或多个副编码器120及/或一或多个媒体内容源125接着可将(若干)实况媒体内容流及/或一或多个主实况abr媒体内容流的一或多个子段编码到一或多个副实况abr媒体内容流中。
63.在各种情况下,所述一或多个子段可具有与所述一或多个段中的对应段的对应起
始段边界不同的子段起始边界。替代地或另外,所述一或多个子段可具有与所述一或多个段中的所述对应段的对应结束段边界相同的结束子段边界。替代地,在一些实施例中,所述一或多个子段可与所述一或多个段的所述结束段边界重叠,及/或所述一或多个子段可与所述一或多个段中的所述下一段的所述下一起始段边界重叠。
64.每一副实况abr媒体内容流及/或每一副实况abr媒体内容流的每一子段可由一或多个副编码器120中的单个编码器或单独编码器来编码。换句话说,针对每一副实况abr媒体内容流,可使用对应的单独或单个编码器来对每一副实况abr媒体内容流进行编码。在一些情况下,当一或多个子段到达结束子段边界时,可将对一或多个副实况abr媒体内容流进行编码的一或多个副编码器释放回到编码器池。
65.在一些实施例中,一或多个子段可为相比于一或多个段未加密地传输、以较低分辨率传输、以较低位率传输或以较低效率或较旧编解码器传输中的至少一者。
66.另外,在操作中,(若干)第二计算系统150可接收用于接收及显示实况媒体内容流的请求。所述请求可为但不限于接收实况媒体内容流的初始请求(例如,开启显示装置、打开应用程序、选择特定电视表演或节目及/或类似者)或将频道改变到实况媒体内容流的频道改变请求,及/或类似请求。(若干)第二计算系统150可将对实况媒体内容流的请求发送到第一计算系统105、一或多个主编码器115、一或多个副编码器120及/或一或多个媒体内容源125。
67.(若干)第二计算系统150接下来可确定实况媒体内容及/或实况媒体内容的一或多个主实况abr媒体内容流不在起始段边界处。基于确定所述媒体内容及/或所述一或多个主实况abr流不在起始段边界处,(若干)第二计算系统150可向一或多个副编码器120请求含有与实况媒体内容相关联的一或多个子段的一或多个副实况abr流。向一或多个副编码器120请求一或多个副实况abr流可包含使用(若干)第二计算系统150请求一或多个副实况abr流中的副实况abr流,所述副实况abr流含有一或多个子段中的子段,所述子段具有最接近实况媒体内容的实时显示时间的起始子段边界。
68.通过向一或多个副编码器120请求一或多个副实况abr流,可减少请求媒体内容时与显示媒体内容时之间的滞后或延时时间,因为(若干)第二计算系统150无需等到主实况abr流的下一可解码段的下一起始段边界变得可用。另外,通过向一或多个副编码器120请求一或多个副实况abr流,可减少实况媒体内容与经解码媒体内容之间的滞后或延时时间,因为(若干)第二计算系统150可请求具有最接近实况媒体内容的实时显示时间的起始子段边界的一或多个子段,而不必从所述段的起始边界解码主实况abr流的一或多个段。
69.(若干)第二计算系统150接着可经由(若干)网络135、140及/或145从一或多个副编码器120接收包括一或多个子段的一或多个副实况abr流。在一些情况下,为了接收一或多个副实况abr流,一或多个副编码器120可将一或多个副实况abr流推送到(若干)第二计算系统150。替代地,为了接收一或多个副实况abr流,(若干)第二计算系统150可从一或多个副编码器120拉取一或多个副实况abr流。
70.(若干)第二计算系统接下来可使用(若干)解码器165对包括一或多个子段的一或多个副实况abr流进行解码,且使用(若干)显示器170显示与一或多个副实况abr流的一或多个子段相关的实况媒体内容。
71.在一些例子中,(若干)第二计算系统150可确定一或多个副实况abr流的一或多个
子段已到达与对应段的对应结束段边界相同的结束边界。基于确定一或多个副实况abr流的一或多个子段已到达相同结束边界,(若干)第二计算系统150可从自一或多个副编码器120接收一或多个副实况abr流中的至少一者切换到自一或多个主编码器115接收一或多个主实况abr流中的至少一者。(若干)第二计算系统150接着可从一或多个主编码器115接收包括一或多个段的至少一个主实况abr流,对与至少一个主实况abr流相关联的实况媒体内容进行解码,且显示与至少一个主实况abr流相关联的实况媒体内容。在一些情况下,为了接收一或多个主实况abr流,一或多个主编码器115可将一或多个主实况abr流推送到(若干)第二计算系统150。替代地,为了接收一或多个主实况abr流,(若干)第二计算系统150可从一或多个主编码器115拉取一或多个主实况abr流。
72.在一些情况下,一或多个副实况abr流可为与一或多个主实况abr流分开的一或多个专用边频道。在一些情况下,一或多个副abr流可为一或多个单播频道及/或多播频道,而一或多个主实况abr流可为一或多个多播频道。在非限制性实例中,如果主实况abr流不在段边界处,那么(若干)第二计算系统150可拉取可为一或多个专用多播或单播边频道的一或多个副abr流且在主实况多播abr流的起始段边界处切换到主实况多播abr流。
73.在一些情况下,与一或多个主实况abr流相比较,(若干)第二计算系统150可以不同编解码器拉取一或多个副实况abr流。在一些情况下,一或多个主自适应位率流可以较高效率/较新编解码器产生,而一或多个副自适应位率流可以较低效率/较旧编解码器产生。(若干)第二计算系统150可经配置以在任何段或子段边界处在编解码器之间进行切换。
74.下文将关于图2到7更详细地描述系统100(及其组件)的这些及其它功能。
75.图2是说明根据各个实施例的用于实施一或多个自适应位率流205的实施例的示意图。图2意在提供关于具有一或多个段210的一或多个自适应位率流205的实施方案的说明性观点且不限于此类功能性,而是可适用于上文关于图1等及下文关于图3到7等所描述的一些(如果不是所有)功能性。
76.图2描绘一或多个实况自适应位率(“abr”)流205a、205b及205c(统称为abr流205),其可在(若干)第一计算系统(例如,图1的(若干)第一计算系统105)、(若干)编码器(例如,图1的(若干)主编码器115及/或(若干)副编码器120)及/或内容源(例如,图1的内容源125)与(若干)第二计算系统(例如,图1的(若干)第二计算机系统、(若干)用户接口装置或(若干)用户装置150)及/或(若干)解码器(例如,图1的(若干)解码165)之间传输。随着实况媒体内容被广播,第一计算系统、(若干)编码器及/或内容源可将实况媒体内容流转换成一或多个实况abr流205。
77.在一些实施例中,一或多个实况abr流205可包含但不限于8k、4k、高清(“hd”)、标清(“sd”)及/或类似者的格式或分辨率。在非限制性实例中,实况abr流205a可为4k abr流,实况abr流205b可为hd abr流,且实况abr流205c可为sd abr流。一或多个实况abr流205的每一分辨率也可以不同位率分发。在非限制性实例中,实况abr流205可以5兆位每秒(“mbps”)、3mbps、1mbps、500千位每秒(“kbps”)及/或类似位率传输。每一实况abr流205也可与不同编解码器相关联。所述编解码器可包含但不限于h.263、h.264、h.265、h.266、mpeg-1、mpeg-2、vp8、vp9、aac、av1、mp3、mp4、theora及/或类似者。
78.在各种情况下,每一实况abr流205可被划分成一或多个段210a、210b、210c及210n(统称为段210)。每一段210可基于预定时间量(例如,5秒、10秒、15秒及/或类似时间)划分
成各种大小。每一段可包含起始段边界215及结束段边界220。在非限制性实例中,段210a可具有起始段边界215a及结束段边界220a。每一段210的起始段边界215可指示可由(若干)第二计算系统的(若干)解码器对(若干)实况媒体内容流及/或一或多个实况abr流205进行解码时的起始时间。结束段边界可指示所述段在下一可解码段的起始边界之前的结束时间。在非限制性实例中,段210a可具有起始时间t1及结束时间t2。
79.在一些例子中,每一段210可以初始i帧及/或报头225起始,所述初始i帧及/或报头指示可由(若干)第二计算系统的(若干)解码器对每一段210进行解码时的时间的起始及/或其中可由(若干)第二计算系统的(若干)解码器对每一段210进行解码的起始边界215。初始i帧及/或报头225还可指示每一段210内的一或多个额外时间及/或额外边界230a到230c,所述额外时间及/或额外边界指示其中每一段210可被解码的位置及/或其中(若干)第二计算系统可起始对每一段210进行解码的位置。在非限制性实例中,另外可在230a、230b及/或230c处对段210c进行解码。
80.在各个实施例中,(若干)第二计算系统可在任何段起始边界215处在一或多个abr流205之间转变或切换。举例来说,(若干)第二计算系统可在一或多个实况abr流205之间进行切换以改变一或多个实况abr流205的分辨率(例如,8k、4k、hd、sd等)、位率(例如,100kbps、500kbps、1mbps、5mbps、10mbps等)或编解码器(例如,h.263、h.264、h.265、h.266、mpeg-1、mpeg-2、vp8、vp9、aac、av1、mp3、mp4、theora等)。
81.在操作中,第一计算系统、一或多个主编码器及/或一或多个媒体内容源可将实况媒体内容流转换成一或多个实况abr流205。接着可将一或多个实况abr流205划分成一或多个段210。接下来,一或多个主编码器可对一或多个实况abr流205进行编码以用于传输到(若干)第二计算系统。
82.(若干)第二计算系统可请求一或多个实况abr流205且从(若干)第一计算系统、一或多个主编码器及/或一或多个媒体内容源接收一或多个实况abr流205。在从一或多个主编码器接收到一或多个实况abr流205时,(若干)第二计算系统的一或多个解码器可在一或多个段210的可解码起始边界215处解码及显示与一或多个实况abr流205相关联的实况媒体内容。
83.在一些情况下,(若干)第二计算系统的解码器可在任何段起始边界215处在一或多个abr流205之间进行切换。在各个实施例中,当(若干)第二计算系统确定改进的分辨率、位率或编解码器可用时,(若干)第二计算系统可在一或多个起始段边界215处在一或多个实况abr流205之间进行切换。
84.在非限制性实例中,如图2的线“a”处所展示,如果(若干)第二计算系统确定4k可用于特定实况媒体内容流,那么(若干)第二计算系统可在结束段边界220a、起始边界215b及时间t3在abr流205c(其可为sd abr流)的段210a到abr流205a(其可为4k abr流)的段210b之间进行切换。
85.在各个实施例中,(若干)第二计算系统的用户可在不处于段边界(例如,起始段边界215及/或结束段边界220)处的时间t
n1
及/或时间t
n2
请求实况媒体内容流。这个请求由图2中的线“b”或线“c”来表示。所述请求可为但不限于接收实况媒体内容流的初始请求(例如,开启显示装置、打开应用程序及/或类似者)或将频道改变为实况媒体内容流的频道改变请求及/或类似请求。
86.为了在实况媒体内容流不处于段边界处时服务于请求,(若干)第二计算系统可确定实况媒体内容及/或一或多个abr流205不在起始段边界215处。基于确定实况媒体内容及/或一或多个abr流205不在起始段边界215处,(若干)第二计算系统可向起始段边界215请求段210,从起始段边界215对段210进行解码,且使经解码段的显示快进及/或加速直到经解码abr流205赶上实时或实况媒体内容流。
87.在非限制性实例中,当(若干)第二计算系统的用户在不处于段边界(由线“b”表示)处的时间t
n1
请求实况媒体内容流时,(若干)第二计算系统可向起始段边界215b请求段210b,从起始段边界215b对段210b进行解码,且使经解码段210b的显示快进及/或加速直到经解码abr流205b赶上实时或实况媒体内容流。在一些情况下,经解码段210b的显示的快进及/或加速对于第二计算系统的用户来说可能是察觉不到的。abr流205b的快进及/或加速可为实况媒体内容流的1.25倍、2倍及/或类似者。通过使经解码段210b的显示快进及/或加速,实况频道的频道改变或请求可更快,而不会给实况媒体内容的观众增加端到端延迟。
88.替代地,为了在实况媒体内容流不处于段边界处时服务于请求,(若干)第二计算系统可确定实况媒体内容流及/或一或多个abr流205不在起始段边界215处。基于确定所述媒体内容及/或一或多个abr流205不在起始段边界215处,(若干)第二计算系统可向起始段边界215请求段210且处理段210的初始i帧及/或报头225以确定在一或多个段210内是否存在一或多个额外可解码边界230。基于确定在一或多个段210内存在一或多个额外可解码边界230,(若干)第二计算系统可确定最接近实时媒体内容流的额外可解码边界且在最接近的额外可解码边界处起始解码及显示所述段。在一些情况下,如果额外可解码边界仍然在实时媒体内容流之后,那么(若干)第二计算系统可使经解码段的显示快进及/或加速直到经解码abr流赶上实时媒体内容流。
89.在非限制性实例中,当(若干)第二计算系统、(若干)用户接口装置或(若干)用户装置及/或类似者的用户在不处于段边界(由线“c”表示)处的时间t
n2
请求实况媒体内容流时,(若干)第二计算系统可处理段210c的初始i帧及/或报头225以确定在段210c内是否存在一或多个额外可解码边界230a到230c。接下来,(若干)第二计算系统可确定最接近实时媒体内容流的额外可解码边界。在这个非限制性实例中,最接近的可解码边界是230b。基于确定最接近的可解码边界230b,(若干)第二计算系统可在最接近的额外可解码边界230b处起始对段210c进行解码及起始显示所述段210c。在一些情况下,如果额外可解码边界230b仍然在实时媒体内容流之后,那么(若干)第二计算系统可使经解码段210c的显示快进及/或加速直到经解码abr流205c赶上实时或实况媒体内容流。通过请求额外可解码边界230b,实况频道的频道改变或请求可更快,而不会给实况媒体内容的观众增加端到端延迟。
90.替代地或另外,下文关于图3到5更详细地描述用于在实况媒体内容流不处于段边界处时服务于请求的一或多种其它方法。
91.转向图3,图3是说明根据各个实施例的用于实施包括一或多个段310的一或多个主自适应位率流305及包括一或多个子段330的一或多个副自适应位率流325的实施例的示意图。图3意在提供关于一或多个主自适应位率流305及一或多个副自适应位率流325的实施方案的说明性观点且不限于此类功能性,而是可适用于上文关于图1及2等或下文关于图1到7等所描述的一些(如果不是所有)功能性。
92.图3描绘一或多个实况主自适应位率(“abr”)流305,其可在(若干)第一计算系统
(例如,图1的(若干)第一计算系统105)、(若干)编码器(例如,图1的(若干)主编码器115及/或(若干)副编码器120)及/或内容源(例如,图1的内容源125)与(若干)第二计算系统(例如,图1的(若干)第二计算系统、(若干)用户接口装置或(若干)用户装置150)及/或(若干)解码器(例如,图1的(若干)解码165)之间传输。随着实况媒体内容被广播,第一计算系统、(若干)编码器及/或内容源可将实况媒体内容流转换成一或多个主实况abr流305。在一些实施例中,一或多个主实况abr流305可包含但不限于8k、4k、高清(“hd”)、标清(“sd”)及/或类似者的分辨率。一或多个主实况abr流305的每一分辨率也可以不同位率分发。在一些实施例中,一或多个主实况abr流305可以5兆位每秒(“mbps”)、3mbps、1mbps、500千位每秒(“kbps”)及/或类似位率传输。每一主实况abr流305也可与编解码器相关联。编解码器可包含但不限于h.263、h.264、h.265、h.266、mpeg-1、mpeg-2、vp8、vp9、aac、av1、mp3、mp4、theora及/或类似者。
93.在各种情况下,每一实况主abr流可被划分成一或多个段310a、310b及310c(统称为段310)。每一段310可基于预定时间量(例如,5秒、10秒、15秒及/或类似时间)划分成各种大小。每一段310可包含起始段边界315及结束段边界320。每一段310的起始段边界315可指示可由(若干)第二计算系统的(若干)解码器对(若干)实况媒体内容流及/或一或多个主实况abr媒体内容流305进行解码时的起始时间。结束段边界320可指示所述段的结束时间。
94.图3进一步描绘一或多个实况副自适应位率(“abr”)流325a到325i(统称为实况副自适应位率(“abr”)流325),其可在(若干)第一计算系统、(若干)编码器及/或内容源与(若干)第二计算系统及/或(若干)解码器之间传输。随着实况媒体内容被广播,(若干)第一计算系统、(若干)编码器及/或内容源可将实况媒体内容流及/或一或多个主abr流305转换成一或多个副实况abr流325。尽管一或多个主abr流305被指定为主且一或多个副abr流325被指定为副,但术语“主”及“副”仅仅用来区分媒体内容流且并不意在指示对特定abr流的偏好、特定abr流被使用或请求的量及/或类似者。在一些实施例中,一或多个副实况abr流325可包含但不限于8k、4k、高清(“hd”)、标清(“sd”)及/或类似者的格式或分辨率。一或多个副abr流325的每一分辨率也可以不同位率分发。在一些实施例中,一或多个副abr流325可以5兆位每秒(“mbps”)、3mbps、1mbps、500千位每秒(“kbps”)及/或类似位率传输。每一副实况abr流325也可与编解码器相关联。编解码器可包含但不限于h.263、h.264、h.265、h.266、mpeg-1、mpeg-2、vp8、vp9、aac、av1、mp3、mp4、theora及/或类似者。
95.在各种情况下,每一实况副abr流325可被划分成一或多个子段330a到330i(统称为子段330)。每一副abr流325可含有仅一个子段330。替代地,每一副abr流325可含有两个或更多个子段330。一或多个子段330a到330i表示实施一或多个子段330的不同方式且不仅限于图3中所展示的实施方案。
96.每一子段330可小于一或多个段310中的对应段的长度。每一子段330可基于预定时间量(例如,1秒、2秒、5秒、9秒及/或类似时间)划分成各种大小。在非限制性实例中,如果段210a是10秒,那么子段330a可为8秒,子段330b可为5秒,且子段330c可为2秒及/或类似者。
97.在一些例子中,每一子段330可包含起始子段边界335及结束子段边界340。在非限制性实例中,子段330a可具有起始子段边界335a及结束子段边界340a。每一子段330的起始子段边界335可指示可由(若干)第二计算系统的(若干)解码器对(若干)实况媒体内容流
及/或一或多个副实况abr媒体内容流325进行解码时的起始时间。结束子段边界340可指示所述子段的结束时间。在非限制性实例中,子段330d可具有起始时间t
n1
及结束时间t3。
98.在各种情况下,一或多个子段330可具有与对应段310的对应起始段边界315不同的起始子段边界335,从而在起始子段边界335与对应段的对应起始段边界315之间形成一或多个间隙345。替代地或另外,一或多个子段330可具有与对应段310的对应结束段边界320相同的结束边界340。因为在起始子段边界335与对应段310的对应起始段边界315之间存在一或多个间隙345,所以一或多个副实况abr流325及/或一或多个子段330可能不是连续的实况媒体内容流,且一或多个副实况abr流325及/或一或多个子段330由一或多个副编码器未加密地传输。替代地或另外,一或多个副实况abr流325及/或一或多个子段330可以比一或多个主实况abr流305及/或一或多个段310更低的分辨率、更低的位率及/或更低的效率或更旧的编解码器传输。
99.在非限制性实例中,子段330a可具有与对应段310a的对应起始段边界315a不同的起始子段边界335a,从而在起始子段边界335a与对应段310a的对应起始段边界315a之间形成间隙345。替代地或另外,子段330a可具有与对应段310a的对应结束段边界320a相同的结束边界340a。
100.在一些情况下,下一子段的下一子段起始边界可在前一子段的前一子段起始边界之后的预定时间量出现。在非限制性实例中,下一子段330b的下一子段起始边界335b可在前一子段330a的前一子段起始边界335a之后的预定时间量出现。以这种方式,一或多个副abr流325的一或多个子段330可交错且允许更快地检索实况媒体内容流。
101.在一些例子中,每一子段330可以初始i帧及/或报头350起始,所述初始i帧及/或报头指示每一子段330可起始被(若干)第二计算系统的(若干)解码器解码时的时间起始及/或其中每一子段330可起始被(若干)第二计算系统的(若干)解码器解码的起始边界335。初始i帧及/或报头350还可指示每一子段330内的其中每一子段310可起始被解码的一或多个额外时间及/或额外边界355。在非限制性实例中,段330i另外可在额外边界355处起始被解码。
102.在一些例子中,一或多个实况副abr流325中的每一者可由单个或单独副编码器来编码。另外,在各种情况下,当一或多个实况副abr流325到达对应结束段边界320时,可将单个或单独副编码器释放回到编码器池直到一或多个新段及/或子段需要被编码。
103.在操作中,(若干)第一计算系统、一或多个主编码器及/或一或多个媒体内容源可将实况媒体内容流转换成一或多个主实况abr流305。接着可将一或多个主实况abr流305划分成一或多个段310。接下来,一或多个主编码器可对一或多个实况主abr流305进行编码以用于传输到(若干)第二计算系统。
104.(若干)第二计算系统可向(若干)第一计算系统、一或多个主编码器及/或一或多个媒体内容源请求一或多个主实况abr流305。在各个实施例中,(若干)第二计算系统的用户可在不处于段边界(例如,起始段边界315及/或结束段边界320)处的时间t
n1
请求实况媒体内容流。这个请求由图3中的线“a”来表示。
105.为了在实况媒体内容流及/或主实况abr流305不处于段边界315及/或320处时服务于请求,(若干)第二计算系统可确定所述媒体内容及/或一或多个主实况abr流305不在起始段边界315处。基于确定所述媒体内容及/或一或多个主实况abr流305不在起始段边界
处,(若干)第二计算系统可确定一或多个副编码器、(若干)第一计算系统及/或媒体内容源是否存在一或多个副abr流325可用。基于确定存在一或多个副abr流325可用,(若干)第二计算系统可确定最接近实时媒体内容流的一或多个可解码子段起始边界335及/或额外边界355。接下来,(若干)第二计算系统可解码及显示具有最接近实时媒体内容流的起始子段边界335及/或额外边界355的子段330。在一些情况下,如果副实况abr流325仍然在实时媒体内容流之后,那么(若干)第二计算系统可使经解码子段的显示快进及/或加速直到经解码副abr流赶上实时媒体内容流。通过请求一或多个副实况abr流325,实况频道的频道改变或请求可更快,而不会给实况媒体内容的观众增加端到端延迟。
106.在非限制性实例中,由图3的线“a”表示,(若干)第二计算系统可在起始时间t
n1
接收对实况媒体内容的请求且确定所述媒体内容及/或主实况abr流305不在起始段边界315b处。基于确定实况媒体内容流及/或主实况abr流305不在起始段边界315处,(若干)第二计算系统可确定一或多个副编码器、(若干)第一计算系统及/或媒体内容源是否存在一或多个副abr流325可用。基于确定存在一或多个副abr流325可用,(若干)第二计算系统可确定最接近实时媒体内容流的一或多个可解码子段起始边界335且解码及显示具有最接近实时媒体内容流的起始子段边界335d的子段330d。在一些情况下,如果副实况abr流325d仍然在实时媒体内容流之后,那么(若干)第二计算系统可使经解码子段330d的显示快进及/或加速直到经解码副abr流325d赶上实时媒体内容流。
107.在各个实施例中,一或多个解码器可在任何结束子段边界340处在一或多个副abr流325之间且在任何段起始边界315处在一或多个主abr流之间进行切换。在一些情况下,(若干)第二计算系统可确定一或多个子段330何时到达结束子段边界340且从一或多个副abr流325切换到一或多个主abr流305。当(若干)第二计算系统从一或多个副abr流325切换到一或多个主abr流305时,可将一或多个副编码器释放回到编码器池。
108.在非限制性实例中,由图3的线“b”表示,(若干)第二计算系统可确定子段330d何时到达结束子段边界340d。基于确定子段330d已到达结束子段边界340d,(若干)第二计算系统可从副abr流325d切换到主abr流305。以这种方式,副abr流325充当专用边频道直到(若干)第二计算系统可切换到主abr流305。
109.在一些情况下,一或多个副实况abr流325及/或一或多个子段330可由(若干)第二计算系统以比一或多个主实况abr流305及/或一或多个段310更低的分辨率、更低的位率及/或更低的效率或更旧的编解码器接收。在一些情况下,基于确定子段330d到达结束子段边界340d,(若干)第二计算系统可从具有较低分辨率、较低位率及/或较低效率或较旧编解码器的副abr流325d切换到具有较高分辨率、较高位率及/或较高效率或新编解码器的主abr流305。通过请求较低分辨率、较低位率及/或较低效率或较旧编解码器的副实况abr流,实况频道的频道改变或请求可更快,而不会给实况媒体内容的观众增加端到端延迟。
110.替代地或另外,下文关于图4更详细地描述用于在实况媒体内容流不处于段边界处时服务于请求的一或多种其它方法。
111.转向图4,图4是说明根据各个实施例的用于实施包括一或多个段410的一或多个主自适应位率流405及包括一或多个子段430的一或多个副自适应位率流425的实施例的示意图。图4意在提供关于一或多个主自适应位率流405及一或多个副自适应位率流425的实施方案的说明性观点且不限于此类功能性,而是可适用于上文关于图1、2、3等或下文关于
图5、6及7等所描述的一些(如果不是所有)功能性。
112.图4描绘一或多个实况主自适应位率(“abr”)流405,其可在(若干)第一计算系统(例如,图1的(若干)第一计算系统105)、(若干)编码器(例如,图1的(若干)主编码器115及/或(若干)副编码器120)及/或内容源(例如,图1的内容源125)与(若干)第二计算系统(例如,图1的(若干)第二计算系统、(若干)用户接口装置或(若干)用户装置150)及/或(若干)解码器(例如,图1的(若干)解码器165)之间传输。随着实况媒体内容被广播,第一计算系统、(若干)编码器及/或内容源(例如,图1的内容源125)可将实况媒体内容流转换成一或多个主abr流405。在一些实施例中,一或多个主abr流405可包含但不限于8k、4k、高清(“hd”)、标清(“sd”)及/或类似者的分辨率或格式。一或多个主abr流405的每一分辨率也可以不同位率及/或不同编解码器分发。
113.在各种情况下,每一主实况abr流405可被划分成一或多个段410a、410b及410c(统称为段410)。每一段410可基于预定时间量(例如,5秒、10秒、15秒及/或类似时间)划分成各种大小。每一段410可包含起始段边界415及结束段边界420。每一段410的起始段边界415可指示可由(若干)第二计算系统的(若干)解码器对(若干)实况媒体内容流及/或一或多个主实况abr媒体内容流405进行解码时的起始时间。结束段边界420可指示段410的结束时间。
114.图4进一步描绘一或多个实况副自适应位率(“abr”)流425a到425c,其可在(若干)第一计算系统(例如,图1的(若干)第一计算系统105)、(若干)编码器(例如,图1的(若干)主编码器115及/或(若干)副编码器120)及/或内容源(例如,图1的内容源125)与(若干)第二计算系统(例如,图1的(若干)第二计算系统、(若干)用户接口装置或(若干)用户装置150)及/或(若干)解码器(例如,图1的(若干)解码器165)之间传输。随着实况媒体内容被广播,第一计算系统、(若干)编码器、内容源可将实况媒体内容流及/或一或多个主abr流405转换成一或多个副abr流425。一或多个副abr流425可为与一或多个主abr流405分开的一或多个边频道。在一些实施例中,一或多个副abr流425可包含但不限于8k、4k、高清(“hd”)、标清(“sd”)及/或类似者的分辨率。一或多个副abr流425的每一分辨率也可以不同位率及/或不同编解码器分发。
115.在各种情况下,每一实况副abr流425可被划分成一或多个子段430a到430s(统称为子段430)。每一副abr流425可含有仅一个子段430。替代地,每一副abr流425可含有两个或更多个子段430。一或多个子段430a到430s表示实施一或多个子段430的不同方式且不仅限于图4中所展示的实施方案。
116.每一子段430可小于一或多个段410中的对应段的长度。每一子段430可基于预定时间量(例如,1秒、2秒、5秒、9秒及/或类似时间)划分成各种大小。
117.在一些例子中,每一子段430可包含起始子段边界435及结束子段边界440。每一子段430的起始子段边界435可指示可由(若干)第二计算系统的(若干)解码器对(若干)实况媒体内容流及/或一或多个副实况abr媒体内容流425进行解码时的起始时间。结束子段边界440可指示所述子段的结束时间。
118.在一些情况下,一或多个子段430可为均匀或不均匀地划分成一或多个段410的一或多个连续子段。在非限制性实例中,如果段410a是10秒,那么子段430a可为3.33秒,子段430b可为3.33秒,且子段430c可为3.33秒及/或类似者。在另一非限制性实例中,如果段410a是10秒,那么子段430a可为2秒,子段430b可为3秒,且子段430c可为5秒及/或类似者。
119.在一些例子中,一或多个子段430可具有起始子段边界435与对应段410的对应起始段边界415相同的第一子段及结束子段边界440与对应段410的对应结束段边界420相同的第二子段。在非限制性实例中,第一子段430a可具有与对应段410a的对应起始段边界415a相同的起始子段边界435a,且第二子段430c可具有与对应段410a的对应结束段边界420a相同的结束子段边界440c。
120.在一些例子中,一或多个连续子段可不具有起始子段边界435与对应段410的对应起始段边界415相同的第一子段及/或结束子段边界440与对应段410的对应结束段边界420相同的第二子段。在非限制性实例中,连续子段430h及430i可不具有起始子段边界435h与对应段410a的对应起始段边界415a相同的第一子段430h及/或结束子段边界440i与对应段410a的对应结束段边界420a相同的第二子段430i。
121.在一些例子中,一或多个连续子段可不具有起始子段边界435与对应段410的对应起始段边界415相同的第一子段且可具有结束子段边界440与对应段410的对应结束段边界420相同的第二子段。在非限制性实例中,一或多个连续子段可不具有起始子段边界435j与对应段410b的对应起始段边界415b相同的第一子段430j且可具有结束子段边界440k与对应段410b的对应结束段边界420b相同的第二子段430k。
122.在未展示的各个实施例中,一或多个连续子段可具有起始子段边界435与对应段410的对应起始段边界415相同的第一子段且可不具有结束子段边界440与对应段410的对应结束段边界420相同的第二子段。
123.替代地,在一些情况下,一或多个子段430可为位于起始段边界415与结束段边界420之间的一或多个不连续子段。在非限制性实例中,不连续子段430n及430o可位于段410a的起始段边界415a与结束段边界420a之间。在一些情况下,所述不连续子段中的至少一者可具有与对应段410相同的起始子段边界435及/或相同的结束子段边界440。在一些例子中,一或多个不连续子段可不具有起始子段边界435与对应段410的对应起始段边界415相同的第一子段及/或结束子段边界440与对应段410的对应结束段边界420相同的第二子段。
124.在一些例子中,一或多个不连续子段可不具有起始子段边界435与对应段410的对应起始段边界415相同的第一子段430且可具有结束子段边界440与对应段410的对应结束段边界420相同的第二子段。在非限制性实例中,一或多个不连续子段430p及430q可不具有起始子段边界435p与对应段410b的对应起始段边界415b相同的第一子段430p且可具有结束子段边界440q与对应段410b的对应结束段边界420b相同的第二子段430q。
125.替代地,在其它例子中,一或多个连续子段及/或不连续子段可与一或多个段410中的下一段的起始边界415或对应段的结束边界420重叠。在非限制性实例中,子段430f与段410b的结束段边界420b及/或下一段410c的起始段边界415重叠,子段430m与段410c的结束段边界420c及/或下一段的起始段边界(未展示)重叠,且子段430s与段410c的结束段边界420c及/或下一段的起始段边界(未展示)重叠。
126.在一些例子中,一或多个连续及/或不连续子段可由一或多个副编码器未加密地传输。替代地或另外,一或多个副实况abr流425及/或一或多个子段430可以比一或多个主实况abr流405及/或一或多个段410更低的分辨率、更低的位率及/或更低的效率或更旧的编解码器传输。
127.在一些例子中,一或多个副实况abr流425中的每一者可由单个或单独副编码器来
编码。另外,在各种情况下,当一或多个副实况abr流425到达对应结束子段边界440时,可将单个或单独副编码器释放回到编码器池直到一或多个新段及/或子段需要被编码。替代地或另外,一或多个连续子段可由同一编码器来编码。在非限制性实例中,子段430a到430g可由同一编码器来编码。
128.在操作中,(若干)第一计算系统、一或多个主编码器及/或一或多个媒体内容源可将实况媒体内容流转换成一或多个主实况abr流405。接着可将一或多个主实况abr流405划分成一或多个段410。接下来,一或多个主编码器可对一或多个实况主abr流405进行编码以用于传输到(若干)第二计算系统及/或(若干)解码器。
129.(若干)第二计算系统可向一或多个主编码器请求一或多个主实况abr流405。在各个实施例中,(若干)第二计算系统的用户可在不处于段边界(例如,起始段边界415及/或结束段边界420)处的时间请求实况媒体内容流。
130.为了在实况媒体内容流及/或主实况abr流405不在段边界415及/或420时服务于请求,(若干)第二计算系统可确定所述媒体内容及/或一或多个主实况abr流405不在起始段边界415处。基于确定所述媒体内容及/或一或多个主实况abr流405不在起始段边界处,(若干)第二计算系统可确定一或多个副编码器是否存在一或多个副abr流425可用。基于确定存在一或多个副abr流425可用,(若干)第二计算系统可确定最接近实时媒体内容流的一或多个可解码子段起始边界435且解码及显示具有最接近实时媒体内容流的起始子段边界435的子段430。在一些情况下,如果副实况abr流425仍然在实时媒体内容流之后,那么(若干)第二计算系统、(若干)用户接口装置或(若干)用户装置及/或类似者可使经解码子段的显示快进及/或加速直到经解码副abr流425赶上实时媒体内容流。
131.在非限制性实例中,由图4的线“a”表示,(若干)第二计算系统可在起始时间t
n1
接收对实况媒体内容的请求且确定所述媒体内容及/或主实况abr流405不在起始段边界415b处。基于确定所述媒体内容及/或主实况abr流405不在起始段边界415处,(若干)第二计算系统可确定一或多个副编码器是否存在一或多个副abr流425可用。基于确定存在一或多个副abr流425,(若干)第二计算系统可确定最接近实时媒体内容流的一或多个可解码子段起始边界435且解码及显示具有最接近实时媒体内容流的起始子段边界435e、435k及/或435q的子段430e、430k及/或430q。在一些情况下,如果副实况abr流425a仍然在实时媒体内容流之后,那么(若干)第二计算系统可使经解码子段430e的显示快进及/或加速直到经解码副abr流425a赶上实时媒体内容流。
132.在各个实施例中,一或多个解码器可在任何起始子段边界435及/或结束子段边界440处在一或多个副abr流425进行切换且在任何起始段边界415处在一或多个主abr流之间进行切换。在一些情况下,(若干)第二计算系统可确定一或多个子段430何时到达结束子段边界440且从一或多个副abr流425切换到一或多个主abr流405。在一些情况下,(若干)第二计算系统可确定一或多个子段430何时到达与对应段的起始段边界415相同的结束子段边界440且从一或多个副abr流425切换到一或多个主abr流405。当(若干)第二计算系统从一或多个副abr流425切换到一或多个主abr流405时,可将一或多个副编码器释放回到编码器池。
133.在一些例子中,一或多个子段430可与一或多个段410中的下一段的起始边界415或对应段的结束边界420重叠。基于确定一或多个子段430与下一段的起始边界415或对应
段的结束边界420重叠,(若干)第二计算系统可确定一或多个子段的一或多个重叠子帧与一或多个段中的下一段的一或多个段帧重叠。(若干)第二计算系统可基于与所述段及所述子段中的每一帧相关联的时间或时间戳来确定所述子段及所述段的一或多个帧重叠。在一些情况下,(若干)第二计算系统可丢弃一或多个子段430的一或多个重叠子帧及/或下一段的一或多个重叠段帧。一或多个重叠子帧及/或段帧可在一或多个重叠子帧及/或段帧被解码之前或之后被丢弃。
134.在非限制性实例中,子段430f可与下一段410c的起始边界415c或对应段410b的结束边界420b重叠。基于确定子段430f与下一段410c的起始段边界415c或对应段410b的结束段边界420b重叠,(若干)第二计算系统可确定子段430f的一或多个重叠子帧及/或下一段410c的重叠段帧。在一些情况下,解码器可丢弃子段430f的一或多个重叠子帧及/或下一段410c的一或多个重叠段帧。在一些情况下,解码器可基于确定子段430f的重叠子帧及/或下一段410c的一或多个重叠段帧是相同的而丢弃子段430f的一或多个重叠子帧及/或下一段410c的一或多个重叠段帧。
135.在一些情况下,在(若干)第二计算系统请求最接近实时媒体内容流的副实况abr流425之时或之后,(若干)第二计算系统还可在包括一或多个段410中的下一段的至少一个主实况abr流405变得可用时请求所述主实况abr流。替代地,(若干)第二计算系统可确定在一或多个子段430到达结束子段边界440之前或之时,包括一或多个段410中的下一段的至少一个主实况abr流405将不可用。
136.当包括一或多个段410中的下一段的至少一个主实况abr流405变得可用时,(若干)第二计算系统可接收包括一或多个段410中的下一段的至少一个主实况abr流405。在一些情况下,副实况abr流425可在结束子段边界440处且主实况abr流405可在起始段边界415处。在那些情况下,(若干)第二计算系统可在结束子段边界440及起始段边界415处从副实况abr流425切换到主实况abr流405。在非限制性实例中,(若干)第二计算系统当前可能正在显示子段430k且请求主实况abr流405的下一段410c。(若干)第二计算系统可在结束子段边界440k及起始段边界415c处从副abr流425b切换到主abr流405。
137.替代地,在其它情况下,当包括一或多个段410中的下一段的至少一个主实况abr流405变得可用时,(若干)第二计算系统可确定当前正被解码的一或多个子段430与一或多个段410中的下一段的起始边界415或对应段的结束边界420重叠。在一些情况下,一或多个副实况abr流425可与一或多个主实况abr流405同步(例如,同时在段410及子段430中流式传输相同帧)及/或去同步(例如,不同时在子段430及下一段510中流式传输相同帧),且(若干)第二计算系统可丢弃一或多个子段430的一或多个同步及/或去同步的重叠子帧或下一段的一或多个同步及/或去同步的重叠段帧并切换到至少一个主abr流405。
138.在一些实施例中,如果(若干)第二计算系统当前正在对子段430f进行解码,那么(若干)第二计算系统可确定子段430f的一或多个子帧是在下一段410c的一或多个段帧之前还是之后。基于确定子段430f在下一段410c的一或多个段帧之前,(若干)第二计算系统可使子段430f的显示减慢及/或使下一段410c的解码加速直到下一段410c赶上子段430f。一旦段410c赶上子段430f,解码器就可从副实况abr流425切换到主实况abr流405。
139.替代地,基于确定子段430f在下一段410c的一或多个段帧之后,(若干)第二计算系统可使子段430f的解码及显示加速直到子段430f赶上段410c。一旦子段430f赶上段
410c,(若干)第二计算系统就可从副实况abr流425切换到主实况abr流405。在一些情况下,(若干)第二计算系统可使子段430f的解码及显示加速直到子段430f到达结束子段边界440f,切换到下一段410c,且使下一段410c的解码及显示加速直到下一段410c赶上实时媒体内容。
140.替代地,当包括一或多个段410中的下一段的至少一个主实况abr流405不可用时,(若干)第二计算系统可使一或多个子段430的显示减慢直到下一段变得可用。替代地,(若干)第二计算系统可重复一或多个子段430的一或多个先前子帧直到下一段的一或多个实况或实时帧可用。在各个例子中,实况及/或实时帧在实况内容出现时与在实况媒体流中显示实况帧时之间可具有略微时间延迟(例如,0.5秒、1秒、2秒、5秒、10秒及/或类似时间)。在非限制性实例中,(若干)第二计算系统、(若干)用户接口装置或(若干)用户装置及/或类似者当前可能正在对子段430i进行解码。(若干)第二计算系统、(若干)用户接口装置或(若干)用户装置及/或类似者可确定在子段430i到达结束子段边界440i时段410b将不可用。基于确定在子段430i到达结束子段边界440i时那个段410b将不可用,(若干)第二计算系统可使子段430i的显示减慢直到段410b变得可用,或重复子段430i的一或多个先前子帧的显示直到下一段的一或多个实时帧可用。一旦段410b变得可用,解码器就可从副abr流425b切换到主abr流405。
141.替代地或另外,下文关于图5更详细地描述用于在包含广告的实况媒体内容流不在段边界处时服务于请求的一或多种其它方法。
142.转向图5,图5是说明根据各个实施例的用于在包括一或多个段510的一或多个主自适应位率流505及/或包括一或多个子段530的一或多个副自适应位率流525中实施广告的实施例500的示意图。图5意在提供关于一或多个主自适应位率流505及一或多个副自适应位率流525的实施方案的说明性观点且不限于此类功能性,而是可适用于上文关于图1、2、3、4等的或下文关于图6及7等所描述的一些(如果不是所有)功能性。
143.图5描绘一或多个实况主自适应位率(“abr”)流505,其可在(若干)第一计算系统(例如,图1的(若干)第一计算系统105)、(若干)编码器(例如,图1的(若干)主编码器115及/或(若干)副编码器120)及/或内容源(例如,图1的内容源125)与(若干)第二计算系统(例如,图1的(若干)第二计算系统、(若干)用户接口装置或(若干)用户装置150)及/或(若干)解码器(例如,图1的(若干)解码器165)之间传输。
144.在各种情况下,每一主实况abr流505可被划分成一或多个段510a、510b及510c(统称为段510)。在一些情况下,主abr流505可包含一或多个广告段510b。每一段510可包含起始段边界515及结束段边界520。在一些情况下,广告段510b的起始段边界515b可指示一或多个主实况abr流505及/或一或多个副实况abr流525中的一或多个广告的起始时间。
145.图5进一步描绘可在(若干)第一计算系统、(若干)编码器及/或内容源与(若干)第二计算系统及/或(若干)解码器之间传输的一或多个实况副自适应位率(“abr”)流525a及525b(统称为副实况abr流525)。随着实况媒体内容被广播,第一计算系统、(若干)编码器及/或内容源可将实况媒体内容流及/或一或多个主实况abr流505转换成一或多个副实况abr流525。一或多个副abr流525可为与一或多个主abr流505分开的一或多个边频道。
146.在各种情况下,每一实况副abr流525可被划分成一或多个子段530a到530n(统称为子段530)。在一些情况下,一或多个广告子段530d到530f及/或530k及530l及/或类似者
可为一或多个广告子段。每一子段530可小于一或多个段510的对应段的长度。
147.在一些例子中,每一子段530可包含起始子段边界535及结束子段边界540。每一子段530的起始子段边界535可指示可由(若干)第二计算系统的(若干)解码器对(若干)实况媒体内容流及/或一或多个副实况abr媒体内容流525进行解码时的起始时间。结束子段边界540可指示子段530的结束时间。
148.在操作中,第一计算系统、一或多个主编码器及/或一或多个媒体内容源可将实况媒体内容流转换成一或多个主实况abr流505。接着可将一或多个主实况abr流505划分成一或多个段510。接下来,一或多个主编码器可对一或多个实况主abr流505进行编码以用于传输到(若干)第二计算系统。在一些情况下,一或多个主编码器可将一或多个广告段510b编码到一或多个实况主abr流505中。替代地或另外,一或多个副编码器可将一或多个广告子段530d到530f及/或530k及530l编码到一或多个实况副abr流525中以用于传输到(若干)第二计算系统。
149.(若干)第二计算系统可向一或多个主编码器请求一或多个主实况abr流505。在各个实施例中,(若干)第二计算系统的用户可在不处于段边界(例如,起始段边界515及/或结束段边界520)处的时间请求实况媒体内容流。所述请求可为但不限于接收实况媒体内容流的初始请求(例如,开启显示装置、打开应用程序及/或类似者)或将频道改变为实况媒体内容流的频道改变请求及/或类似者。替代地,当主abr流505到达广告起始边界515b时,(若干)第二计算系统可向一或多个副abr流525请求一或多个广告子段530d到530f及/或530k及530l。一或多个广告子段530d到530f及/或530k及530l可为一或多个本地广告、一或多个国内广告、一或多个国际广告及/或类似者。
150.为了在实况媒体内容流及/或主实况abr流505不在段边界515及/或520处时及/或在主abr流505到达广告起始段边界515b时服务于请求,(若干)第二计算系统可确定一或多个副编码器是否存在一或多个副abr流525。基于确定存在一或多个副abr流525,(若干)第二计算系统可确定最接近实时媒体内容流的一或多个可解码子段起始边界535且解码及显示具有最接近实时媒体内容流的起始子段边界535的子段530。
151.在一些例子中,广告子段530f可与一或多个段510中的下一段510c的起始边界515c或对应段510b的结束边界520b重叠。基于确定广告子段530f与一或多个段510中的下一段510c的起始边界515c或对应段510b的结束边界520b重叠,(若干)第二计算系统可确定广告子段530f的一或多个重叠子帧与下一段510c的一或多个段帧重叠。(若干)第二计算系统可基于与每一段及子段相关联的时间或时间戳来确定广告子段530f及下一段510c的一或多个帧重叠。在一些情况下,(若干)第二计算系统可丢弃广告子段530f的一或多个重叠子帧及/或下一段510c的一或多个段帧。一或多个重叠子帧及/或段帧可在一或多个重叠子帧及/或段帧被解码之前或之后被丢弃。
152.在一些情况下,当(若干)第二计算系统请求最接近实时媒体内容流的副abr流525时,第二计算系统也可在包括一或多个段510中的下一段的至少一个主abr流505变得可用时请求所述主abr流。替代地,(若干)第二计算系统可确定在一或多个广告子段530d到530f及/或530k或530l到达结束子段边界540d到540f及/或540k或540l之前或之时包括一或多个段410中的下一段的至少一个主实况abr流505将不可用。
153.当包括一或多个段510中的下一段510c的至少一个主abr流505变得可用时,(若
干)第二计算系统可接收包括一或多个段510中的下一段510c的至少一个主abr流505。在一些情况下,副abr流525可在结束子段边界540处且主abr流505可在起始段边界515(未展示)处。在那些情况下,(若干)第二计算系统可在结束子段边界及起始段边界处从副abr流525切换到主abr流505。
154.替代地,在其它情况下,当包括一或多个段510中的下一段的至少一个主abr流505变得可用时,(若干)第二计算系统可确定当前正被解码的广告子段530f与一或多个段510中的下一段510c的起始边界515c或对应段510b的结束边界520b重叠。在一些情况下,一或多个副abr流525可与一或多个主abr流505同步(例如,同时在广告子段530f及下一段510c中流式传输相同帧)及/或去同步(例如,不同时在广告子段530f及下一段510c中流式传输相同帧)。(若干)第二计算系统可丢弃广告子段530f的一或多个同步及/或去同步的重叠子帧或下一段510c的一或多个同步及/或去同步的重叠段帧且切换到至少一个主abr流505。
155.替代地,(若干)第二计算系统可确定广告子段530f的一或多个子帧是否在下一段510c的一或多个段帧之后。换句话说,实况媒体内容可能是可用的,但广告尚未结束且仍然在广播。基于确定广告子段530f在下一段510c的一或多个段帧之后,(若干)第二计算系统可使广告子段530f的解码及显示加速直到广告子段530f赶上段510c。一旦广告子段530f赶上段510c,(若干)第二计算系统就可从副abr流525切换到主abr流505。在一些情况下,(若干)第二计算系统可使广告子段530f的解码及显示加速直到广告子段530f到达结束子段边界540f,切换到下一段510c,且使段510c的解码及显示加速直到下一段510c赶上实时媒体内容。
156.替代地,当包括一或多个段510中的下一段510c的至少一个主abr流505不可用时(例如,当广告在实况媒体内容可用之前完成时),(若干)第二计算系统可使一或多个子段的显示减慢直到下一段变得可用。替代地,(若干)第二计算系统可重复一或多个子段的一或多个先前子帧直到下一段的一或多个实时帧可用。在非限制性实例中,(若干)第二计算系统可能当前正在解码及显示广告子段5301。(若干)第二计算系统可确定在广告子段530l到达结束子段边界540l时段510c将不可用。基于确定在广告子段530l到达结束子段边界540l时那个段510c将不可用,(若干)第二计算系统可使广告子段530l的显示减慢直到下一段510c变得可用,或重复子段530l的一或多个先前子帧直到下一段510c的一或多个实时帧可用。一旦下一段510c变得可用,(若干)第二计算系统就可从副abr流525b切换到主abr流505。
157.图6是说明根据各个实施例的用于实施实况自适应位率媒体内容流的编码的方法600的流程图。虽然出于说明的目的而以某一顺序描绘及/或描述技术及程序,但应明白,在各个实施例的范围内可重新排序及/或省略某些程序。此外,虽然由图6所说明的方法600可分别由或以图1、2、3、4及5的系统、实例或实施例100、200、300、400及500(或其组件)来实施(且在一些情况下,下文关于所述系统、实例或实施例进行描述),但此类方法也可使用任何合适硬件(或软件)实施方案来实施。类似地,虽然图1、2、3、4及5的系统、实例或实施例100、200、300、400及500中的每一者(或其组件)可分别根据由图6所说明的方法600操作(例如,通过执行体现在计算机可读媒体上的指令),但图1、2、3、4及5的系统、实例或实施例100、200、300、400及500也可各自根据其它操作模式操作及/或执行其它合适程序。
158.在图6的非限制性实施例中,方法600可包括在任选框605处,使用计算系统从媒体
内容源接收实况媒体内容流。
159.在一些实施例中,计算系统可包含但不限于第一处理器及第一存储器。在一些实施例中,计算系统可包含但不限于用户装置、服务器计算机、网络上的服务器计算机、基于云的计算系统、网络上的基于云的计算系统或分布式计算系统及/或类似者中的一者。在各种情况下,媒体内容源可包含但不限于用户装置、服务器计算机、网络上的服务器计算机、内容提供商计算机、网络上的内容提供商计算机、基于云的计算系统、网络上的基于云的计算系统或分布式计算系统及/或类似者中的一者。实况媒体内容流可为实况视频内容流及/或类似者。
160.在框610处,方法600可包括使用计算系统将实况媒体内容流划分成一或多个段。每一段可基于预定时间量(例如,5秒、10秒、15秒及/或类似时间)划分成各种大小。每一段可包含指示可由(若干)第二计算系统的(若干)解码器对(若干)实况媒体内容流及/或一或多个主实况自适应位率(“abr”)媒体内容流进行解码时的起始时间的起始段边界及指示可解码段的结束时间的结束段边界。
161.在一些情况下,在框615处,方法600可包含使用计算系统将实况媒体内容流的一或多个段划分成一或多个子段。每一子段可小于一或多个段中的对应段的长度。每一子段可基于预定时间量(例如,1秒、2秒、5秒、9秒及/或类似时间)划分成各种大小。在非限制性实例中,如果对应段是10秒,那么第一子段可为8秒,第二子段可为5秒,且第三子段可为2秒及/或类似者。
162.在一些例子中,每一子段可包含起始子段边界及结束子段边界。在一些情况下,每一子段的起始子段边界可指示可由(若干)第二计算系统的(若干)解码器、(若干)用户接口装置或(若干)用户装置及/或类似者对子段、(若干)实况媒体内容流及/或一或多个副实况abr媒体内容流进行解码时的起始时间。结束子段边界可指示所述段的结束时间。
163.在各种情况下,一或多个子段可具有与对应段的对应起始段边界不同的起始子段边界,从而在起始子段边界与对应段的对应起始段边界之间形成一或多个间隙。替代地或另外,一或多个子段可具有与对应段的对应结束段边界相同的结束边界。因为在起始子段边界与对应段的对应起始段边界之间存在一或多个间隙,所以一或多个副实况自适应位率流及/或一或多个子段可能不是连续实况媒体内容流且一或多个副实况自适应位率流及/或一或多个子段由一或多个副编码器未加密地传输。替代地或另外,一或多个副实况自适应位率流及/或一或多个子段可以比一或多个主实况自适应位率流及/或一或多个段更低的位率传输。
164.在其它情况下,一或多个子段中的第一子段可具有与对应段的对应起始段边界相同的起始子段边界,且一或多个子段中的第二子段可具有与对应段的对应结束段边界相同的结束子段边界。替代地或另外,一或多个子段可具有与对应段的对应起始段边界相同的起始边界及与对应段的对应结束段边界不同的结束子段边界。
165.在一些例子中,一或多个子段中的第一子段可与对应段的对应起始段边界的起始子段边界重叠。
166.在框625处,方法600可包括使用计算系统的一或多个副编码器将实况媒体内容流的一或多个子段编码到一或多个副自适应位率流中。在各个实施例中,每一子段及/或副自适应位率流可由单个及单独副编码器来编码。当一或多个子段中的子段到达结束子段边界
时,方法600可在框630处通过使用计算系统释放一或多个副编码器来继续。在一些情况下,一或多个副编码器可释放回到编码器池。
167.图7a到7d(统称为图7)是说明根据各个实施例的用于实施实况自适应位率媒体内容流的解码的方法700的流程图。图7的方法700可独立于图6的方法600或结合其使用。图7a的方法700跟随表示为“a”的圆形标记继续到图7b。图7a的方法700替代地或另外跟随表示为“b”的圆形标记及/或表示为“c”的圆形标记继续到图7c或图7d。
168.方法700可在框702处通过利用计算系统接收对实况媒体内容的请求来开始。所述请求可为但不限于接收实况媒体内容流的初始请求(例如,开启显示装置、打开应用程序、选择特定电视表演或节目及/或类似者)或将频道改变为实况媒体内容流的频道改变请求及/或类似者。第二计算系统可将对实况媒体内容流的请求发送到一或多个主编码器、一或多个副编码器及/或一或多个媒体内容源。
169.在一些情况下,(若干)第二计算系统可包含但不限于一或多个处理器、存储器(未展示)、一或多个解码器、一或多个显示器及一或多个扬声器及/或类似者中的至少一者。在一些情况下,计算系统可为但不限于机顶盒、电视、服务器计算机、台式计算机、膝上型计算机、平板计算机、智能电话、蜂窝电话、移动电话、个人数字助理、遥控装置、游戏控制台或便携式游戏装置,或能够经由基于网络的门户、应用程序编程接口(“api”)、服务器、软件应用程序(“app”)或任何其它合适通信接口与一或多个编码器及/或内容源进行通信的任何合适装置或类似者中的至少一者。
170.方法700可继续到任选框704。在任选框704处,方法700可包括利用计算系统向一或多个主编码器请求与实况媒体内容相关联的一或多个主自适应位率流。一或多个主自适应位率流可包含一或多个段。每一段可基于预定时间量(例如,5秒、10秒、15秒及/或类似时间)划分成各种大小。每一段可包含指示可由(若干)第二计算系统的(若干)解码器对(若干)实况媒体内容流及/或一或多个主实况自适应位率(“abr”)媒体内容流进行解码时的起始时间的起始段边界及指示可解码段的结束时间的结束段边界。
171.在框706处,方法700可包含利用计算系统确定一或多个主自适应位率流不在起始段边界处。基于确定一或多个主自适应位率流不在起始段边界处,在框708处,方法700可包含利用计算系统向一或多个副编码器请求与实况媒体内容相关联的一或多个副自适应位率流。一或多个副自适应位率流可包含一或多个子段。
172.每一子段可小于一或多个段中的对应段的长度。每一子段可基于预定时间量(例如,1秒、2秒、5秒、9秒及/或类似时间)划分成各种大小。在非限制性实例中,如果对应段是10秒,那么第一子段可为8秒,第二子段可为5秒,且第三子段可为2秒及/或类似者。
173.在一些例子中,每一子段可包含起始子段边界及结束子段边界。在一些情况下,每一子段的起始子段边界可指示可由(若干)第二计算系统的(若干)解码器、(若干)用户接口装置或(若干)用户装置及/或类似者对子段、(若干)实况媒体内容流及/或一或多个副实况abr媒体内容流进行解码时的起始时间。结束子段边界可指示所述段的结束时间。
174.在各种情况下,一或多个子段可具有与对应段的对应起始段边界不同的起始子段边界,从而在起始子段边界与对应段的对应起始段边界之间形成一或多个间隙。替代地或另外,一或多个子段可具有与对应段的对应结束段边界相同的结束边界。因为在起始子段边界与对应段310的对应起始段边界之间存在一或多个间隙,所以一或多个副实况自适应
位率流及/或一或多个子段可能不是连续实况媒体内容流且一或多个副实况自适应位率流及/或一或多个子段由一或多个副编码器未加密地传输。替代地或另外,一或多个副实况自适应位率流及/或一或多个子段可以比一或多个主实况自适应位率流及/或一或多个段更低的位率传输。
175.在其它情况下,一或多个子段中的第一子段可具有与对应段的对应起始段边界相同的起始子段边界,且一或多个子段中的第二子段可具有与对应段的对应结束段边界相同的结束子段边界。替代地或另外,一或多个子段可具有与对应段的对应起始段边界相同的起始边界及与对应段的对应结束段边界不同的结束子段边界。
176.在一些例子中,一或多个子段中的第一子段可与对应段的对应起始段边界的起始子段边界重叠。
177.方法700可在框710处通过利用计算系统接收包括一或多个子段的一或多个副自适应位率流来继续。接下来,在框712处,方法700可利用计算系统对与一或多个副自适应位率流相关联的实况媒体内容进行解码。另外,在框714处,方法700可包含利用计算系统显示与一或多个副自适应位率流相关联的实况媒体内容。
178.方法700可通过跟随标记为“a”的圆形标记,继续到图7b中的任选框716、图7c中的任选框724或图7d中的任选框738中的一者处的过程。
179.转向图7b,在任选框716处(跟随图7a中标记为“a”的圆形标记),方法700可包括使用计算系统确定一或多个副自适应位率流的一或多个子段已到达与对应段的对应结束段边界相同的结束边界。在一些实施例中,基于确定一或多个副自适应位率流的一或多个子段已到达相同结束边界,在任选框718处,方法700可包含使用计算系统从一或多个副自适应位率流中的至少一者切换到一或多个主自适应位率流中的至少一者。在任选框720处,方法700可包括使用计算系统接收包括一或多个段的至少一个主自适应位率流。在任选框722处,方法700可包含使用计算系统解码及显示与至少一个主自适应位率流相关联的实况媒体内容。
180.参考图7c(跟随图7a中标记为“b”的圆形标记),在任选框724处,方法700可通过使用计算系统请求及接收主自适应位率流的下一段来继续。接下来,在框726处,方法700可使用计算系统确定一或多个子段是否与一或多个段中的下一段的下一起始段边界重叠。
181.基于确定一或多个子段与一或多个段中的下一段的下一起始段边界重叠,在任选框728处,方法700可包含使用计算系统从一或多个副自适应位率流中的至少一者切换到一或多个主自适应位率流中的至少一者。在一些情况下,计算系统可在一或多个主自适应位率流的下一段的起始段边界处从一或多个副自适应位率流中的至少一者切换到一或多个主自适应位率流中的至少一者。
182.在任选框730处,方法700可进一步包括使用计算系统丢弃与一或多个段中的下一段的下一起始段边界重叠的一或多个子段的一或多个重叠子帧。在一些情况下,一或多个重叠子帧可在一或多个重叠子帧被解码之前被丢弃。替代地,一或多个重叠子帧可在一或多个重叠子帧被解码之后被丢弃。
183.替代地或另外,基于确定一或多个子段与一或多个段中的下一段的下一起始段边界重叠,在任选框732处,方法700可使用计算系统确定一或多个子段的一或多个重叠子帧是否在下一段的一或多个实况或实时帧之后。在各个例子中,实况及/或实时帧在实况内容
出现时与在实况媒体流中显示实况帧时之间可具有略微时间延迟(例如,0.5秒、1秒、2秒、5秒、10秒及/或类似时间)。基于确定一或多个子段的一或多个重叠子帧在下一段的一或多个实时帧之后,在框734处,方法700可更快地解码及显示一或多个重叠子帧以赶上下一段的一或多个实时帧。另外,基于确定一或多个子段的一或多个重叠子帧已赶上下一段的一或多个实时帧,在任选框736处,方法700可从一或多个副自适应位率流切换到一或多个主自适应位率流。
184.替代地,参考图7d(跟随图7a中标记为“c”的圆形标记),在任选框738处,方法700可包括使用计算系统请求主自适应位率流的下一段。在任选框740处,方法700可包含使用计算系统确定主自适应位率流的一或多个段的一或多个实时帧是否不可用。基于确定一或多个段的一或多个实时帧不可用,在任选框742处,方法700可包含使用计算系统更慢地解码及/或显示一或多个子段的一或多个子帧中的至少一者直到一或多个实时帧可用,或重复一或多个子段的一或多个先前子帧直到一或多个实时帧可用。接下来,基于确定一或多个实时帧可用,在任选框744处,方法700可包含使用计算系统从一或多个副自适应位率流中的至少一者切换到一或多个主自适应位率流中的至少一者。
185.实例性系统及硬件实施方案
186.图8是说明根据各个实施例的实例性计算机或系统硬件架构的框图。图8提供服务提供商系统硬件的计算机系统800的一个实施例的示意图,所述计算机系统可执行由各种其它实施例提供的方法(如本文中所描述),及/或可执行计算机或硬件系统(例如,(若干)第一计算系统105、(若干)主编码器115、(若干)副编码器120、(若干)内容源125、(若干)第二计算系统150、(若干)解码器165、(若干)显示器170、(若干)扬声器175等)的功能(如上文所描述)。应注意,图8仅意图提供各种组件的概括说明,可视情况利用所述每一组件中的一或多者(或不利用任一者)。因此,图8概括地说明可如何以相对分开或相对更集成的方式实施个别系统元件。
187.计算机或硬件系统800—其可表示计算机或硬件系统的实施例(例如,(若干)第一计算系统105、(若干)主编码器115、(若干)副编码器120、(若干)内容源125、(若干)第二计算系统150、(若干)解码器165、(若干)显示器170、(若干)扬声器175等),如上文关于图1到7所描述—被展示为包括可经由总线805电耦合的硬件元件(或可以其它方式进行通信,视情况而定)。硬件元件可包含:一或多个处理器810,包含但不限于一或多个通用处理器及/或一或多个专用处理器(例如微处理器、数字信号处理芯片、图形加速处理器及/或类似者);一或多个输入装置815,其可包含但不限于鼠标、键盘及/或类似者;及一或多个输出装置820,其可包含但不限于显示装置、打印机及/或类似者。
188.计算机或硬件系统800可进一步包含一或多个存储装置825(及/或与其进行通信),所述存储装置可包括但不限于本地及/或网络可存取存储装置,及/或可包含但不限于磁盘驱动器、驱动器阵列、光学存储装置、固态存储装置,例如随机存取存储器(“ram”)及/或只读存储器(“rom”),其可为可编程的、可快闪更新的及/或类似者。此类存储装置可经配置以实施任何适当数据存储,包含但不限于各种文件系统、数据库结构及/或类似者。
189.计算机或硬件系统800还可包含通信子系统830,所述通信子系统可包含但不限于调制解调器、网卡(无线或有线)、红外通信装置、无线通信装置及/或芯片组(例如bluetooth
tm
装置、802.11装置、wifi装置、wimax装置、wwan装置、蜂窝通信设施等)及/或类
似者。通信子系统830可容许与网络(例如下文所描述的网络,举一个实例)与其它计算机或硬件系统及/或与本文中所描述的任何其它装置交换数据。在许多实施例中,计算机或硬件系统800将进一步包括工作存储器835,所述工作存储器可包含ram或rom装置,如上文所描述。
190.计算机或硬件系统800还可包括软件元件,所述软件元件被展示为当前位于工作存储器835内,包含操作系统840、装置驱动程序、可执行库及/或其它代码,例如一或多个应用程序845,其可包括由各个实施例(包含但不限于管理程序、vm及类似者)提供的计算机程序,及/或可被设计为实施由其它实施例提供的方法及/或配置系统,如本文中所描述。仅仅作为实例,关于上文所论述的(若干)方法描述的一或多个程序可被实施为可由计算机(及/或计算机内的处理器)执行的代码及/或指令;接着,一方面,此类代码及/或指令可用来配置及/或调适通用计算机(或其它装置)以根据所描述方法执行一或多个操作。
191.一组这些指令及/或代码可编码及/或存储在非暂时性计算机可读存储媒体,例如上文所描述的(若干)存储装置825上。在一些情况下,所述存储媒体可并入在计算机系统,例如系统800内。在其它实施例中,所述存储媒体可与计算机系统分开(即,可移除媒体,例如光碟等),及/或提供在安装包中,使得所述存储媒体可用来利用存储在其上的指令/代码编程、配置及/或调适通用计算机。这些指令可采取可由计算机或硬件系统800执行的可执行代码的形式,及/或可采取源代码及/或可安装代码的形式,所述指令在编译及/或安装在计算机或硬件系统800上时(例如,使用多种普遍可用的编译器、安装程序、压缩/解压缩实用程序等中的任一者)接着采取可执行代码的形式。
192.对所属领域的技术人员将显而易见的是,可根据特定要求进行重大变动。举例来说,还可使用定制的硬件(例如可编程逻辑控制器、现场可编程门阵列、专用集成电路及/或类似者),及/或可在硬件、软件(包含便携式软件,例如小应用程序等)中实施特定元件或两者。此外,可采用到例如网络输入/输出装置的其它计算装置的连接。
193.如上文所提及,一方面,一些实施例可采用计算机或硬件系统(例如计算机或硬件系统800)来执行根据本发明的各个实施例的方法。根据一组实施例,由计算机或硬件系统800响应于处理器810执行工作存储器835中所含的一或多个指令(其可并入到操作系统840及/或其它代码,例如应用程序845中)的一或多个序列而执行此类方法的一些或所有程序。此类指令可从另一计算机可读媒体,例如(若干)存储装置825中的一或多者读取到工作存储器835中。仅仅作为实例,工作存储器835中所含的指令序列的执行可引起(若干)处理器810执行本文中所描述的方法的一或多个程序。
194.如本文中所使用的术语“机器可读媒体”及“计算机可读媒体”是指参与提供引起机器以特定方式操作的数据的任何媒体。在使用计算机或硬件系统800实施的实施例中,各种计算机可读媒体可参与向(若干)处理器810提供指令/代码以供执行及/或可用来存储及/或携带此类指令/代码(例如,作为信号)。在许多实施方案中,计算机可读媒体是非暂时性物理及/或有形存储媒体。在一些实施例中,计算机可读媒体可采取多种形式,包含但不限于非易失性媒体、易失性媒体或类似者。非易失性媒体包含举例来说光盘及/或磁盘,例如(若干)存储装置825。易失性媒体包含但不限于动态存储器,例如工作存储器835。在一些替代实施例中,计算机可读媒体可采取传输媒体的形式,所述传输媒体包含但不限于同轴电缆、铜线及光纤,包含包括总线805的电线,以及通信子系统830的各种组件(及/或通信子
系统830通过其提供与其它装置的通信的媒体)。在一组替代实施例中,传输媒体还可采用波的形式(包含但不限于无线电波、声波及/或光波,例如在无线电波及红外数据通信期间产生的波)。
195.举例来说,常见的物理及/或有形计算机可读媒体形式包含软盘、软磁盘、硬盘、磁带或任何其它磁性媒体、cd-rom、任何其它光学媒体、穿孔卡、纸带、具有孔图案的任何其它物理媒体、ram、prom及eprom、flash-eprom、任何其它存储器芯片或磁带盒、如后文中所描述的载波或计算机可从其读取指令及/或代码的任何其它媒体。
196.各种形式的计算机可读媒体可参与将一或多个指令的一或多个序列携带到(若干)处理器810以供执行。仅仅作为实例,所述指令最初可携带在远程计算机的磁盘及/或光碟上。远程计算机可将所述指令加载到其动态存储器中且通过传输媒体将所述指令作为信号发送以由计算机或硬件系统800接收及/或执行。根据本发明的各个实施例,可呈电磁信号、声学信号、光学信号及/或类似者的形式的这些信号是指令可编码在其上的载波的所有实例。
197.通信子系统830(及/或其组件)通常将接收信号,且总线805接着可将信号(及/或由信号携带的数据、指令等)携带到工作存储器835,(若干)处理器805从所述工作存储器检索及执行指令。由工作存储器835接收的指令可任选地在由(若干)处理器810执行之前或之后存储在存储装置825上。
198.如上文所述,一组实施例包括用于实施媒体内容流的编码及解码的方法及系统,且更特定来说,用于实施实况自适应位率媒体内容流的编码及解码的方法、系统及设备。图9说明可根据一组实施例使用的系统900的示意图。系统900可包含一或多个用户计算机、用户装置或客户装置905。用户计算机、用户装置或客户装置905可为运行多种商业上可获得的unix
tm
或类unix操作系统中的任一者的通用个人计算机(仅仅作为实例,包含运行任何适当操作系统的台式计算机、平板计算机、膝上型计算机、手持式计算机及类似者,其中的若干者可从例如苹果、微软公司及类似者的供应商获得)、云计算装置、(若干)服务器及/或(若干)工作站计算机。用户计算机、用户装置或客户装置905还可具有多种应用程序中的任一者,包含经配置以执行由各个实施例提供的方法的一或多个应用程序(举例来说,如上文所描述)以及一或多个办公应用程序、数据库客户端及/或服务器应用程序、及/或网络浏览器应用程序。替代地,用户计算机、用户装置或客户装置905可为能够经由网络(例如,下文所描述的(若干)网络910)进行通信及/或能够显示及导航网页或其它类型的电子文献的任何其它电子装置,例如瘦客户端计算机、启用因特网的移动电话及/或个人数字助理。尽管实例性系统900被展示为具有两个用户计算机、用户装置或客户装置905,但可支持任何数目个用户计算机、用户装置或客户装置。
199.某些实施例在联网环境中操作,所述联网环境可包含(若干)网络910。(若干)网络910可为所属领域的技术人员熟悉的任何类型的网络,其可支持使用各种商业上可获得(及/或免费或专有)协议中的任一者的数据通信,包含但不限于tcp/ip、sna
tm
、ipx
tm
、appletalk
tm
及类似者。仅仅作为实例,(若干)网络910(与图1的(若干)网络135、140及/或145或类似者类似)可各自包含局域网(“lan”),包含但不限于光纤网络、以太网、token-ring
tm
网及/或类似者;广域网(“wan”);无线广域网(“wwan”);虚拟网络,例如虚拟专用网(“vpn”);因特网;内联网;外联网;公共交换电话网络(“pstn”);红外网络;无线网络,包含
但不限于在ieee 802.11协议组、所属领域中已知的bluetooth
tm
协议及/或任何其它无线协议中的任一者下操作的网络;及/或这些及/或其它网络的任何组合。在特定实施例中,所述网络可包含服务提供商(例如,因特网服务提供商(“isp”))的接入网络。在另一实施例中,所述网络可包含服务提供商的核心网络及/或因特网。
200.实施例还可包含一或多个服务器计算机915。服务器计算机915中的每一者可配置有操作系统,包含但不限于上文所论述的操作系统中的任一者,以及任何商业上(或免费)可获得的服务器操作系统。服务器中的每一者915还可运行一或多个应用程序,所述应用程序可经配置以向一或多个客户端905及/或其它服务器915提供服务。
201.仅仅作为实例,服务器915中的一者可为数据服务器、网络服务器、(若干)云计算装置或类似者,如上文所描述。数据服务器可包含网络服务器(或与其进行通信),仅仅作为实例,所述网络服务器可用来处理向用户计算机905对网页或其它电子文献的请求。网络服务器还可运行多种服务器应用程序,包含http服务器、ftp服务器、cgi服务器、数据库服务器、java服务器及类似者。在本发明的一些实施例中,网络服务器可经配置以提供可在用户计算机905中的一或多者上的网络浏览器内操作以执行本发明的方法的网页。
202.在一些实施例中,服务器计算机915可包含一或多个应用程序服务器,所述应用程序服务器可配置有可由在客户端计算机905及/或其它服务器915中的一或多者上运行的客户端存取的一或多个应用程序。仅仅作为实例,(若干)服务器915可为能够响应于用户计算机905及/或其它服务器915,包含但不限于网络应用程序(其在一些情况下可经配置以执行由各个实施例提供的方法)而执行程序或脚本的一或多个通用计算机。仅仅作为实例,网络应用程序可被实施为以任何合适编程语言(例如java
tm
、c、c#
tm
或c++)及/或任何脚本语言(例如perl、python或tcl)以及任何编程及/或脚本语言的组合编写的一或多个脚本或程序。(若干)应用程序服务器还可包含数据库服务器,包含但不限于可从oracle
tm
、microsoft
tm
、sybase
tm
、ibm
tm
及类似者商业上获得的数据库服务器,所述数据库服务器可处理来自在用户计算机、用户装置或客户装置905及/或另一服务器915上运行的客户端的请求(取决于配置,包含专用数据库客户端、api客户端、网络浏览器等)。在一些实施例中,应用程序服务器可执行用于实施媒体内容流的编码及解码及更特定来说用于实施实况自适应位率媒体内容流的编码及解码的过程中的一或多者,如上文详细地描述。由应用程序服务器提供的数据可被格式化为一或多个网页(举例来说,包括html、javascript等)及/或可经由网络服务器(举例来说,如上文所描述)转发到用户计算机905。类似地,网络服务器可从用户计算机905接收网页请求及/或输入数据及/或将网页请求及/或输入数据转发到应用程序服务器。在一些情况下,网络服务器可与应用程序服务器集成在一起。
203.根据进一步实施例,一或多个服务器915可用作文件服务器及/或可包含实施各种所公开方法所必需的、由在用户计算机905及/或另一服务器915上运行的应用程序合并的文件中的一或多者(例如,应用程序代码、数据文件等)。替代地,如所属领域的技术人员将明白,文件服务器可包含所有必要文件,从而允许由用户计算机、用户装置或客户装置905及/或服务器915远程地调用此应用程序。
204.应注意,本文中关于各种服务器(例如,应用服务器、数据库服务器、网络服务器、文件服务器等)所描述的功能可由单个服务器及/或多个专用服务器来执行,这取决于实施方案特定的需要及参数。
205.在某些实施例中,所述系统可包含一或多个数据库920a到920n(统称为“数据库920”)。数据库920中的每一者的位置是任意的:仅仅作为实例,数据库920a可驻留在服务器915a(及/或用户计算机、用户装置或客户装置905)本地(及/或驻留在其中)的存储媒体上。替代地,数据库920n可远离计算机905、915中的任一者或全部,只要其可与这些计算机中的一或多者进行通信(例如,经由网络910)即可。在一组特定实施例中,数据库920可驻留在所属领域的技术人员熟悉的存储区域网络(“san”)中。(同样,用于执行归属于计算机905、915的功能的任何必要文件可本地地存储在相应计算机上及/或远程地存储,视情况而定。)在一组实施例中,数据库920可为经调适以响应于sql格式化命令而存储、更新及检索数据的关系数据库,例如oracle数据库。举例来说,如上文所描述,所述数据库可由数据库服务器来控制及/或维护。
206.根据一些实施例,系统900可进一步包括计算系统925(与图1的第一计算系统105或类似者类似)及(若干)对应数据库930(与图1的(若干)数据库110或类似者类似)。系统900可进一步包括一或多个编码器935(与图1的(若干)主编码器115及(若干)副编码器120或类似者类似)。系统900还可包括(若干)媒体内容源940(与图1的一或多个媒体内容源125或类似者类似)及(若干)对应数据库945(与图1的(若干)数据库130或类似者类似)。用户装置905a及905b也可为一或多个第二计算系统(与图1的(若干)第二计算系统、(若干)用户接口装置或(若干)用户装置150或类似者类似)。每一用户装置905a及905b可包含一或多个解码器950(与图1的(若干)解码器165或类似者类似)。在一些情况下,一或多个解码器950可与用户装置905a及905b分开。
207.在操作中,一或多个第一计算系统925可将来自一或多个内容源940的实况媒体内容流划分成一或多个段。每一段可包含起始段边界及结束段边界。一或多个第一计算系统925可使用(若干)编码器935将实况媒体内容流的一或多个段编码到一或多个主自适应位率流中。一或多个第一计算系统925还可将实况媒体内容流的一或多个段划分成一或多个子段。每一子段可小于一或多个段中的对应段的长度。一或多个第一计算系统925可使用(若干)编码器935将一或多个子段编码到一或多个副自适应位率流中。
208.根据一些实施例,一或多个用户装置905a及905b可接收对实况频道上的实况媒体内容的请求。用户装置905a及905b可首先请求与实况媒体内容相关联的一或多个主自适应位率流。用户装置905a及905b接着可确定一或多个主自适应位率流不在起始段边界处。基于确定一或多个主自适应位率流不在起始段边界处,用户装置905a及905b可请求与实况媒体内容相关联的一或多个副自适应位率流。用户装置905a及905b可接收包含一或多个子段的一或多个副自适应位率流且使用(若干)解码器950对与一或多个副自适应位率流相关联的实况媒体内容进行解码。
209.在一些情况下,一或多个子段可具有与一或多个段中的对应段的对应起始段边界不同的起始边界及与一或多个段中的对应段的对应结束段边界相同的结束边界。在一些情况下,一或多个子段可为连续子段、不连续子段、重叠子段及/或类似者。
210.上文关于图1到7中更详细地描述系统900(及其组件)的这些及其它功能。
211.虽然已关于实例性实施例描述某些特征及方面,但所属领域的技术人员将认识到,众多修改是可能的。举例来说,本文中所描述的方法及过程可使用硬件组件、软件组件及/或其任何组合来实施。此外,虽然为了便于描述,可关于特定结构及/或功能组件描述本
文中所描述的各种方法及过程,但由各个实施例提供的方法不限于任何特定的结构及/或功能架构,而是可在任何合适硬件、固件及/或软件配置上实施。类似地,虽然某些功能性归于某些系统组件,但除非上下文另有规定,否则根据若干实施例,这个功能性可分布在各种其它系统组件当中。
212.此外,虽然为了便于描述,本文中所描述的方法及过程的程序以特定顺序进行描述,但除非上下文另有规定,否则可根据各个实施例重新排序、添加及/或省略各种程序。此外,关于一种方法或过程所描述的程序可并入在其它所描述方法或过程内;同样,根据特定结构架构及/或关于一个系统所描述的系统组件可组织在替代结构架构中及/或并入在其它所描述系统内。因此,虽然各个实施例为了便于描述而被描述为具有或没有某些特征且说明那些实施例的实例性方面,但可从其它所描述实施例当中替换、添加及/或删减本文中关于特定实施例所描述的各种组件及/或特征,除非上下文另有规定。因此,尽管上文描述若干实例性实施例,但将明白,本发明意在覆盖所附权利要求书的范围内的所有修改及等效物。

技术特征:
1.一种方法,其包括:使用计算系统将实况媒体内容流划分成一或多个段,每一段包括起始段边界及结束段边界;使用所述计算系统的一或多个主编码器将所述实况媒体内容流的所述一或多个段编码到一或多个主自适应位率流中;使用所述计算系统将所述实况媒体内容流的所述一或多个段划分成一或多个子段,其中每一子段小于所述一或多个段中的对应段的长度;及使用所述计算系统的一或多个副编码器将所述一或多个子段编码到一或多个副自适应位率流中。2.根据权利要求1所述的方法,其中所述一或多个主自适应位率流包括所述实况媒体内容流的一或多个连续段,且其中所述一或多个副自适应位率流包括所述实况媒体内容流的一或多个连续子段或所述实况媒体内容流的一或多个不连续子段中的至少一者。3.根据权利要求1所述的方法,其中所述一或多个子段包括与所述一或多个段中的对应段的对应起始段边界不同的起始边界及与所述一或多个段中的所述对应段的对应结束段边界相同的结束边界。4.根据权利要求3所述的方法,其中所述一或多个子段包括两个或更多个子段,其中所述两个或更多个子段中的每一子段具有与下一子段的下一子段起始边界不同的子段起始边界。5.根据权利要求4所述的方法,其中所述下一子段的所述下一子段起始边界在前一子段的前一子段起始边界之后的预定时间量出现。6.根据权利要求4所述的方法,其中所述两个或更多个子段中的每一子段由所述一或多个副编码器中的单个编码器或单独编码器来编码。7.根据权利要求3所述的方法,其进一步包括:当所述一或多个子段到达与所述一或多个段中的所述对应段相同的所述结束边界时,使用所述计算系统释放所述一或多个副编码器。8.根据权利要求1所述的方法,其中所述一或多个子段与所述一或多个段中的下一段的下一起始段边界重叠。9.根据权利要求1所述的方法,其中所述一或多个子段是未加密地传输或以比所述一或多个段更低的位率传输中的至少一者。10.一种设备,其包括:至少一个处理器;及非暂时性计算机可读媒体,其通信地耦合到所述至少一个处理器,所述非暂时性计算机可读媒体在其上存储有计算机软件,所述计算机软件包括一组指令,所述一组指令在由所述至少一个处理器执行时引起所述设备:接收对实况媒体内容的请求;确定一或多个主自适应位率流不在起始段边界处,其中所述一或多个主自适应位率流包括一或多个段,每一段包括所述起始段边界及结束段边界;基于确定所述一或多个主自适应位率流不在起始段边界处,向一或多个副编码器请求与所述实况媒体内容相关联的一或多个副自适应位率流,其中所述一或多个副自适应位率
流包括一或多个子段,且其中每一子段小于所述一或多个段中的对应段的长度;接收包括所述一或多个子段的所述一或多个副自适应位率流;及对与所述一或多个副自适应位率流相关联的所述实况媒体内容进行解码。11.根据权利要求10所述的设备,其中向所述一或多个副编码器对所述一或多个副自适应位率流的所述请求包括请求所述一或多个副自适应位率流中的副自适应位率流,所述副自适应位率流包括所述一或多个子段中的子段,所述子段具有最接近所述实况媒体内容的实时显示时间的起始子段边界。12.根据权利要求10所述的设备,其中所述一或多个子段包括与所述一或多个段中的对应段的对应起始段边界不同的起始边界及与所述一或多个段中的所述对应段的对应结束段边界相同的结束边界。13.根据权利要求12所述的设备,其中所述一组指令在由所述至少一个处理器执行时进一步引起所述设备:确定所述一或多个副自适应位率流的所述一或多个子段已到达与所述对应段的所述对应结束段边界相同的所述结束边界;基于确定所述一或多个副自适应位率流的所述一或多个子段已到达所述相同结束边界,从所述一或多个副自适应位率流中的至少一者切换到所述一或多个主自适应位率流中的至少一者;接收包括所述一或多个段的所述至少一个主自适应位率流;及对与所述至少一个主自适应位率流相关联的所述实况媒体内容进行解码。14.根据权利要求13所述的设备,其中包括所述一或多个子段的所述一或多个副自适应位率流是以第一位率或第一视频编解码器中的至少一者接收,且所述一或多个主自适应位率流是以第二位率或与所述第一视频编解码器不同的第二视频编解码器中的至少一者接收。15.根据权利要求10所述的设备,其中所述一或多个子段与所述一或多个段中的下一段的下一起始段边界重叠。16.根据权利要求15所述的设备,其中当所述一或多个子段与所述一或多个段中的所述下一段的所述下一起始段边界重叠时,所述一组指令在由所述至少一个处理器执行时进一步引起所述设备:丢弃所述一或多个子段的一或多个重叠子帧,其中所述一或多个重叠子帧在所述一或多个子段与所述一或多个段中的所述下一段之间重叠。17.根据权利要求15所述的设备,其中当所述一或多个子段与所述一或多个段中的所述下一段的所述下一起始段边界重叠时,所述一组指令在由所述至少一个处理器执行时进一步引起所述设备:请求及接收包括所述一或多个段中的所述下一段的至少一个主自适应位率流;确定所述一或多个子段的一或多个重叠子帧是否在所述一或多个段中的所述下一段的一或多个实时帧之后;基于确定所述一或多个子段的所述一或多个重叠子帧在所述下一段的所述一或多个实时帧之后,更快地解码及显示所述一或多个重叠子帧以赶上所述下一段的所述一或多个实时帧;及
基于确定所述一或多个子段的所述一或多个重叠子帧已赶上所述下一段的所述一或多个实时帧,从所述一或多个副自适应位率流切换到所述一或多个主自适应位率流。18.根据权利要求10所述的设备,其中所述一组指令在由所述至少一个处理器执行时进一步引起所述设备:确定所述一或多个段的一或多个实时帧是否不可用;基于确定所述一或多个段的所述一或多个实时帧不可用,更慢地解码及显示所述一或多个子段的一或多个子帧中的至少一者直到所述一或多个实时帧可用,或重复所述一或多个子段的一或多个先前子帧直到所述一或多个实时帧可用;及基于确定所述一或多个实时帧可用,从所述一或多个副自适应位率流中的至少一者切换到所述一或多个主自适应位率流中的至少一者。19.根据权利要求10所述的设备,其中所述一或多个段包括所述起始段边界处的报头,其中每一报头指示一或多个额外可解码段边界,所述额外可解码段边界指示对应段内的其中所述设备能够起始对所述实况媒体内容进行解码的一或多个额外位置。20.一种系统,其包括:第一计算系统,其包括:一或多个主编码器;一或多个副编码器;至少一个第一处理器;及第一非暂时性计算机可读媒体,其通信地耦合到所述至少一个第一处理器,所述第一非暂时性计算机可读媒体在其上存储有计算机软件,所述计算机软件包括第一组指令,所述第一组指令在由所述至少一个第一处理器执行时引起所述第一计算系统:将实况媒体内容流划分成一或多个段,每一段包括起始段边界及结束段边界;使用所述一或多个主编码器将所述实况媒体内容流的所述一或多个段编码到一或多个主自适应位率流中;将所述实况媒体内容流的所述一或多个段划分成一或多个子段,其中每一子段小于所述一或多个段中的对应段的长度;及使用所述一或多个副编码器将所述一或多个子段编码到一或多个副自适应位率流中;及第二计算系统,其包括:至少一个第二处理器;及第二非暂时性计算机可读媒体,其通信地耦合到所述至少一个第二处理器,所述第二非暂时性计算机可读媒体在其上存储有计算机软件,所述计算机软件包括第二组指令,所述第二组指令在由所述至少一个第二处理器执行时引起所述第二计算系统:接收对实况频道上的实况媒体内容的请求;向所述一或多个主编码器请求与所述实况媒体内容相关联的一或多个主自适应位率流;确定所述一或多个主自适应位率流不在所述起始段边界处;基于确定所述一或多个主自适应位率流不在起始段边界处,向一或多个副编码器请求与所述实况媒体内容相关联的一或多个副自适应位率流;
接收包括所述一或多个子段的所述一或多个副自适应位率流;及对与所述一或多个副自适应位率流相关联的所述实况媒体内容进行解码。

技术总结
本公开涉及有间隙的及/或划分子段的自适应位率流。提供用于实施自适应位率流的编码或解码的新颖工具及技术。在各个实施例中,一或多个第一计算系统可将实况媒体内容流划分成一或多个段,每一段可包含起始段边界及结束段边界。所述一或多个第一计算系统可将所述一或多个段编码到一或多个主自适应位率流中。所述一或多个第一计算系统还可将所述实况媒体内容流的所述一或多个段划分成一或多个子段。每一子段可小于所述一或多个段中的对应段的长度。所述一或多个第一计算系统可将所述一或多个子段编码到一或多个副自适应位率流中及/或第二计算系统可从一或多个副自适应位率流解码所述一或多个子段。码所述一或多个子段。码所述一或多个子段。


技术研发人员:拉杰什
受保护的技术使用者:安华高科技股份有限公司
技术研发日:2022.12.14
技术公布日:2023/7/19
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐