媒体流传送中的动态轨道切换的制作方法_3

文档序号:9635424阅读:来源:国知局
。将所选视频轨道与所选音频轨道同步。为了将视频轨道与音频轨道同步,这两个媒体轨道都使用相同的时钟源。如果视频轨道变得不同步,则视频轨道可以添加(通过内插或帧重复)或丢弃帧以便保持与音频轨道同步。由此,对于视频轨道的已编码数据被路由到视频再现管线,并且通过使用时钟源来驱动同步,使视频轨道的回放与音频轨道的回放同步。
[0042]在上面的示例中,输出了单个音频轨道和单个视频轨道。然而,媒体引擎还可以处理在回放期间切换了音频轨道的情形。返回图5,在562处,切换模块确定是否切换音频轨道。如果是,则切换模块重新评估(534)对将被路由到音频再现管线的音频输入的选择。
[0043]或者,代替于改变音频轨道,用户可以选择将视频轨道改变为另一视频轨道。可替换地,媒体引擎可以提供第二视频轨道来替换视频轨道。通过任一种方式,用于第二视频轨道的已编码数据被路由到视频再现管线。为了确保视频轨道的切换看起来是无缝的,使第二视频轨道也与所选音频轨道同步(534、552)。使用时钟源(来自用于所选音频轨道的音频再现管线)来驱动同步,使第二视频轨道的回放与所选音频轨道的回放同步。进一步地,当所述视频轨道是视频的可替换版本时,可以在视频轨道的关键帧处对视频进行切换,以最小化视频输出的中断。将视频轨道的已编码数据路由到视频再现管线,并且使用时钟源来驱动同步,使视频轨道的回放与所选音频轨道的回放同步。
[0044]当对于相同音频再现管线选择了第二视频轨道时,对于第二音频轨道的已编码数据被路由到包括时钟源的音频再现管线。由此,使用时钟源来驱动同步,使第二音频轨道的回放与视频轨道的回放同步,其中,不管对音频轨道的切换而保存时钟源。
[0045]或者,当选择了第二音频轨道时,可以使用时钟源来驱动同步,使第二音频轨道的回放可以与第一视频轨道的回放和第一音频轨道的回放同步。由于时钟源驱动同步,而不是音频轨道或视频轨道自身的任一项驱动同步,所以只要时钟源保持活动,则音频轨道就可以被换入和换出。由此,不管对音频轨道的切换而保存时钟源。类似地,甚至当添加或移除了源缓冲器时,也可以保存相同的时钟源。
[0046]尽管在之前的示例中使用了单个时钟源,但时钟源可以动态地改变。S卩,在媒体流传送期间,可以确定(一个或者多个)再现管线中的另一再现轨道中的另一时钟源。然而,通常仍然使用音频再现管线的时钟源,因为通过添加或丢弃帧来对视频进行调整以纠正同步倾向于比调整音频以纠正同步更简单。
[0047]用于切换模块的示例性体系结构
图6图示了具有用于媒体流传送的切换模块的体系结构,其中,仅仅存在一个音频再现器和一个视频再现器。图6示出了媒体部件(610)、多个源缓冲器(621、622、623)以及媒体引擎(630)。媒体引擎(630)包括音频再现管线、视频再现管线和切换模块(640)。
[0048]源缓冲器(621、622、623)以媒体部件(610)做主机。例如,媒体部件(610)实现媒体源扩展(“MSE”),所述媒体源扩展是使得能实现自适应媒体流传送和实时流传送(livestreaming)的对HTML媒体单元API的W3C扩展。在某些实现中,媒体部件(610)跨过API与媒体引擎(630)进行通信,所述媒体引擎(630)是计算机系统的操作系统的一部分。除了其他方面之外,MSE的实现允许浏览器使用视频/音频标签来支持基于web的媒体流传送。然而,媒体部件(610)不限于MSE实现,并且可以是能够使得能实现媒体流传送的任何媒体部件。类似地,媒体引擎(630)不需要是计算机系统的操作系统的一部分,但作为代替可以通过在计算机系统上可用的媒体处理工具来提供。
[0049]源缓冲器(621、622、623)临时存储用于媒体轨道的已编码媒体信息。已编码媒体信息由媒体部件(610)提供,被缓存在源缓冲器(621、622、623)中,并以预期速率(假设已编码媒体信息是从网络或其他源提供给源缓冲器的)被提供用于由切换模块(640)进行路由。源缓冲器(621、622、623)可以包含对于一个或多个媒体轨道的数据。源缓冲器(621、622,623)可以保存已编码媒体信息的块的列表,当已编码媒体信息被接收时向该列表添加块,在合适时对块进行重新排序,以及当已编码媒体信息被路由到再现管线时从该列表移除块。
[0050]每个源缓冲器(621、622、623)提供一个或多个音频和/或视频输入作为用于由切换模块(640)进行路由的选择输入。在图6中,切换模块(640)是媒体引擎(630)的一部分,所述媒体引擎(630)是媒体系统的回放引擎。例如,切换模块(640)是MSE流切换源的实现方式。然而,切换模块(640)不限于MSE实现方式。
[0051]在图6中,示出了音频输入AI^AljP AI 3以及视频输入VI VI 2。然而,音频和视频输入的数量不限于这些特定输入,并且可以存在更多或更少的音频输入和/或视频输入。进一步地,在图6中,源缓冲器的数量为3,但作为代替可以是另一数量的源缓冲器。由此,可以存在任意数量的源缓冲器以及音频和视频轨道作为针对切换模块(640)的选择输入。附加地,源缓冲器以及音频和视频轨道是动态的,并且可以在媒体流传送期间变化。
[0052]切换模块(640)包括一个或多个切换。在图6中,切换模块(640)包括两个切换。可替换地,切换模块(640)可以包括更多或更少的切换。给定的切换具有一个或多个选择输入,其中,选择输入表示来自源缓冲器(621、622、623 )中的一个源缓冲器的对于媒体轨道的已编码数据。给定的切换还具有关联于再现管线的选择输出。对于不同切换的选择输出与用于解码和再现的不同再现管线相关联。
[0053]切换模块(640)确定将输入音频轨道中的哪些输入音频轨道路由到音频再现管线(包括音频解码器(650)和音频再现器(652)),并将所选音频轨道进行路由作为选择输出AO"切换模块(640)还确定将视频轨道中的哪些视频轨道路由到视频再现管线(包括视频解码器(660)和视频再现器(662)),并将所选视频轨道进行路由作为选择输出V01<3切换模块(640)还负责当新的源缓冲器被添加、新的媒体轨道数据被添加到以媒体部件(610)做主机的现有源缓冲器、源缓冲器被移除或者媒体轨道数据被从以媒体部件(610)做主机的现有源缓冲器中移除时,通过管理和传送媒体数据来添加和移除媒体轨道。采用该配置,再现管线自身是固定的,并且不动态地改变。
[0054]媒体轨道信息可以由切换模块(640)传达给媒体引擎(630),以便指示哪些媒体轨道可用、指示可用媒体轨道的属性等。媒体引擎(630)继而可以通过图形用户界面将媒体轨道信息暴露给终端用户,或者将媒体轨道信息提供给媒体回放应用以用于通过应用的用户界面来呈现。媒体引擎(630)和切换模块(640)可以保存媒体引擎(630)内的流标识符与由媒体引擎(630)暴露给终端用户或媒体回放应用的轨道标识符之间的映射。
[0055]终端用户或媒体回放应用然后可以选择一个或多个媒体轨道,其中媒体引擎(630)将这样的轨道选择信息转发回切换模块(640)。当源缓冲器被改变或媒体轨道被改变时,切换模块(640)相应地将已更新的媒体轨道信息提供给媒体引擎(630)。
[0056]当如由切换模块(640)指示的切换操作或其他轨道相关操作被完成时,媒体引擎(630)还将信号/事件提供给媒体回放应用。应用继而可以依赖于所述信号而采取进一步的行动(例如更新对于应用的用户界面)。
[0057]在图6中,切换模块(640)分别对一个输出音频轨道A(^和一个输出视频轨道VO ι进行路由。在此情况下,媒体引擎(630)被配置为一次播放一个单个的音频轨道和单个的视频轨道。通过切换模块(640)做出对要再现的轨道的选择。所选音频轨道六01被路由到包括音频解码器(650)和音频再现器(652)的音频再现管线。音频解码器(650)可以根据AAC格式、HE AAC格式、Windows媒体音频格式或用于解码音频的其他格式来进行解码。音频解码器(650 )对所选音频轨道AOi的已编码音频信息进行解码,并将已解码音频提供给音频再现器(652)。在图6中,在被路由到音频再现管线的流中的数据可以取决于选择了哪个输入音频轨道而改变。所选视频轨道¥01被路由到视频再现管线,所述视频再现管线包括视频解码器(660 )和视频再现器(662 )。视频解码器(660 )可以根据H.264/AVC格式、VC-1格式、VP8格式或用于对视频进行解码的其他格式来进行解码。视频解码器(660)对所选视频轨道V0i的已编码视频信息进行解码,并将已解码视频提供给视频再现器(662 )。
[0058]在连接到音频再现器(652)的流中的数据被媒体引擎(630)或系统的其他部件使用,以提供与音频再现器(662)相关联的连续音频时钟。所述音频时钟然后可以被用作对于同步视频再现的参考点。
[0059]再现管线并不全部都需要处于活动中的。选择输入可以是“空”输入。例如,输出视频轨道V0i不需要对输入视频轨道进行路由以使其被解
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1