CN105393544A - 媒体流传送中的动态轨道切换 - Google Patents
媒体流传送中的动态轨道切换 Download PDFInfo
- Publication number
- CN105393544A CN105393544A CN201380075536.3A CN201380075536A CN105393544A CN 105393544 A CN105393544 A CN 105393544A CN 201380075536 A CN201380075536 A CN 201380075536A CN 105393544 A CN105393544 A CN 105393544A
- Authority
- CN
- China
- Prior art keywords
- track
- media
- pipeline
- audio
- handover module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 239000000872 buffer Substances 0.000 claims abstract description 99
- 238000000034 method Methods 0.000 claims description 26
- 230000001360 synchronised effect Effects 0.000 claims description 24
- 241000283973 Oryctolagus cuniculus Species 0.000 claims description 21
- 238000012545 processing Methods 0.000 claims description 20
- 230000015654 memory Effects 0.000 claims description 8
- 238000009877 rendering Methods 0.000 abstract description 10
- 230000008859 change Effects 0.000 description 15
- 238000005516 engineering process Methods 0.000 description 12
- 238000007726 management method Methods 0.000 description 12
- 239000012092 media component Substances 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000012508 change request Methods 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 230000002195 synergetic effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/4302—Content synchronisation processes, e.g. decoder synchronisation
- H04N21/4307—Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
- H04N21/43072—Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen of multiple content streams on the same device
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/23439—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Image Generation (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
一种切换模块被适配成配置源缓冲器与再现管线之间的切换。所述切换的每个切换具有一个或多个选择输入,其每个表示来自所述源缓冲器中的一个源缓冲器的对于媒体轨道的已编码数据。所述切换的每个切换还具有选择输出,所述选择输出与用于解码和再现的再现管线中的一个再现管线相关联。所述切换模块被进一步适配成使用所述切换来管理所述媒体轨道中的哪些媒体轨道(如果有的话)具有在媒体流传送期间被路由到所述再现管线的已编码数据。所述再现管线可以包括视频再现管线和一个或多个音频再现管线,其中所述切换模块是被适配成确定所述(一个或者多个)音频再现管线的一个音频再现管线中的时钟源的媒体引擎的一部分,以及,所述时钟源用于驱动所述媒体轨道的同步。
Description
背景技术
对于媒体流传送场景中的媒体回放的常见挑战在于如何处理媒体轨道切换以及无缝地添加或移除媒体轨道。另一个挑战在于例如当源被添加或移除时如何处理对于媒体内容源的改变。
一种可能的解决方案是允许多个轨道同时被解码,其中仅所选择的轨道被再现到显示器或扬声器。例如,每个轨道可以被发送给单独的解码器,以及轨道中所选择的一个轨道可以输出到单独的再现器。然而,这在用于媒体内容的流传送的系统资源成本、功率消耗和网络带宽成本方面具有负面含义。
另一种可能的解决方案是以更强力的方式切换轨道(例如音频轨道),其中,系统尝试通过尽力而为的方法使来自视频流的样本和来自音频流的样本的回放同步。然而,以几乎没有假信号(glitch)或无缝的方式连续保持视频样本和音频样本同步是具有挑战性的。
发明内容
总的来说,描述了用于管理媒体流传送期间的动态轨道切换的创新。例如,采用切换模块,媒体引擎配置一个或多个源缓冲器与一个或多个再现管线之间的一个或多个切换;并且使用所述(一个或者多个)切换来管理媒体轨道中的哪些媒体轨道(如果有的话)具有在媒体流传送期间被路由到所述(一个或者多个)再现管线的已编码数据。所述切换的每个切换可以具有:一个或多个选择输入,其每个表示来自所述(一个或者多个)源缓冲器中一个源缓冲器的媒体轨道的已编码数据;以及选择输出,其与用于解码和再现的(一个或者多个)再现管线中的不同的一个再现管线相关联。这样,所述媒体引擎可以动态地管理媒体流传送中的轨道切换。
动态轨道切换的管理可以作为一种方法的一部分、作为一种被适配成执行所述方法的计算机系统的一部分或作为一种存储用于促使计算机系统执行所述方法的计算机可执行指令的有形计算机可读介质的一部分来实现。
例如,一种计算机系统实例化切换模块;配置在一个或多个源缓冲器与一个或多个再现管线之间的切换模块的一个或多个切换;以及使用所述(一个或者多个)切换来管理来自所述(一个或者多个)源缓冲器的媒体轨道中的哪些媒体轨道(如果有的话)具有在媒体流传送期间被路由到所述(一个或者多个)再现管线的已编码数据。所述(一个或者多个)切换的每个切换可以具有:一个或多个选择输入,其每个表示来自所述(一个或者多个)源缓冲器中一个源缓冲器的媒体轨道的已编码数据;以及选择输出,其与所述(一个或者多个)再现管线中的不同的一个再现管线相关联。
或者,作为另一示例,一种计算机系统实现流媒体处理管线。所述流媒体处理管线包括一个或多个源缓冲器和由应用编程接口(“API”)与所述(一个或者多个)源缓冲器分离的媒体引擎。所述媒体引擎包括一个或多个再现管线和切换模块,其中所述(一个或者多个)再现管线包括视频再现管线和一个或多个音频再现管线。所述视频再现管线包括视频解码器和视频再现器,以及,所述(一个或者多个)音频再现管线的每个包括音频解码器和音频再现器。所述切换模块被适配成:配置所述(一个或者多个)源缓冲器与所述(一个或者多个)再现管线之间的一个或多个切换;以及使用所述切换来管理所述媒体轨道中的哪些媒体轨道(如果有的话)具有在媒体流传送期间被路由到所述(一个或者多个)再现管线的已编码数据。所述(一个或者多个)切换的每个切换可以具有:一个或多个选择输入,其每个表示来自所述(一个或者多个)源缓冲器中一个源缓冲器的媒体轨道的已编码数据;以及选择输出,其与所述(一个或者多个)再现管线中的不同的一个再现管线相关联。所述切换模块可以作为在媒体流传送期间对媒体轨道的管理的一部分,被适配成对哪个媒体轨道具有被路由到所述(一个或者多个)再现管线中的一个再现管线的已编码数据进行切换,以及添加或移除媒体轨道,作为所述(一个或者多个)切换中的一个切换的选择输入。
从下面参考附图进行的详细描述中,本发明的前述和其他目的、特征和优点将变得显而易见。
附图说明
图1-5是流程图,其图示了用于采用切换模块实现切换操作的示例方法。
图6是具有切换模块的示例体系结构的图,所述体系结构包括一个视频再现管线和一个音频再现管线。
图7是具有切换模块的示例体系结构的图,所述体系结构包括一个视频再现管线和多个音频再现管线。
图8是可实现某些所描述的创新的示例计算机系统的框图。
具体实施方式
描述了用于管理媒体流传送期间的动态轨道切换的创新。例如,切换模块可以配置源缓冲器与再现管线之间切换;以及使用所述切换来管理来自所述源缓冲器中的一个源缓冲器的媒体轨道中的哪些媒体轨道(如果有的话)具有在媒体流传送期间被路由到所述再现管线的已编码数据。所述切换的每个切换可以具有一个或多个选择输入,其每个表示来自所述源缓冲器中的一个源缓冲器的媒体轨道的已编码数据;以及选择输出,其与用于解码和再现的再现管线中不同的一个再现管线相关联。在常见使用场景中,切换模块可以动态地管理媒体流传送中的轨道切换,例如,响应于用户输入或其他输入之一而切换媒体轨道、添加或移除媒体轨道作为所述切换中的一个切换的选择输入、或者甚至添加或移除源缓冲器并然后更新所述切换的选择输入。这样,甚至当所述再现管线在媒体流传送期间是固定的时,所述切换模块可以在媒体流传送期间动态地适配于源缓冲器、媒体轨道或用户选择的改变。所述切换模块由此可以为计算机系统中具有固定功能性的媒体再现管线提供自适应的前端。
在媒体切换模块的某些实现方式中,在各种媒体流传送场景中,本创新使得能实现:(a)使用所述媒体切换模块的无缝媒体轨道切换操作;(b)使用所述媒体切换模块对媒体轨道的无缝添加或移除;(c)在保持轨道全部都同步的同时对多个音频轨道和视频轨道的无缝回放;以及(d)对关于轨道切换的元数据的信号传送,以便采用媒体回放应用或系统来支持交互式控制操作。在本文中描述的创新的各种方面可以组合地或分离地使用。
用于管理媒体流传送中的切换的技术
图1是图示了用于采用切换模块管理切换操作的一种示例方法的流程图。切换模块可以是操作系统的媒体引擎的一部分或另一媒体处理工具的一部分。在图1-5中,相同的参考数字指代相同元件,并且因此将省略重复的描述。
在110处,切换模块配置一个或多个源缓冲器与一个或多个再现管线之间的一个或多个切换。每个切换关联于(一个或多个)再现管线中不同的一个再现管线。(一个或多个)再现管线可以包括视频再现管线和一个或多个音频再现管线。(一个或多个)源缓冲器和媒体轨道在媒体流传送期间是动态的,而(一个或多个)再现管线在媒体流传送期间是固定的。每个切换被配置为接收媒体轨道中的一个或多个媒体轨道作为选择输入,以及被配置为输出所选媒体轨道作为对用于进行解码和再现的对应再现管线的选择输出。切换模块确定哪些媒体轨道将被路由到每个切换,以便进行向再现管线的潜在输出。由于选择输入的数量可以随回放会话的过程而变化,所以切换模块对(一个或多个)切换进行管理,以确保媒体轨道被适当地路由到合适的切换。
在130处,切换模块使用(一个或多个)切换来管理哪些媒体轨道(如果有的话)具有被路由到(一个或多个)再现管线的已编码数据。每个切换管理对于该切换的选择输入的媒体轨道中的哪些媒体轨道(如果有的话)具有在媒体流传送期间被路由到与该切换相关联的再现管线的已编码数据。
例如,在操作时,切换模块从一个或多个源缓冲器接收媒体轨道。每个源缓冲器包含一个或多个视频和/或音频轨道(媒体轨道)。源缓冲器的数量可以随回放会话的过程(在媒体流传送期间)而变化,媒体轨道的数量也可以随回放会话的过程(在媒体流传送期间)而变化。由于源缓冲器和媒体轨道在媒体流传送期间是动态的,所以切换模块被配置为:保存当前源缓冲器和媒体轨道的列表,以及当源缓冲器和/或媒体轨道的状态随媒体流传送的过程而变化时,从列表添加和移除源缓冲器和/或媒体轨道。由切换模块接收的一个或多个媒体轨道与所述一个或多个切换的选择输入相关联,其中,所述选择输入的每个选择输入表示来自源缓冲器中的一个源缓冲器的媒体轨道的已编码数据。
在高层,切换模块选择媒体轨道来输出。尽管源缓冲器包含对于多个媒体轨道的数据,但用户可以仅对单个音频轨道和单个视频轨道感兴趣。例如,源缓冲器可以包含针对多个语言的音频轨道,但用户可能仅对英语轨道感兴趣。因此,在切换时,切换模块可以在与选择输入相关联的音频轨道中选择英语轨道。切换模块还选择用于解码和再现的再现管线。再现管线的每个再现管线包括媒体解码器和媒体再现器。一旦对于回放会话设置了再现管线的数量,则该数量在媒体流传送期间保持固定。
切换模块将媒体轨道路由到所选再现管线。每个切换可以接收所述媒体轨道中的一个或多个媒体轨道,但可以仅将一个媒体轨道路由到其关联的再现管线。由此,通过使用一个或多个切换,切换模块管理一个或多个媒体轨道如何被路由到(一个或多个)再现管线。
源缓冲器临时存储用于一个或多个媒体轨道的已编码数据,并且然后提供所述已编码数据以便由切换模块进行路由。
切换模块不需要对切换之间的媒体轨道进行均衡。例如,在某些情况下,切换中的至少一个切换具有多个选择输入,以及切换中的至少一个切换具有单个选择输入。切换模块确定切换中的哪些切换接收输入媒体轨道中的哪些输入媒体轨道。切换模块可以例如基于内容类型(例如音频或视频)将媒体轨道路由到切换的选择输入。由此,如果多个媒体轨道具有相同的内容类型,则它们可以被路由到相同的切换。或者,切换模块可以例如基于程序信息将媒体轨道路由到切换的选择输入,其中,所述程序信息指定哪些媒体轨道提供相同内容的可替换版本。内容的可替换版本可以在语言(例如英语、法语、西班牙语)、内容评级(例如未经审查的、已审查的)或底层媒体内容的其他特性方面不同。或者,内容的可替换版本可以在编码的比特率和质量(例如高比特率和质量、中级比特率和质量、低比特率和质量)或者被应用于底层媒体内容的其他处理方面不同。
图2是图示出了用于采用切换模块实现路由操作的一种示例方法的流程图。切换模块可以是操作系统的媒体引擎的一部分或者另一媒体处理工具的一部分。
在110处,如参考图1所描述的,切换模块配置(一个或者多个)源缓冲器与(一个或者多个)再现管线之间的一个或多个切换。
在230处,对于给定的切换,切换模块选择将被路由到与该给定切换相关联的再现管线的输入(如果有的话)。例如,切换模块在内容的可替换版本中选择对于给定切换的选择输入。切换模块可以基于用户输入、来自媒体应用的输入或其他信息来选择对于给定切换的选择输入。在某些情况下,切换模块不选择对于给定切换的可用选择输入中的任一可用选择输入。
在240处,切换模块继续进行下一个切换,选择(230)对于该切换的、将被路由到与该切换相关联的再现管线的输入。当不再存在任何要管理的切换时,在250处,切换模块将针对所选输入的媒体轨道路由到合适的再现管线。
用于在媒体流传送中切换轨道或源缓冲器的技术
图3是图示了用于采用切换模块实现轨道或缓冲器切换操作的示例方法的流程图。切换模块可以是操作系统的媒体引擎的一部分或另一媒体处理工具的一部分。在这些示例中,源缓冲器和媒体轨道可以被添加或移除。进一步地,媒体轨道还可以被切换。
在110处,如参考图1所描述的,切换模块配置(一个或者多个)源缓冲器与(一个或者多个)再现管线之间的一个或多个切换。在230-250处,如参考图2所描述的,切换模块选择将被路由到再现管线的输入(如果有的话),并且将对于所选输入的媒体轨道路由到合适的再现管线。
在360处,切换模块确定是否切换媒体轨道中的任一个媒体轨道。如果是,则对于给定切换,切换模块重新评估对将被路由到针对给定切换的关联再现管线的输入的选择(230)。如果合适,切换模块可以继续重新评估对其他切换的输入选择(230、240)。
切换模块可以基于用户输入、来自媒体应用的输入或其他信息来确定切换媒体轨道。如果切换模块接收到用于切换媒体轨道的命令,则切换模块可以将当前输出的媒体轨道切换成新的媒体轨道。如果已切换了媒体轨道,则过程流向步骤230,在此处,选择具有已编码数据的已切换媒体轨道,以用于路由到再现管线中的一个再现管线。或者,媒体引擎可以接收用于切换媒体轨道的用户输入,并且将该用户输入传达给媒体引擎内的切换模块。媒体引擎还可以包括再现管线,并且所述媒体引擎通过API而与源缓冲器分离。当媒体引擎被适配成向媒体回放应用提供关于轨道相关操作的状态信息时,媒体引擎还可以从这样的媒体回放应用中接收轨道选择输入,其中,切换模块使用该轨道选择输入来切换媒体轨道。
在370处,切换模块确定是否存在任何对源缓冲器(例如,添加源缓冲器、移除源缓冲器)或被提供为来自源缓冲器的输入的媒体轨道(例如,添加媒体轨道、移除媒体轨道)的改变。如果是,则切换模块重新配置(110)(一个或者多个)源缓冲器与(一个或者多个)再现管线之间的(一个或者多个)切换。如果不是,则切换模块继续对由该切换模块选择的媒体轨道进行路由(250)。
由此,如果源缓冲器将被添加或移除,或者媒体轨道将被添加或者移除作为(一个或者多个)切换中的一个切换的选择输入,则过程流向步骤110,在此处,切换模块对(一个或者多个)切换进行重新配置。例如,源缓冲器可能不具有任何更多要发送到切换模块的数据,或者可能会变成不活动的,从而使得切换模块从所管理列表中移除该源缓冲器。如果源缓冲器被移除,则对之前被配置为从该源缓冲器接收媒体信息的(一个或者多个)切换的选择输入进行更新。如果已移除的源缓冲器之前正在发送被路由到(一个或者多个)再现管线中的一个再现管线的媒体轨道,则切换模块可以选择(230)新的媒体轨道来输出,或者不选择任何轨道用于路由到其关联再现管线。或者,作为另一示例,如果新的源缓冲器被添加以提供新的媒体内容,则切换模块更新一个或多个切换的选择输入,以从新的源缓冲器接收媒体轨道。或者,作为另一示例,如果通过现有源缓冲器所提供的媒体轨道改变,则切换模块更新一个或多个切换的选择输入,以接收当前可用的媒体轨道。这样,切换模块被适配成添加或者移除媒体轨道作为(一个或者多个)切换中的一个切换的选择输入,或者添加或者移除源缓冲器,其中添加或者移除源缓冲器导致对(一个或者多个)切换的选择输入的更新。
用于在媒体流传送中提供和更新元数据的技术
图4是图示了用于采用切换模块提供和更新关于媒体轨道的元数据的示例方法的流程图。切换模块可以是操作系统的媒体引擎的一部分或另一媒体处理工具的一部分。
在110处,如参考图1所述描述的,切换模块配置(一个或者多个)源缓冲器与(一个或者多个)再现管线之间的一个或多个切换。在230-250处,如参考图2所描述的,切换模块选择将被路由到再现管线的输入(如果有的话),并将对于所选输入的媒体轨道路由到合适的再现管线。在360-370处,如参考图3所描述的,切换模块选择性地对媒体轨道和/或(一个或者多个)源缓冲器进行切换。
转向图4,在对(一个或者多个)源缓冲器与(一个或者多个)再现管线之间的(一个或者多个)切换进行配置/重新配置(110)之后,在420处,切换模块将关于一个或多个媒体轨道的元数据(或者,在元数据之前已被递送的情况下,对元数据进行更新)递送给媒体引擎。所述元数据指示有多少媒体轨道可用、媒体轨道中的至少一些媒体轨道的属性(例如语言、信道数量等)或关于媒体轨道的其他信息。媒体引擎可以通过用户界面将所述信息暴露给终端用户,从而使用户可以选择媒体轨道中的一个或多个媒体轨道。或者,媒体引擎可以将所述元数据传达给一个或多个媒体回放应用,或以其他方式使用关于媒体轨道的元数据。
在422处,切换模块接收针对一个或多个轨道选择的输入,其中,切换模块使用所述轨道输入来选择将被路由到(一个或者多个)再现管线的输入(如果有的话)。所述输入可以是用户输入、来自媒体回放应用的输入或者来自媒体引擎或另一源的其他信息。当媒体引擎接收到轨道选择输入时,其负责将该轨道选择信息转发到切换模块。轨道选择输入指示出如何使用(一个或者多个)切换来管理媒体轨道。例如,如果用户选择了与当前正被输出的媒体轨道不同的轨道,则切换将把新选择的轨道路由到其对应的再现管线,并终止旧轨道的输出。
在420处,如果媒体轨道中的一个媒体轨道已被切换,则媒体引擎接收关于媒体轨道的已更新元数据。在添加媒体轨道中的一个媒体轨道、移除媒体轨道中的一个媒体轨道、添加源缓冲器中的一个源缓冲器或移除源缓冲器中的一个源缓冲器之后,媒体引擎也接收已更新的元数据。
用于在媒体流传送中使视频轨道与音频轨道同步的技术
图5图示了用于采用切换模块对回放操作进行同步的示例方法的流程图。切换模块可以是操作系统的媒体引擎的一部分或另一媒体处理工具的一部分。在这些示例中,切换模块将输出的媒体轨道同步到单个时钟源,从而确定音频再现管线中的一个或多个音频再现管线的时钟源。
在110处,如参考图1所描述的,切换模块配置(一个或者多个)源缓冲器与(一个或者多个)再现管线之间的一个或多个切换。
在532处,切换模块选择将被路由到视频再现管线的视频输入。在534处,切换模块选择将被路由到音频再现管线的音频输入。在552处,切换模块使用来自音频再现管线的时钟源进行同步,将媒体轨道路由到再现管线以用于进行再现。
例如,切换模块选择将被路由到包括时钟源的音频再现管线的音频轨道。该音频再现管线将被用作同步时钟。时钟源可以来自声卡。例如,许多现代声卡使用提供用于定时的时钟脉冲的晶体。由于该时钟源具有相对高程度的精度,所以通过使其他轨道同步到所选音频轨道,系统可以能够避免一个或多个媒体轨道变得不同步的场景。将所选视频轨道与所选音频轨道同步。为了将视频轨道与音频轨道同步,这两个媒体轨道都使用相同的时钟源。如果视频轨道变得不同步,则视频轨道可以添加(通过内插或帧重复)或丢弃帧以便保持与音频轨道同步。由此,对于视频轨道的已编码数据被路由到视频再现管线,并且通过使用时钟源来驱动同步,使视频轨道的回放与音频轨道的回放同步。
在上面的示例中,输出了单个音频轨道和单个视频轨道。然而,媒体引擎还可以处理在回放期间切换了音频轨道的情形。返回图5,在562处,切换模块确定是否切换音频轨道。如果是,则切换模块重新评估(534)对将被路由到音频再现管线的音频输入的选择。
或者,代替于改变音频轨道,用户可以选择将视频轨道改变为另一视频轨道。可替换地,媒体引擎可以提供第二视频轨道来替换视频轨道。通过任一种方式,用于第二视频轨道的已编码数据被路由到视频再现管线。为了确保视频轨道的切换看起来是无缝的,使第二视频轨道也与所选音频轨道同步(534、552)。使用时钟源(来自用于所选音频轨道的音频再现管线)来驱动同步,使第二视频轨道的回放与所选音频轨道的回放同步。进一步地,当所述视频轨道是视频的可替换版本时,可以在视频轨道的关键帧处对视频进行切换,以最小化视频输出的中断。将视频轨道的已编码数据路由到视频再现管线,并且使用时钟源来驱动同步,使视频轨道的回放与所选音频轨道的回放同步。
当对于相同音频再现管线选择了第二视频轨道时,对于第二音频轨道的已编码数据被路由到包括时钟源的音频再现管线。由此,使用时钟源来驱动同步,使第二音频轨道的回放与视频轨道的回放同步,其中,不管对音频轨道的切换而保存时钟源。
或者,当选择了第二音频轨道时,可以使用时钟源来驱动同步,使第二音频轨道的回放可以与第一视频轨道的回放和第一音频轨道的回放同步。由于时钟源驱动同步,而不是音频轨道或视频轨道自身的任一项驱动同步,所以只要时钟源保持活动,则音频轨道就可以被换入和换出。由此,不管对音频轨道的切换而保存时钟源。类似地,甚至当添加或移除了源缓冲器时,也可以保存相同的时钟源。
尽管在之前的示例中使用了单个时钟源,但时钟源可以动态地改变。即,在媒体流传送期间,可以确定(一个或者多个)再现管线中的另一再现轨道中的另一时钟源。然而,通常仍然使用音频再现管线的时钟源,因为通过添加或丢弃帧来对视频进行调整以纠正同步倾向于比调整音频以纠正同步更简单。
用于切换模块的示例性体系结构
图6图示了具有用于媒体流传送的切换模块的体系结构,其中,仅仅存在一个音频再现器和一个视频再现器。图6示出了媒体部件(610)、多个源缓冲器(621、622、623)以及媒体引擎(630)。媒体引擎(630)包括音频再现管线、视频再现管线和切换模块(640)。
源缓冲器(621、622、623)以媒体部件(610)做主机。例如,媒体部件(610)实现媒体源扩展(“MSE”),所述媒体源扩展是使得能实现自适应媒体流传送和实时流传送(livestreaming)的对HTML媒体单元API的W3C扩展。在某些实现中,媒体部件(610)跨过API与媒体引擎(630)进行通信,所述媒体引擎(630)是计算机系统的操作系统的一部分。除了其他方面之外,MSE的实现允许浏览器使用视频/音频标签来支持基于web的媒体流传送。然而,媒体部件(610)不限于MSE实现,并且可以是能够使得能实现媒体流传送的任何媒体部件。类似地,媒体引擎(630)不需要是计算机系统的操作系统的一部分,但作为代替可以通过在计算机系统上可用的媒体处理工具来提供。
源缓冲器(621、622、623)临时存储用于媒体轨道的已编码媒体信息。已编码媒体信息由媒体部件(610)提供,被缓存在源缓冲器(621、622、623)中,并以预期速率(假设已编码媒体信息是从网络或其他源提供给源缓冲器的)被提供用于由切换模块(640)进行路由。源缓冲器(621、622、623)可以包含对于一个或多个媒体轨道的数据。源缓冲器(621、622、623)可以保存已编码媒体信息的块的列表,当已编码媒体信息被接收时向该列表添加块,在合适时对块进行重新排序,以及当已编码媒体信息被路由到再现管线时从该列表移除块。
每个源缓冲器(621、622、623)提供一个或多个音频和/或视频输入作为用于由切换模块(640)进行路由的选择输入。在图6中,切换模块(640)是媒体引擎(630)的一部分,所述媒体引擎(630)是媒体系统的回放引擎。例如,切换模块(640)是MSE流切换源的实现方式。然而,切换模块(640)不限于MSE实现方式。
在图6中,示出了音频输入AI1、AI2和AI3以及视频输入VI1和VI2。然而,音频和视频输入的数量不限于这些特定输入,并且可以存在更多或更少的音频输入和/或视频输入。进一步地,在图6中,源缓冲器的数量为3,但作为代替可以是另一数量的源缓冲器。由此,可以存在任意数量的源缓冲器以及音频和视频轨道作为针对切换模块(640)的选择输入。附加地,源缓冲器以及音频和视频轨道是动态的,并且可以在媒体流传送期间变化。
切换模块(640)包括一个或多个切换。在图6中,切换模块(640)包括两个切换。可替换地,切换模块(640)可以包括更多或更少的切换。给定的切换具有一个或多个选择输入,其中,选择输入表示来自源缓冲器(621、622、623)中的一个源缓冲器的对于媒体轨道的已编码数据。给定的切换还具有关联于再现管线的选择输出。对于不同切换的选择输出与用于解码和再现的不同再现管线相关联。
切换模块(640)确定将输入音频轨道中的哪些输入音频轨道路由到音频再现管线(包括音频解码器(650)和音频再现器(652)),并将所选音频轨道进行路由作为选择输出AO1。切换模块(640)还确定将视频轨道中的哪些视频轨道路由到视频再现管线(包括视频解码器(660)和视频再现器(662)),并将所选视频轨道进行路由作为选择输出VO1。切换模块(640)还负责当新的源缓冲器被添加、新的媒体轨道数据被添加到以媒体部件(610)做主机的现有源缓冲器、源缓冲器被移除或者媒体轨道数据被从以媒体部件(610)做主机的现有源缓冲器中移除时,通过管理和传送媒体数据来添加和移除媒体轨道。采用该配置,再现管线自身是固定的,并且不动态地改变。
媒体轨道信息可以由切换模块(640)传达给媒体引擎(630),以便指示哪些媒体轨道可用、指示可用媒体轨道的属性等。媒体引擎(630)继而可以通过图形用户界面将媒体轨道信息暴露给终端用户,或者将媒体轨道信息提供给媒体回放应用以用于通过应用的用户界面来呈现。媒体引擎(630)和切换模块(640)可以保存媒体引擎(630)内的流标识符与由媒体引擎(630)暴露给终端用户或媒体回放应用的轨道标识符之间的映射。
终端用户或媒体回放应用然后可以选择一个或多个媒体轨道,其中媒体引擎(630)将这样的轨道选择信息转发回切换模块(640)。当源缓冲器被改变或媒体轨道被改变时,切换模块(640)相应地将已更新的媒体轨道信息提供给媒体引擎(630)。
当如由切换模块(640)指示的切换操作或其他轨道相关操作被完成时,媒体引擎(630)还将信号/事件提供给媒体回放应用。应用继而可以依赖于所述信号而采取进一步的行动(例如更新对于应用的用户界面)。
在图6中,切换模块(640)分别对一个输出音频轨道AO1和一个输出视频轨道VO1进行路由。在此情况下,媒体引擎(630)被配置为一次播放一个单个的音频轨道和单个的视频轨道。通过切换模块(640)做出对要再现的轨道的选择。所选音频轨道AO1被路由到包括音频解码器(650)和音频再现器(652)的音频再现管线。音频解码器(650)可以根据AAC格式、HEAAC格式、Windows媒体音频格式或用于解码音频的其他格式来进行解码。音频解码器(650)对所选音频轨道AO1的已编码音频信息进行解码,并将已解码音频提供给音频再现器(652)。在图6中,在被路由到音频再现管线的流中的数据可以取决于选择了哪个输入音频轨道而改变。所选视频轨道VO1被路由到视频再现管线,所述视频再现管线包括视频解码器(660)和视频再现器(662)。视频解码器(660)可以根据H.264/AVC格式、VC-1格式、VP8格式或用于对视频进行解码的其他格式来进行解码。视频解码器(660)对所选视频轨道VO1的已编码视频信息进行解码,并将已解码视频提供给视频再现器(662)。
在连接到音频再现器(652)的流中的数据被媒体引擎(630)或系统的其他部件使用,以提供与音频再现器(662)相关联的连续音频时钟。所述音频时钟然后可以被用作对于同步视频再现的参考点。
再现管线并不全部都需要处于活动中的。选择输入可以是“空”输入。例如,输出视频轨道VO1不需要对输入视频轨道进行路由以使其被解码和再现。
在某些实现方式中,不论是否有“实时”音频输入被路由到音频再现管线,音频再现管线都保持可用于输出音频。在此情况下,媒体基础(mediafoundation,“MF”)源可以针对给定的输入音频流发送滴答信号(tick)时间,从而使MF源可以成功完成预滚动(preroll)。预滚动是在呈现时钟开启之前向媒体接收器(sink)给予数据的过程。如果给定的音频输入流在任何时候变成活动的,则MF源将在发送任何数据之前向音频解码器生成格式改变请求。
当切换模块(640)切换输入视频流时,切换模块(640)对两个视频流之间的潜在重叠进行寻址。
当将视频流从当前流切换到不同流时,切换模块(640)标识不同流中的靠近切换点的时间位置的随机访问点。切换模块(640)然后从所标识的随机访问点开始发送视频流样本。当随机访问点在实际切换点之前时,视频流样本将被解码器尽可能快地解码,但不被再现,直到与切换点处的音频时钟相匹配的第一个视频流样本可用。
切换模块(640)可以发送用于指示切换操作已开始以及对潜在等待时间的估计的事件信号,并且然后当切换已完成时发送另一事件信号。媒体回放应用可以使用所述信号来管理必要的UI更新,以及另外,如果切换没有被预期为是无缝的(例如在一个视频帧间隔内),则还管理对于UI的其他潜在的缓解(mitigation)。
图7图示了用于媒体流传送的切换模块的一种体系结构,其中,存在多个音频再现器和一个视频再现器。如在图6中一样,图7示出了媒体部件(610)、多个源缓冲器(621、622、623)和媒体引擎(630)。媒体引擎(630)包括切换模块(640)、视频再现管线和三个音频再现管线。所述音频再现管线的每个音频再现管线包括音频解码器和音频再现器(652、672、682)。不同的音频再现管线可以与不同的音频输出(例如耳机、扬声器)相关联。或者,不同的音频再现管线可以与相同的音频输出相关联,其中,如果必要,则对音频进行混合以用于输出。不同的音频再现管线可以共享特定部件(例如解码器)。
如图7中所示,媒体引擎(630)可以支持多于一个输出音频轨道的并发回放。在图7中,媒体引擎(630)支持三个输出音频轨道(AO1、AO2、AO3)的并发回放。一旦针对回放会话设置了音频再现管线的数量,则音频再现管线的数量在该回放会话的持续时间内是固定的。
然而,再一次地,再现管线并不全部都需要处于活动中。例如,在图7中所示的路由中,输出音频轨道AO2不对任何输入音频轨道进行路由以使其被解码和再现。
切换模块(640)可以管理甚至更多的音频轨道。音频轨道的数量可以超过音频再现管线的数量。例如,多个输出音频轨道的每个输出音频轨道可以包含对于给定程序的不同语言音频轨道,其中一个音频再现管线对所选语言音频轨道进行解码和再现。或者,多个输出媒体轨道的每个输出媒体轨道可以包含对于给定程序的不同比特率/质量版本,其中一个再现管线对所选语言轨道进行解码和再现。可替换版本可以通过相同源缓冲器或不同源缓冲器来提供。
在任一情况下,在某些实现方式中,选择单个音频再现管线的时钟来保持媒体轨道同步。切换模块(640)确保输出音频轨道的至少一个输出音频轨道总是活动的,从而使音频再现管线可以提供音频时钟。可替换地,媒体引擎(630)可以允许时钟源动态地改变,而确保视频流使用从音频硬件导出的时钟。
可替换地,媒体引擎(630)包括多个视频再现管线。例如,视频可以在多个窗口或web浏览器的多个部分中进行再现。
示例计算机系统
图8图示了可实现所描述创新中的几个创新的适当计算机系统(800)的一般化示例。计算机系统(800)不旨在对使用范围或功能性提出任何限制,因为本创新可以在多样的通用或专用计算机系统中实现。由此,所述计算机系统可以是各种各样的类型的计算机系统(例如桌面计算机、膝上型计算机、平板电脑或板式电脑、智能电话、游戏控制台等)中的任一个。
参考图8,计算机系统(800)包括一个或多个处理单元(810、815)和存储器(820、825)。处理单元(810、815)执行计算机可执行指令。处理单元可以是通用中央处理单元(“CPU”)、专用集成电路(“ASIC”)中的处理器或任何其他类型的处理器。在多处理系统中,多个处理单元执行计算机可执行指令来提高处理能力。例如,图8示出了中央处理单元(810)以及图形处理单元或协同处理单元(815)。
有形存储器(820、825)可以是可被(一个或者多个)处理单元访问的易失性存储器(例如,寄存器、高速缓存、RAM)、非易失性存储器(例如,ROM、EEPROM、闪存器等)或这两者的某种组合。存储器(820、825)存储软件(880),其采用适用于由(一个或者多个)处理单元执行的计算机可执行指令的形式来实现用于管理媒体流传送中的动态轨道切换的一个或多个创新。存储器(820、825)还包括存储对于一个或多个媒体轨道的已编码媒体信息的源缓冲器。
计算机系统可以具有附加的特征。例如,计算机系统(800)包括存储装置(840)、一个或多个输入设备(850)、一个或多个输出设备(860)以及一个或多个通信连接(870)。诸如总线、控制器或网络之类的互连机制(未示出)将计算机系统(800)的部件互连。通常,操作系统软件(未示出)针对在计算机系统(800)中执行的其他软件提供操作环境,并协调计算机系统(800)的部件的活动。例如,操作系统可以包括媒体引擎,其使用媒体切换源和一个或多个再现管线对来自一个或多个源缓冲器的媒体轨道的回放进行管理。对于再现管线,操作系统可以作为媒体引擎的一部分或单独地包括一个或多个音频解码器、一个或多个音频再现模块、一个或多个视频解码器、一个或多个视频再现模块。或者,专用硬件可以包括音频解码器、音频再现模块、视频解码器和/或视频再现模块。
特别地,在计算机系统(800)处可用的其他软件包括使用计算机系统(800)的媒体再现管线的一个或多个媒体回放应用。媒体回放应用可以包括音频回放应用、视频回放应用、通信应用或游戏。媒体引擎可以向媒体回放应用提供关于媒体轨道的元数据、从媒体回放应用接收输入以及调解媒体回放应用对再现管线的使用。除媒体回放应用之外,其他软件可以包括常见的应用(例如电子邮件应用、日历、联系人管理器、游戏、字处理器和其他生产力软件、web浏览器、消息发送应用)。
有形存储装置(840)可以是可移除或不可移除的,并且包括磁盘、磁带或盒式磁带、CD-ROM、DVD或可以用于以非瞬态方式存储信息并且可以在计算机系统(800)内进行访问的任何其他介质。存储装置(840)存储用于实现管理媒体流传送中的动态轨道切换的一个或多个创新的软件(880)的指令。
(一个或者多个)输入设备(850)包括一个或多个音频输入设备(例如,被适配成捕获音频的麦克风,或接受采用模拟或数字形式的音频输入的类似设备)以及一个或多个视频输入设备(例如,被适配成捕获视频的相机,或接受采用模拟或数字形式的视频输入的类似设备)。(一个或者多个)输入设备(850)还可以包括触摸输入设备,诸如键盘、鼠标、笔或轨迹球、触摸屏、扫描设备或向计算机系统(800)提供输入的另一设备。(一个或者多个)输入设备(850)进一步可以包括将音频样本读入到计算机系统(800)中的CD-ROM或CD-RW。(一个或者多个)输出设备(860)通常包括关联于一个或多个音频再现管线的一个或多个音频输出设备(例如一个或多个扬声器),以及关联于一个或多个视频再现管线的一个或多个视频输出设备(例如显示器、触摸屏)。(一个或者多个)输出设备(860)还可以包括CD刻录机或从计算机系统(800)提供输出的另一设备。
(一个或者多个)通信连接(870)使得能实现通过通信介质对另一计算实体的通信。通信介质用已调制数据信号传达诸如计算机可执行指令、音频或视频输入或输出或者其他数据之类的信息。已调制数据信号是这样的信号,即:该信号使其特性中的一个或多个特性以这样的方式被设置和改变,即:将信息编码到信号中。例如并且不限于,通信介质可以使用电、光、RF或其他载波。
本创新可以在计算机可读介质的一般上下文中进行描述。计算机可读介质是可在计算环境内访问的任何可用有形介质。例如并且不限于,对于计算机系统(800),计算机可读介质包括存储器(820、825)、存储装置(840)以及以上任何的组合。
本创新可以在计算机可执行指令的一般上下文中进行描述,所述计算机可执行指令诸如是被包括在程序模块中、在计算机系统中在目标实际或虚拟处理器上被执行的那些计算机可执行指令。一般来说,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、库、对象、类、部件、数据结构等。在各种实施例中,根据期望,程序模块的功能性可以在程序模块之间被组合或拆分。对于程序模块的计算机可执行指令可以在本地或分布式计算机系统内执行。
术语“系统”和“设备”在本文中被可互换地使用。除非上下文以其他方式明确指出,否则任一术语都不对计算机系统或计算机设备的类型暗示任何限制。一般来说,计算机系统或设备可以是本地的或分布式的,并且可以包括专用硬件和/或通用硬件与实现本文中描述的功能性的软件的任何组合。
所公开的方法还可以使用专业计算机硬件来实现,所述专业计算机硬件被配置为执行所公开方法中的任一方法。例如,所公开的方法可以由集成电路(例如,诸如ASIC数字信号处理单元(“DSP”)之类的ASIC、图形处理单元(“GPU”),或者诸如现场可编程门阵列(“FPGA”)之类的可编程逻辑设备(“PLD”))来实现,所述集成电路被特别设计或配置为实现所公开方法中的任一方法。
为进行呈现,详细描述使用如“确定”和“应用”的术语来描述计算机系统中的计算机操作。这些术语是对由计算机执行的操作的高级抽象,并且不应当与由人类执行的动作混淆。对应于这些术语的实际计算机操作取决于实现方式而变化。当在本文中使用时,术语“提供”和“由……提供”意味着任何形式的递送,不论是直接从实体递送还是通过一个或多个中介间接从实体递送。
可替换项和变型
前述示例的各种可替换项是可能的。
尽管在本文中描述的操作被适当地描述为针对音频和视频回放来执行,但在许多情况下,这些操作可替换地可以针对另一类型的媒体信息(例如幻灯片中的图像显示)来执行。
尽管为方便呈现而按特定的顺序排序描述了所公开技术中的一些技术的操作,但应当理解,这种描述方式涵盖了重新安排,除非特定排序是必需的。例如,被顺序描述的操作在某些情况下可以被重新安排或并发地执行。同样,操作可以被拆分为多个阶段,以及在某些情况下被省略。
所公开技术的各种方面可以组合地或单独地使用。不同实施例使用所描述的创新中的一个或多个。在本文中描述的创新中的某些创新解决了在背景中指出的问题中的一个或多个问题。通常,给定的技术/工具不解决全部这样的问题。
为清楚起见,仅描述了基于软件的实现方式的特定所选方面。省略了本领域中众所周知的其他细节。例如,应当理解,所公开的技术不限于任何特定的计算机语言或程序。例如,所公开的技术可以由用C++、Java、Perl、JavaScript、AdobeFlash或任何其他合适的编程语言编写的软件来实现。同样,所公开的技术不限于任何特定的计算机或硬件类型。适当的计算机和硬件的特定细节是众所周知的,并且不需要在本公开内容中详细阐述。
鉴于所公开的发明的原理可以应用于其的许多可能的实施例,应当认识到,所图示的实施例仅是本发明的优选示例,并且不应当理解为限制本发明的范围。而是,本发明的范围由后面的权利要求限定。因此,我们将我们的发明声明为落在这些权利要求的范围和精神内的全部内容。
Claims (10)
1.一个或多个存储计算机可执行指令的计算机可读介质,所述计算机可执行指令用于促使处理器由此被编程以实现切换模块,所述切换模块被适配成:
配置一个或多个源缓冲器与一个或多个再现管线之间的一个或多个切换,所述一个或多个切换中的每个切换具有:
一个或多个选择输入,其每个表示来自所述一个或多个源缓冲器中的一个源缓冲器的对于媒体轨道的已编码数据;以及
选择输出,其与用于解码和再现的所述一个或多个再现管线中的不同的一个再现管线相关联;以及
使用所述一个或多个切换来管理以下内容,即:如果存在媒体轨道的话,则所述媒体轨道中的哪些媒体轨道具有在媒体流传送期间被路由到所述一个或多个再现管线的已编码数据。
2.根据权利要求1所述的一个或多个计算机可读介质,其中所述一个或多个再现管线中的每个再现管线包括媒体解码器和媒体再现器。
3.根据权利要求1所述的一个或多个计算机可读介质,其中所述切换模块被进一步适配成,作为在所述媒体流传送期间对所述媒体轨道的管理的一部分:
对哪个媒体轨道具有被路由到所述一个或多个再现管线中的一个再现管线的已编码数据进行切换。
4.根据权利要求1所述的一个或多个计算机可读介质,其中所述切换模块被进一步适配成,作为在所述媒体流传送期间对所述媒体轨道的管理的一部分:
添加或移除媒体轨道,作为所述一个或多个切换中的一个切换的选择输入。
5.根据权利要求1所述的一个或多个计算机可读介质,其中所述一个或多个再现管线在所述媒体流传送期间是固定的,并且所述一个或多个源缓冲器在所述媒体流传送期间是动态的。
6.根据权利要求1所述的一个或多个计算机可读介质,其中所述一个或多个再现管线包括视频再现管线和一个或多个音频再现管线。
7.根据权利要求6所述的一个或多个计算机可读介质,其中所述媒体轨道包括一个或多个音频轨道和一个或多个视频轨道,其中所述切换模块是被适配成确定所述一个或多个音频再现管线中的一个音频再现管线中的时钟源的媒体引擎的一部分,并且其中所述切换模块被进一步适配成,作为在所述媒体流传送期间对所述媒体轨道的管理的一部分:
选择所述一个或多个音频轨道中的第一音频轨道,其中对于所述第一音频轨道的已编码数据被路由到包括所述时钟源的音频再现管线;以及
选择所述一个或多个视频轨道中的第一视频轨道,其中对于所述第一视频轨道的已编码数据被路由到所述视频再现管线,并且其中,通过使用所述时钟源来驱动同步,使所述第一视频轨道的回放与所述第一音频轨道的回放同步。
8.根据权利要求7所述的一个或多个计算机可读介质,其中所述切换模块被进一步适配成,作为在所述媒体流传送期间对所述媒体轨道的管理的一部分:
选择所述一个或多个视频轨道中的第二视频轨道,其中对于所述第二视频轨道的已编码数据被路由到所述视频再现管线,并且其中,通过使用所述时钟源来驱动同步,使所述第二视频轨道的回放与所述第一音频轨道的回放同步。
9.一种方法,其包括:
采用计算机系统,实例化切换模块;
配置在多个源缓冲器与多个再现管线之间的所述切换模块的多个切换,所述多个切换的每个切换具有:
一个或多个选择输入,其每个表示来自所述多个源缓冲器中的一个源缓冲器的对于媒体轨道的已编码数据;以及
选择输出,其与所述多个再现管线中的不同的一个再现管线相关联;
如果存在媒体轨道的话,则使用所述多个切换来管理所述媒体轨道中的哪些媒体轨道具有在媒体流传送期间被路由到所述多个再现管线的已编码数据。
10.一种包括处理器和存储器的计算机系统,其中所述计算机系统实现包括以下项的流媒体处理管线:
一个或多个源缓冲器;
通过应用编程接口而与所述一个或多个源缓冲器分离的媒体引擎,其中所述媒体引擎包括一个或多个再现管线和切换模块,其中所述一个或多个再现管线包括视频再现管线和一个或多个音频再现管线,其中所述视频再现管线包括视频解码器和视频再现器,其中所述一个或多个音频再现管线中的每个音频再现管线包括音频解码器和音频再现器,并且其中所述切换模块被适配成:
配置所述一个或多个源缓冲器与所述一个或多个再现管线之间的一个或多个切换,所述一个或多个切换的每个切换具有:
一个或多个选择输入,其每个表示来自所述一个或多个源缓冲器中的一个源缓冲器的对于媒体轨道的已编码数据;以及
选择输出,其与所述一个或多个再现管线中的不同的一个再现管线相关联;以及
如果存在媒体轨道的话,则使用所述一个或者多个切换来管理所述媒体轨道中的哪些媒体轨道具有在媒体流传送期间被路由到所述一个或者多个再现管线的已编码数据,其中所述切换模块被进一步适配成,作为在所述媒体流传送期间对所述媒体轨道的管理的一部分:
对哪个媒体轨道具有被路由到所述一个或多个再现管线中的一个再现管线的已编码数据进行切换;以及
添加或移除媒体轨道,作为所述一个或多个切换中的一个切换的选择输入。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810425039.6A CN108495145A (zh) | 2013-04-01 | 2013-09-03 | 媒体流传送中的动态轨道切换 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/854849 | 2013-04-01 | ||
US13/854,849 US20140297882A1 (en) | 2013-04-01 | 2013-04-01 | Dynamic track switching in media streaming |
PCT/US2013/057765 WO2014163662A1 (en) | 2013-04-01 | 2013-09-03 | Dynamic track switching in media streaming |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810425039.6A Division CN108495145A (zh) | 2013-04-01 | 2013-09-03 | 媒体流传送中的动态轨道切换 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105393544A true CN105393544A (zh) | 2016-03-09 |
Family
ID=49170902
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810425039.6A Withdrawn CN108495145A (zh) | 2013-04-01 | 2013-09-03 | 媒体流传送中的动态轨道切换 |
CN201380075536.3A Pending CN105393544A (zh) | 2013-04-01 | 2013-09-03 | 媒体流传送中的动态轨道切换 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810425039.6A Withdrawn CN108495145A (zh) | 2013-04-01 | 2013-09-03 | 媒体流传送中的动态轨道切换 |
Country Status (4)
Country | Link |
---|---|
US (2) | US20140297882A1 (zh) |
EP (1) | EP2982128A1 (zh) |
CN (2) | CN108495145A (zh) |
WO (1) | WO2014163662A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107209747A (zh) * | 2015-01-20 | 2017-09-26 | 微软技术许可有限责任公司 | 多协议媒体流 |
CN109951733A (zh) * | 2019-04-18 | 2019-06-28 | 北京小米移动软件有限公司 | 视频播放方法、装置、设备及可读存储介质 |
CN110545456A (zh) * | 2018-05-29 | 2019-12-06 | 北京字节跳动网络技术有限公司 | 媒体文件的同步播放方法、装置及存储介质 |
CN111432150A (zh) * | 2019-04-23 | 2020-07-17 | 杭州海康威视数字技术股份有限公司 | 一种录像同步回放的方法及装置 |
CN112714360A (zh) * | 2019-10-25 | 2021-04-27 | 上海哔哩哔哩科技有限公司 | 媒体内容播放方法和系统 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130311581A1 (en) * | 2012-05-18 | 2013-11-21 | Andrew Milburn | Transmission of command execution messages for providing a shared experience to both internal, at-venue participants, and external, networked participants |
MX2017004885A (es) * | 2014-10-20 | 2017-07-05 | Sony Corp | Dispositivo de recepcion, dispositivo de transmision y metodo de procesamiento de datos. |
CN104333770B (zh) * | 2014-11-20 | 2018-01-12 | 广州华多网络科技有限公司 | 一种视频直播的方法以及装置 |
US20170199634A1 (en) * | 2016-01-08 | 2017-07-13 | Samsung Electronics Co., Ltd. | Methods and systems for managing media content of a webpage |
US11057450B2 (en) * | 2016-06-07 | 2021-07-06 | Rgb Spectrum | Systems, methods, and devices for seamless switching between multiple source streams |
CN110545254B (zh) * | 2018-05-29 | 2021-05-04 | 北京字节跳动网络技术有限公司 | 一种元数据容器的解析方法、装置及存储介质 |
CN112203116A (zh) * | 2019-07-08 | 2021-01-08 | 腾讯科技(深圳)有限公司 | 一种视频生成方法、播放方法及相关设备 |
CN115298647A (zh) * | 2020-03-13 | 2022-11-04 | 弗劳恩霍夫应用研究促进协会 | 用于使用流水线级渲染声音场景的装置和方法 |
IT202000016627A1 (it) * | 2020-08-17 | 2022-02-17 | Romiti Nicholas | “buffering multiplo audio/video in sistemi multisorgente gestiti da switch, in ambito di regia automatica” |
CN113868084A (zh) * | 2021-09-27 | 2021-12-31 | 联想(北京)有限公司 | 智能控制方法、装置及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050084237A1 (en) * | 2003-10-16 | 2005-04-21 | Kellner Charles R.Jr. | Systems and methods for managing frame rates during multimedia playback |
US20050123058A1 (en) * | 1999-04-27 | 2005-06-09 | Greenbaum Gary S. | System and method for generating multiple synchronized encoded representations of media data |
US20080086570A1 (en) * | 2006-10-10 | 2008-04-10 | Ortiva Wireless | Digital content buffer for adaptive streaming |
CN102577411A (zh) * | 2009-09-22 | 2012-07-11 | 高通股份有限公司 | 使用信令或块创建的增强型块请求流送系统 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6704769B1 (en) * | 2000-04-24 | 2004-03-09 | Polycom, Inc. | Media role management in a video conferencing network |
US20020133247A1 (en) * | 2000-11-11 | 2002-09-19 | Smith Robert D. | System and method for seamlessly switching between media streams |
US20020188772A1 (en) * | 2001-04-02 | 2002-12-12 | Mark Radcliffe | Media production methods and systems |
US7558326B1 (en) * | 2001-09-12 | 2009-07-07 | Silicon Image, Inc. | Method and apparatus for sending auxiliary data on a TMDS-like link |
JP4165298B2 (ja) * | 2003-05-29 | 2008-10-15 | 株式会社日立製作所 | 端末装置、及び通信網の切替え方法 |
US7733962B2 (en) * | 2003-12-08 | 2010-06-08 | Microsoft Corporation | Reconstructed frame caching |
US8837921B2 (en) * | 2004-02-27 | 2014-09-16 | Hollinbeck Mgmt. Gmbh, Llc | System for fast angle changing in video playback devices |
US20060123063A1 (en) * | 2004-12-08 | 2006-06-08 | Ryan William J | Audio and video data processing in portable multimedia devices |
US9948882B2 (en) * | 2005-08-11 | 2018-04-17 | DISH Technologies L.L.C. | Method and system for toasted video distribution |
CN100352270C (zh) * | 2005-10-21 | 2007-11-28 | 西安交通大学 | 一种支持多源流媒体的同步播放控制方法 |
US8571215B2 (en) * | 2006-01-05 | 2013-10-29 | Telefonaktiebolaget L M Ericsson (Publ) | Combined storage and transmission of scalable media |
US8504709B2 (en) * | 2006-05-03 | 2013-08-06 | Sony Corporation | Adaptive streaming buffering |
WO2008023328A2 (en) * | 2006-08-24 | 2008-02-28 | Nokia Corporation | System and method for indicating track relationships in media files |
US7693190B2 (en) * | 2006-11-22 | 2010-04-06 | Cisco Technology, Inc. | Lip synchronization for audio/video transmissions over a network |
US7996872B2 (en) * | 2006-12-20 | 2011-08-09 | Intel Corporation | Method and apparatus for switching program streams using a variable speed program stream buffer coupled to a variable speed decoder |
US9060187B2 (en) * | 2008-12-22 | 2015-06-16 | Netflix, Inc. | Bit rate stream switching |
US9253430B2 (en) * | 2009-01-15 | 2016-02-02 | At&T Intellectual Property I, L.P. | Systems and methods to control viewed content |
CN102065060B (zh) * | 2009-11-16 | 2013-09-11 | 华为技术有限公司 | 媒体流切换同步方法和流媒体服务器 |
US8817934B2 (en) * | 2010-07-28 | 2014-08-26 | Qualcomm Incorporated | System and method for synchronization tracking in an in-band modem |
US20120254933A1 (en) * | 2011-03-31 | 2012-10-04 | Hunt Electronic Co., Ltd. | Network video server and video control method thereof |
US9167296B2 (en) * | 2012-02-28 | 2015-10-20 | Qualcomm Incorporated | Customized playback at sink device in wireless display system |
JP5632418B2 (ja) * | 2012-04-12 | 2014-11-26 | 株式会社東芝 | ビデオサーバ、およびその映像信号出力制御方法 |
-
2013
- 2013-04-01 US US13/854,849 patent/US20140297882A1/en not_active Abandoned
- 2013-09-03 CN CN201810425039.6A patent/CN108495145A/zh not_active Withdrawn
- 2013-09-03 EP EP13762664.4A patent/EP2982128A1/en not_active Withdrawn
- 2013-09-03 WO PCT/US2013/057765 patent/WO2014163662A1/en active Application Filing
- 2013-09-03 CN CN201380075536.3A patent/CN105393544A/zh active Pending
-
2017
- 2017-07-20 US US15/655,765 patent/US20170324792A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050123058A1 (en) * | 1999-04-27 | 2005-06-09 | Greenbaum Gary S. | System and method for generating multiple synchronized encoded representations of media data |
US20050084237A1 (en) * | 2003-10-16 | 2005-04-21 | Kellner Charles R.Jr. | Systems and methods for managing frame rates during multimedia playback |
US20080086570A1 (en) * | 2006-10-10 | 2008-04-10 | Ortiva Wireless | Digital content buffer for adaptive streaming |
CN102577411A (zh) * | 2009-09-22 | 2012-07-11 | 高通股份有限公司 | 使用信令或块创建的增强型块请求流送系统 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107209747A (zh) * | 2015-01-20 | 2017-09-26 | 微软技术许可有限责任公司 | 多协议媒体流 |
CN110545456A (zh) * | 2018-05-29 | 2019-12-06 | 北京字节跳动网络技术有限公司 | 媒体文件的同步播放方法、装置及存储介质 |
US10978109B2 (en) | 2018-05-29 | 2021-04-13 | Beijing Bytedance Network Technology Co., Ltd. | Synchronously playing method and device of media file, and storage medium |
CN110545456B (zh) * | 2018-05-29 | 2022-04-01 | 北京字节跳动网络技术有限公司 | 媒体文件的同步播放方法、装置及存储介质 |
CN109951733A (zh) * | 2019-04-18 | 2019-06-28 | 北京小米移动软件有限公司 | 视频播放方法、装置、设备及可读存储介质 |
CN111432150A (zh) * | 2019-04-23 | 2020-07-17 | 杭州海康威视数字技术股份有限公司 | 一种录像同步回放的方法及装置 |
CN112714360A (zh) * | 2019-10-25 | 2021-04-27 | 上海哔哩哔哩科技有限公司 | 媒体内容播放方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
EP2982128A1 (en) | 2016-02-10 |
CN108495145A (zh) | 2018-09-04 |
WO2014163662A1 (en) | 2014-10-09 |
US20170324792A1 (en) | 2017-11-09 |
US20140297882A1 (en) | 2014-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105393544A (zh) | 媒体流传送中的动态轨道切换 | |
CN109688473B (zh) | 多视频播放方法及存储介质、计算机设备 | |
US20210344938A1 (en) | Video decoding method and apparatus, computer device, and storage medium | |
JP2009502050A (ja) | レンダリング済待ち行列を伴うgpuタイムライン | |
CN101763213B (zh) | 一种窗口布局切换方法及其系统 | |
KR20110022653A (ko) | 균일한 비디오 디코딩 및 디스플레이 | |
CN101689137B (zh) | 使用共享存储器池的数字数据管理 | |
CN104967901A (zh) | 媒体播放中的音轨切换方法和媒体播放设备 | |
US20240013810A1 (en) | Branching logic in a playback environment | |
CN103947221A (zh) | 用户界面显示方法以及使用该方法的装置 | |
CN104601535B (zh) | 视频处理方法和系统 | |
JP2009510890A (ja) | 電波識別タグが付加された情報端末装置及びその制御方法 | |
CN108491178B (zh) | 信息浏览方法、浏览器和服务器 | |
CN109599133B (zh) | 语言音轨的切换方法、装置、计算机设备及存储介质 | |
CN107426600B (zh) | 切换音轨和字幕轨的播放方法及装置 | |
KR20090013237A (ko) | 데이터 스트림과 연관된 기준을 제공하는 방법 및 시스템 | |
CN111225242A (zh) | 视频播放容灾方法、装置及计算机存储介质 | |
WO2023029821A1 (zh) | 视频缓存播放方法、装置、电子设备及存储介质 | |
CN109819305A (zh) | 一种应用程序中的视频播放控制方法及装置 | |
CN113329237B (zh) | 一种呈现事件标签信息的方法与设备 | |
US20130311859A1 (en) | System and method for enabling execution of video files by readers of electronic publications | |
EP3891962B1 (en) | Synchronized jitter buffers to handle codec switches | |
US20180052786A1 (en) | Improvement in sending of multimedia streams | |
KR100673093B1 (ko) | 휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한리얼타임 멀티미디어 파일 재생 방법 | |
US9378300B2 (en) | Interface method and display device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160309 |
|
WD01 | Invention patent application deemed withdrawn after publication |