传输流自动切换

文档序号:555719 发布日期:2021-05-14 浏览:3次 >En<

阅读说明:本技术 传输流自动切换 (Automatic switching of transport streams ) 是由 杰夫·赫斯 乔纳森·埃德林·克莱格 斯科特·达纳希 格雷格·威廉·里德尔 于 2019-10-31 设计创作,主要内容包括:一种装置、系统和方法执行传输流的自动切换。该方法在输出服务器上执行。该方法包括选择第一传输流。该方法包括基于所述第一传输流生成输出的第一部分。该方法包括选择第二传输流。该方法包括确定帧时间以将所述第一传输流的第一数据包(firstpackets)同步到所述第二传输流的第二数据包。所述帧时间基于包含在所述第一传输流和所述第二传输流中的内容项的开始时间,以及使用所述第一传输流的所述内容项的完成进度。该方法包括基于所述帧时间确定所述第二传输流中的位置。该方法包括基于从所述位置开始的所述第二传输流生成所述输出的第二部分。(An apparatus, system, and method perform automatic switching of transport streams. The method is performed on an output server. The method includes selecting a first transport stream. The method includes generating a first portion of an output based on the first transport stream. The method includes selecting a second transport stream. The method includes determining a frame time to synchronize first data packets (firstpackets) of the first transport stream to second data packets of the second transport stream. The frame time is based on a start time of a content item contained in the first transport stream and the second transport stream, and a completion progress of the content item using the first transport stream. The method includes determining a location in the second transport stream based on the frame time. The method includes generating a second portion of the output based on the second transport stream starting from the location.)

传输流自动切换

背景技术

电视节目可以不间断地播出和显示,也可以在电视节目的各个片段段之间,与电视节目相结合的穿插播放其他内容(如广告、图形等)。观众可以以各种不同的方式看到该广播。在第一个示例中,可以通过天线、电缆、卫星等向观众播放电视节目。在第二个示例中,可以通过,例如,网站、移动视频提供商等使用流媒体服务向观众播放电视节目。无论电视节目以何种方式播放,参与播放的实体(例如,以下称为“广播公司”)都可以采取措施来确保播放完整,并按预期播放。例如,广播公司通过播放完整的广告来获得收入。因此,广播系统不中断地运行是至关重要的。广播系统被配置为即使在广播系统的单个组件发生故障时也能显示广播。例如,可以使用提供冗余数据的备份组件。

有一种方法可以确保广播系统在其组件可能停止工作的情况下仍能运行,即在广播系统中使用多个产生相同广播的机器(例如,对于一个频道)和在机器之间进行选择的开关。这些机器可以产生串行数字接口(SDI)输出,其中一台主机器提供主SDI输出,而一台辅助机器提供辅助(例如,备份)SDI输出。交换机可以选择主SDI输出用于广播,并且在主输出遇到问题时(例如,主机器停止工作并且不产生主SDI输出),切换到辅助SDI输出。如本领域技术人员所理解的那样,利用SDI和SDI相关特性的广播系统需要用于实现交互物理组件。例如,物理装置(例如,SDI切换器)或卡可以使SDI输出之一能够被选择用于广播。当在输出之间进行切换时,最希望实现“干净切换(clean switch)”,即,两个输出端精确同步,并且输出之间的切换是无缝的,没有音频/视频/元数据故障,没有伪影存在等。

当使用云实现或虚拟机进行广播播放时,不能将广播系统配置为依赖于SDI,可以使用从SDI到互联网协议(IP)流的移动。然而,当前行业实施的传输流播放没有体现将主播放服务器的输出到备份播放服务器的输出进行干净切换,反之亦然。因此,当在基于传输流的广播系统中发生播放服务器的故障时,广播可能不是“干净的”(例如,在切换中无缝的、没有伪影、没有故障等)。本领域技术人员将理解从一个传输流切换到另一个传输流时同步的重要性。传统的方法并不能为这种传输流的切换提供有效的解决方案,因为这种切换特别难以干净的方式实现干净切换。

发明内容

示例性实施例涉及在输出服务器上执行的用于传输流的自动切换的方法。该方法包括:接收多个传输流并选择所述传输流中的第一传输流。该方法包括基于所述第一传输流生成输出的第一部分。该方法包括选择剩余的传输流中的第二传输流。该方法包括确定帧时间,以将所述第一传输流的第一数据包同步到所述第二传输流的第二数据包。所述帧时间基于包含在所述第一传输流和所述第二传输流中的内容项的开始时间和使用所述第一传输流的内容项的完成进度。所述该方法包括基于帧时间确定所述第二传输流中的位置,并基于从所述位置开始的所述第二传输流生成所述输出的第二部分。

示例性实施例针对包括收发器和处理器的输出服务器。所述收发器被配置为接收多个传输流。所述处理器被配置为选择所述传输流中的第一传输流,并基于所述第一传输流生成输出的第一部分。所述处理器还被配置为选择剩余的传输流中的第二传输流,并确定帧时间,以将所述第一传输流的第一数据包同步到所述第二传输流的第二数据包。所述帧时间基于包含在所述第一传输流和所述第二传输流中的内容项的开始时间和使用所述第一传输流的内容项的完成进度。所述处理器还被配置为基于所述帧时间确定所述第二传输流中的位置,并基于在所述位置开始的所述第二传输流生成所述输出的第二部分。

附图说明

图1是根据本文所述的各种示例性实施例的示例性输出系统;

图2示出了根据本文所述的各种示例性实施例的图1的系统的示例性输出服务器;

图3至图5示出了根据本文所述的各种示例性实施例的示例性数据包序列;

图6示出了根据本文所述的各种示例性实施例的程序时间戳序列;

图7示出了根据本文所述的各种示例性实施例的使用传输流生成输出的示例性方法。

具体实施方式

可参照以下描述和相关附图进一步理解示例性实施例,其中,相似的元件具有相同的附图标记。示范性实施例涉及一种以干净的方式执行从第一输送流到第二输送流的自动切换的装置、系统和方法。该示例性实施例提供了一种机制,该机制在涉及传输流的广播系统中实现切换器,以实现基于传输流的广播的自动切换到备份。

首先,描述关于传输流的示例性实施例。然而,传输流的使用仅仅是示例性的。示范性实施例还可以用于其他格式或类型的流中,其中,以与传输流相对应的特性来传输数据。因此,传输流的使用是为了说明的目的,并且可为其他类型的数据传输格式实现示例性实施例。

示例性实施例针对传输流和传输内容(例如,媒体内容)的数据。本领域技术人员将理解,传输流(例如,MPEG传输流)可以与用于传输各种类型的数据(例如,音频、视频、程序关联表(PAT)、程序映射表(PMT)等)的标准化格式有关。传输流可以在不同类型的广播系统(例如,互联网协议电视(IPTV)、数字视频广播(DVB)等)中实现。因此,可在具有共同特性的这些类型的广播系统和其他系统中实施所述示例性实施例。

传输流可以封装多个打包的基本流。考虑到这些基本流,传输流可包括描述所有包括的基本流的PAT和/或PMT。例如,PAT/PMT可以指示传输流包括视频基本流,其以用于给定节目标识(PID)(例如,唯一标识基本流中的数据的编号)的特定编码进行编码。传输流还可以包括纠错信息、用于保持传输完整性的同步模式特性等。传输流还可以启用多个音频通道与单个视频通道关联,多个通道在单个传输流中关联等功能。例如,传输流可以包括被多路复用(复用)的多个频道(例如,电视提供商的频道阵容中的频道,例如流行音乐频道、乡村音乐频道、喜剧频道等)。进一步的信息可以以基本上类似于描述基本流的PAT/PMT的方式识别这些通道。

传输流还可以利用系统时钟特性(例如,程序时钟参考(PCR))。PCR可驻留在生成传输流的编码器上。PCR可用于指示参考时钟值或用于确定参考时钟值的其他值(例如,抖动估计)。PCR可以处理在两个装置(例如,传输流的发送器和传输流的接收器)之间存在时间漂移的场景。例如,第一装置可以将音频和视频(A/V)数据传输到第二装置。第一装置还可以传输定义内容的标题或信息以及该内容的播放方式(例如,A/V数据中的一帧将在特定时间显示)。PCR可以通过同步第一装置和第二装置的时钟来解决可能存在的定时问题。例如,在没有同步的情况下,如果已经在第二装置上经过了指定的时间(例如,创建缓冲区欠载),或者如果指定的时间尚未到,产生了等待时间和缓冲区(例如,其中,延长的等待时间会导致缓冲区溢满或缓冲区欠载),那么在指定的时间传输,以在指定的时间播放的帧可能会遇到问题。在一个示例性方式中,PCR可以通过对第一装置正在利用的时间进行编码来解决多个装置的时钟漂移,从而使得第二装置可以将其时钟与第一装置的时间同步。

传输流的另一个特性是,可以将传输流分成预定大小的段并交织在一起,以便以恒定的比特率进行广播传输流。在一个示例中,这些段的大小可能相对较小,为188字节,这提供了降低延迟的特性。虽然所描述的示例性实施例的段为188字节,但根据示例性实施例的机制可以在传输流利用不同大小的段(例如,更大或更小的大小)的情况下实施,同时仍然保留所述示例性实施例提供的机制的特性。恒定的比特率导致传输流的广播速率一致。如果视频或音频在比特率中波动,则传输流的多路复用器(muxer)可以利用填充字节来保留恒定的比特率。如下面将详细描述的那样,示例性实施例利用传输流的这些特性,其中使用一致的预定大小的段,并保持恒定比特率。具体而言,一个段可以对应于已知的、预定的时间量。

图1示出了根据本文所述的各种示例性实施例的示例性输出系统100。输出系统100可以在各种广播系统中实施,这些广播系统利用传输流作为向广播链的广播实体或观众提供输出的基础。输出系统100可以包括提供主传输流110的主内容源105、提供可与主传输流110互换或用于与主传输流110进行切换的次传输流120的次内容源115(例如,具有相同的编码参数,包括音频/视频格式、分辨率、色彩空间等),以及传输流自动切换(TSACO)服务器125接收主传输流110和次传输流120以生成输出130。虽然,示例性实施例用两个内容源和各自的传输流进行了说明,但本领域的熟练人员将理解,输出系统100可以包括由TSACO服务器125接收的各自的内容源产生的任何数量的传输流。

在一个示例性实施例中,主内容源105和次内容源115可以与广播链的公共级别(例如,相同实体)相关联。分别与主内容源105和次内容源115相关联的实体可以处于广播链的任何级别。例如,该实体可以是内容创建者(例如,内容的生产者)、媒体公司(例如,企业集团)、提供商(例如,有线电视运营商、卫星运营商等)等。根据示例性实施例的机制可以在包括观众的最终级别之前在广播链的这些级别中的任何级别中实施。同以实体使用的主内容源105和次内容源115只是为了说明的目的。根据另一个示例性实施例,主内容源105可以与第一实体相关联,并且次内容源115可以与第二实体相关联,其中,第一实体和第二实体可以在广播链的相同级别或不同级别中。

如下面将描述的那样,主传输流110和次传输流120可以在格式、分辨率、色彩空间等方面彼此互换,使得它们可以被切换以用于广播。因此,只要第一实体和第二实体被配置为分别将主传输流110和次传输流120中的各自的传输流提供给共同的目的地(例如,TSACO服务器125),则与主内容源和次内容源相关联的实体可以与不同的实体相关联和/或驻留在不同的级别上。

在一个利用主内容源105和次内容源115的示例性方式中,实体可以是分别输出主传输流110和次传输流120的媒体公司。该媒体公司可以从驻留在广播链中的前一级的源接收内容。随后,可以对内容使用适当的编码操作、转换操作等以生成主传输流110和次传输流120。因此,主内容源105和次内容源115可以是接收内容并生成传输流的媒体公司的组成部分。在生成各自的传输流110、120时,从广播链中的上一级接收的内容不需要保持所接收的状态,并且可以对其进行修改。例如,广告可以被包含在可用的段中,被插入到内容的段之间等。在另一个例子中,图形可以被合并到内容中。然而,如上所述,只要修改的执行基本上相同,由此产生的主传输流110和次传输流120可以相互替换。

在第一示例性实施例中,媒体公司可以将传输流提供给也驻留在媒体公司的TSACO服务器125。在第二示例性实施例中,媒体公司可以将传输流提供给驻留在广播链的不同的、随后级别上的TSACO服务器125。广播链中的下一个级别可以是接收输出130的提供者。不管TSACO服务器125驻留在哪里,TSACO服务器125都可以接收主传输流110和次传输流120。在生成输出130时,TSACO服务器125可以在主传输流110和次传输流120之间进行选择。如下面将描述的那样,当所选的传输流发生故障时,TSACO服务器125可以选择或切换到其他的传输流。当仅将主传输流110或次传输流120中的一个用于输出130时,输出130可基于其所选的传输流。当使用至少一个切换时,输出130可以是主传输流110和次传输流120的混合。输出130还可以以动态的方式和实时地生成(如本领域的技术人员所理解的那样,其可以或不可以受到预定的延迟的限制)。

示例性实施例可以用诸如上述实施例的物理组件来实现输出系统100。因此,输出系统100可以以硬件实现。然而,示例性实施例也可以在其他介质中实现输出系统100。输出系统100也可以单独作为软件来实现、单独作为固件来实现或作为两种或更多的硬件、软件和固件的组合来实现。例如,如上所述,输出系统100可以在可以不依赖于任何特定的硬件组件的云或虚拟机环境中实现。因此,输出系统100可以在被配置为生成输出130的云或虚拟机环境中实现。在一个特定的例子中,输出系统100可以被配置为使输出130是仅为I帧的视频或包含P和B帧的视频。

输出系统100可以在硬件、软件和/或固件的容量中合并广播系统的其他组件。例如,输出系统100可以进一步包括:发起服务、使用由广告服务器提供的广告的个性化服务器、由图形服务器提供的图形等中的至少一个、分发缓存、内容交付网络等。输出系统100可以包括驻留在上述一个或多个组件中的功能,或者以单独或分布式方式记录的这些其他组件。

图2示出了根据本文所述的各种示例性实施例的图1的输出系统100的TSACO服务器125的示例。如上所述,TSACO服务器125可以接收主传输流110和次传输流120,并选择这些流以生成输出130。TSACO服务器125被配置为执行多个引擎,这些引擎执行功能以执行自动选择,该自动选择在选定的传输流失败时选择未选择的传输流。如上所述,当分别生成传输流时(尽管基本上相同,以便可互换),传输流110、120之间可能存在时间上的漂移。TSACO服务器125可以执行该切换功能,以干净的方式生成输出130,使得尽管切换,但输出130中体现的广播仍可以避免任何中断,伪像或故障。TSACO服务器125可以包括处理器205、存储装置210、显示装置215、输入/输出(I/O)装置220、收发器225和其他组件230(例如,用于建立连接的其他机制)。

处理器205可以被配置为执行TSACO服务器125的多个引擎。例如,这些引擎可以包括选择引擎235、帧时引擎240、重建基准引擎(rebasing engine)245和多路复用引擎250。选择引擎235可以被配置为在主传输流110和次传输流120之间进行选择。帧时引擎240可以被配置为确定传输流110、120之间的相关性,以进行干净切换。重建基准引擎245可以被配置为确定在传输流110、120中所选的一个中使用的移位,以生成输出130。多路复用引擎250可以被配置为基于选择引擎235、帧时引擎240和重建基准引擎245的输出来生成输出130。

上述引擎各自都是由处理器205执行的应用程序(例如,程序)只是示例性的。与引擎相关联的功能还可以被表示为TSACO服务器125的单独的结合的组件,或者可以是耦合到TSACO服务器125的模块化组件,例如,具有或不具有固件的集成电路。例如,集成电路可以包括用于接收信号的输入电路和用于处理信号和其他信息的处理电路。引擎还可以体现为一个应用程序或单独的应用程序,或者体现为一个或多个多功能程序的一部分。因此,可以以硬件,软件,固件或其组合的各种方式来实现应用。可以以服务器的这些或其他配置中的任何一种来实现示例性实施例。

存储器210可以是被配置为存储与由TSACO服务器125执行的操作相关的数据的硬件组件。例如,存储器210可以存储为传输流计算的重建基准位移值。显示设备215可以是被配置为向用户显示数据的硬件组件,而I/O设备220可以是使用户能够输入的硬件组件。应当注意的是,显示设备215和I/O设备220可以是单独的组件或集成在一起,例如,触摸屏。显示设备215和I/O设备220可以使管理员能够根据示例性实施例管理传输流自动转换机制。收发器225可以是被配置为与广播链中涉及的实体的组件建立连接的硬件组件。

如上所述,示例性实施例还可以在云中或利用虚拟机来实现。因此,在本文中,关于以硬件和/或TSACO服务器125的组件来体现TSACO服务器125的描述仅用于说明目的。当在云中或用虚拟机实现时,以下针对TSACO服务器125的组件和引擎描述的功能可能是导致其他组件或其他设备执行相应操作的指令。例如,处理器205的引擎235-250的功能可以代表用于一个或多个组件/装置的相应指令以实现预期的操作。在另一个示例中,收发器225可以代表广播链的实体的组件和/或广播链的实体内的组件/装置进行通信的连接机制。

如上所述,示例性实施例提供了在所选的第一传输流到至少一个其他可用的传输流中的第二传输流之间自动执行的干净切换。例如,可以出于包括第一传输流的故障、预期的切换等在内的各种原因而执行转换或切换。在一个示例性实施例中,TSACO服务器125可以接收被解复用(解复用(demuxed))到缓冲区中的主传输流110和次传输流120。然后,TSACO服务器125可以将所选的传输流重新复用(再复用(remux))到输出130中。当用于重新复用到输出130中的所选的传输流出现问题时,TSACO服务器125可以切换并选择另一个解复用的传输流用于重新复用到输出130中。该切换可由TSACO服务器125执行,使得输出130而不会中断,并且就像没有执行切换一样以连续的方式生成。

选择引擎235可以在主传输流110和次传输流120之间选择。如上所述,TSACO服务器125可以接收主传输流110和次传输流120(例如,通过收发器225)以用于随后的解复用(例如,通过由处理器205(未示出)执行的解复用器或解复用操作)。可以将解复用的传输流110、120存储在缓冲区中(例如,作为根据示例性实施例为机制保留的存储装置210的一部分,或者使用远程存储组件)。因此,根据该示例性实施例,选择引擎235可以选择解复用传输流110、120中的一个以进行后续处理。如下面将描述的那样,基于后续操作,选择引擎235可以选择不同的、未选择的传输流进行再复用。选择引擎235可以基于各种触发器来确定要执行的选择。例如,选择引擎235可以接收主内容源105被停用的指示(例如,通过远程指示、通过I/O设备220的手动输入等)。在另一个示例中,当在主传输流110中没有接收到预定数量的连续数据包或给定时间段内的预定数量的数据包时,选择引擎235可以确定停用主内容源105。当可以从主传输流110进行切换的其他示例可以包括与主传输流110相关联的主缓冲区变得太低、主传输流110中的数据包丢失、主传输流110的抖动水平太高、格式更改为视频/音频/等意外的、指示切换等的外部应用程序接口。根据示例性实施例的机制和选择引擎235的选择功能也可以以其他方式配置。例如,选择引擎235可以在解复用之前选择传输流。

帧时引擎240可以确定传输流110、120之间的相关性,以便选择引擎235在选择不同的传输流时进行干净切换。帧时间引擎240可以利用传输流的特征,例如,预定大小和恒定比特率。如本文中将显而易见的,帧时间引擎240可以确定帧时间,在该帧时间中,可以利用时间戳来确定当前选择的传输流(在本文称为“主传输流”)中的内容的帧,该帧对应于将被选择以取代当前选择的传输流(在本文称为“次传输流”)的不同传输流中的内容的帧。需要注意的是,对传输流使用主和次并不意味着传输流具有任何优先性或层次性结构,这些术语仅用于区分当前选择的传输流和当前未选择的一个或多个传输流。帧时间引擎240可以基于所识别的内容项目的开始时间和该所识别的内容项目的缓冲区中已完成的播放或进度(以下称为“完成进度”)来确定帧时间。由输出系统100处理的每个内容项目可以包括开始时间或内容项目开始的时间值(以下统称为“开始时间”)。随着内容项目的进行,利用传输流的特征,可以相对于开始时间为每个帧分配或标记时间值(以下统称为“时间戳”)。该时间戳可用于同步主内容源105和次内容源115,或同步主传输流110和次传输流120。因此,在执行切换时,帧时间引擎240可以利用当前选择的主传输流的完成京都,并确定要选择的次传输流中的相应帧。如下面将详细描述的那样,可以基于传输流的I帧来执行切换。在传输流110、120同步的情况下,要选择的次传输流中的相应帧可以与当前选择的主传输流中完成进度的帧一致。因此,可以进行切换,其中,当前选择的主传输流的最后一帧与要选择的次传输流的第一帧继续进行,从而使内容项目以干净的方式无缝输出,没有伪影、故障等。

重建基准引擎245可以确定在传输流110、120中的选定的一个中使用的移位以生成输出130。重建基准引擎245可以利用第一重建基准来重新复用所选的传输流(例如,主传输流110)。因此,可以在所选的传输流的每个数据包上使用第一重建基准值来生成输出130。当执行切换到新的传输流(例如,次传输流120)时,重建基准引擎245可以利用帧时间引擎240的输出来确定要在新选择的传输流的每个数据包上使用的第二重建基准值。

多路复用引擎250可以基于选择引擎235、帧时引擎240和重建基准引擎245的输出生成输出130。因此,当选择引擎235对主传输流110进行选择时,重建基准引擎245可以指示要在再复用操作中使用的第一重建基准值。多路复用引擎250可以继续使用第一重建基准值对缓冲的解复的主传输流110进行重新复用,直到选择引擎235对次传输流110指示一个新的选择。然后,多路复用引擎250可以从重建基准引擎245接收到指示,该指示以便在该第二重定值的基础上执行重解操作(例如,第二重定值基于帧时间引擎240的输出)。混叠引擎250可以使用第二重基值对缓冲的解复的次传输流120进行复用。混叠引擎250可以继续使用第二重基值,直到传输流结束或当进一步选择切换传输流时。

图3-5示出了根据本文所述的各种示例性实施例的示例性数据包序列300、400、500。图3示出了第一数据包序列300,在该序列中TSACO服务器125通过重新复用主传输流110的缓冲数据包来生成输出130。图4示出了第二数据包序列400,在该序列中TSACO服务器125通过从主传输流110切换到次传输流120来生成输出130。图5示出了第三数据包序列500,在该序列中TSACO服务器125通过重新复用次传输流120的缓冲数据包来生成输出130。数据包序列300显示主传输流110何时成功运行,数据包序列400显示主传输流何时失败并且使用次传输流115,并且数据包序列500显示当主传输流110保持停机时,继续使用次数据包传输流115。

图3-5包括输出主传输流110的主内容源105、输出次传输流120的次内容源115,将主传输流110和次传输流120解复用到缓冲区305中,并在复用器310中重新复用以生成输出130。被缓冲的传输流110、120的数据包被说明为I/P/B帧(例如,用于视频)和A帧(例如,用于音频),其中,I/P/B帧对应于沿一个序列(例如,从601到627)的A帧。缓冲区305被示出为单个缓冲区只是示例性的。本领域的技术人员将理解,对于传输流110、120中的每一个,可以有单独的缓冲区。

如上所述,TSACO服务器125可以利用I帧作为基础来执行从主传输流110到次传输流120的切换。例如,如在数据包序列300中所示,复用器310可以基于主传输流110接收缓冲的I/P/B和A帧。在数据包序列400中,可以存在指示,即主内容源105不再向TSACO服务器125提供主传输流110。例如,主内容源105可能已经传输了被解复用并存储在缓冲区305中的帧601至615。然而,在帧615之后,主内容源105可能已经失败,并且主传输流110可能已经停止被接收。次内容源115可以在主传输流110停止被接收之后继续操作并提供次传输流120。由于I帧可被用作断点,因此复用器310可以将来自主传输流110的缓冲帧601至612重新复用为输出130。在I帧断点之后被缓冲的主传输流110的数据包可以被丢弃。

在切换到次传输流120的缓冲帧时,复用器310可以使用来自主传输流110的最后一个I帧,对于该帧,前一个帧已经完成。相应地,在数据包序列500中,在该序列中主内容流105不再传输要解复用并存储在缓冲区305中的主要传输流110,复用器310可以使用缓冲帧613和来自次传输流120的上一帧进行再复用,并用于输出130。

上述从主传输流110切换到次传输流120的过程基于以下假设:次传输流120的下一个I帧对应于作为断点的主传输流110的I帧,以停止用于输出130的再复用。然而,对于主传输流110的上述故障情况,存在这样的情况,即,当次传输流120的所选择的I帧613不是开始对输出130的次传输流120进行复用的正确的I帧。

当考虑传输流时,不能保证被解复用并存储在缓冲区305中的内容源的数据包列表中的特定帧号对应于被解复用并存储在缓冲区305中的另一内容源的第二数据包列表。本领域技术人员将理解,PCR或程序时间戳(PTS)可以不用于同步主传输流110和次传输流120的数据包列表。例如,次内容源115可能已经在第一时间段处于活动状态,然后在第二个计时周期内失败,然后在第三时间段再次变为活动状态。当次内容源115在第三时间段重新启动时,可以将帧重置为不同的帧号(例如,参考、初始帧号,例如0)。因此,帧号、PCR或PTS可能无法提供足够的基础来确保在执行切换时使用正确的重合点。

如上所述,帧时间引擎240可以确定允许传输流110、120被同步的帧时间(例如,主传输流中的第一帧对应于内容项目的次传输流中的第二帧)。例如,帧时间可用于基于开始时间和已完成的进展将主传输流110(例如,选定的传输流)的时间戳转换为与次传输流120(例如,新选定的传输流)的帧相关联的帧和相应的时间戳。

为了利用帧时间,主内容源105和次内容源115可以被配置为彼此通信以执行同步锁操作。该同步锁操作可导致次内容源115请求主内容源105打算播放的数据包或帧的列表。因此,主内容源105和次内容源115可以被配置为向TSACO服务器125传输相同的数据包或帧。该列表可以是用于数据包本身的,或者可以列举用于指示主内容源105的预定播放的其他类型的信息。例如,该列表可以按预期顺序用于不同的内容项。每个内容项目可以被称为“辅助(assist)”,其中。该列表还标识了每个辅助的开始时间或相关联的内容项目将要开始的时间。

该列表可以指示第一剪辑可以在第一时间开始(例如,以小时:分钟:秒.帧的格式来指示时间,以小时、分钟和秒表示给定时间之后的帧数)。然后,该列表可以指示第二剪辑可以在第二时间(例如,在第一个时间之后的小时:分钟:第二.帧)开始。利用具有预定数量的数据(例如,188字节)的部分和恒定比特率的传输流的原理,帧时间引擎240可以使用开始时间的时间和帧来确定帧时间。与主内容源105执行同步锁定操作的任何内容源可以与帧时间一致。以这种方式,主内容源105和次内容源115可以使用相同的同步时间表来生成主传输流110和次内容流120。通过同意在相应的时间播放出所选的内容,内容源105、115的时钟也可以与传输流110、120同步。

帧时间还可以利用现有的传输流规范。例如,可能不需要额外的通信布置。然而,这种实施方式也可以用于示例性实施例。在利用现有的传输流规范时,可以将帧时间插入到传输流中的可用空间中。例如,PES报头可以包括为空的128位。而帧时间只能使用,例如,适合于PES报头的空白空间的64位。

使用帧时间,主传输流110和次传输流120的缓冲区可以包括具有已知同步性的解复用数据包或帧。因此,在重新复用选定的传输流以生成输出130时,帧时间可以使无缝切换得以执行。然而,如上所述,例如,当重新启动相应的内容源时,可以重置时间戳。鉴于时间戳的问题,重建基准引擎245可以提供重新基准化操作,使得时间戳对应于多路复用引擎250的复用操作中的预定时间。

图6示出了根据本文描述的各种示例性实施例的PTS序列600。重建基准引擎245可用于确定应用于选定传输流的重基值。例如,PTS可以是按预定方式递增的时间戳段。如在PTS序列600中所示,主传输流110的初始PTS值为A+2X。在一个示例性实施例中,主传输流110的PTS可以以第一值递增。例如,PTS可以以X递增。因此,第二个PTS可以是A+3X。对于主传输流110中的每个PTS,这可以持续进行。当重新复用主传输流110以生成输出130时,主传输流110的PTS可以对应于输出130的PTS。在输出130的第一个PTS中使用的主传输流110的第一个PTS可以具有第一差异。该第一差异可以对应于重基值。如图所示,用于将主传输流110重定基到输出130的第一重基值可以是delta_1。重建基准引擎245可以使用确定的重基值delta_1,并将其应用到主传输流110的每个后续PTS一段时间,以使主传输流110被再复用到输出130中。如图所示,主传输流110可用于输出130中的六个PTS。因此,当delta_1被应用于主传输流110的六个PTS时,导致输出130的六个PTS的值分别为B,B+X,B+2X,...,B+5X。

由于各种原因(例如,次内容源115的重启),主传输流110的PTS序列可能与次传输流120的PTS序列不对应。如图所示,主传输流110的第一个PTS可以具有值A+2X,而次传输流120的第一个PTS可以具有值A,次传输流120可以以基本上类似于主传输流110的方式递增。因此,次传输流120的第二个PTS可以具有值A+X,以此类推。因此,主传输流110和次传输流120的PTS可以不相互平行。然而,PTS仍然可以按照PTS序列600中示出的方式对齐,其中,主传输流110的第一个PTS与次传输流120的第一个PTS对齐,以此类推。由于重建基准引擎245动态地对在输出130中使用的PTS进行重定基,因此仍然可以使用主传输流110和次传输流120之间的PTS的结果对齐。

如在PTS序列600中所示,主内容流110可能已经在具有A+7X值的第六PTS之后终止。因此,通过使用delta_1的重基值,可以确定输出130的六个PTS。从输出130的第七个PTS开始,TSACO服务器125可以使用次传输流120对输出130进行重新复用。因此,可以在输出130的相应位置中使用第七个PTS以及次传输流110以后的位置。然而,与应用于主传输流110的相同的重基值可能是不正确的。因此,重建基准引擎245可以确定要应用于次传输流120的PTS的第二重基值。由于在重复用的主传输流110的PTS之后的输出130的下一个PTS被显示为具有值B+6X,因此重建基准引擎245可以将第二重基值确定为delta_2,其被应用于具有值A+6X的次传输流120的第七个PTS,以得到B+6X。这个过程可以持续进行,其中,将delta_2的重基值应用于次传输流120的每个PTS,该PTS被用于再复用以生成输出130。

使用重基值,即使主传输流110的PTS不再与次传输流120的PTS并行运行,也可以正确地确定输出130的时间戳以正确的方式进行。以这种方式,当执行切换时,帧时间可以使得能够在重混码中使用正确的数据相关性以生成输出130,而重基值可以使在切换之后进行再复用时输出130的时间戳的正确相关性。

上述示例性实施例针对输出系统100,包括两个内容源105、110,各自产生传输流110、120,该传输流由TSACO服务器125接收以生成输出130,输出130被传输到广播链中的实体。然而,输出系统100可以包括其他的组件和/或具有各种修改。在第一个示例中,如上所述,可以有由TSACO服务器125接收的更多的内容源和更多的传输流。因此,如果主内容源105发生故障,以致不再接收主要内容流110,则TSACO服务器125可以使用来自次内容源115的次传输流120。如果次内容源发生故障,使得次内容流120不再被接收,并且主内容源105尚未重新启动,则TSACO服务器125可以使用来自第三内容源(未示出)的第三传输流(未示出)。如果次内容源15发生故障,使得主内容流120不再被接收,并且主内容源105已经被重新启动,则TSACO服务器125可以使用主传输流或第三传输流。因此,输出系统100可以将这些更多的内容源和传输流合并,作为冗余后备供TSACO服务器125使用。例如,如果一个特定的传输流与一个高优先级或高收收益信道相关联,则即使在重大故障的条件下,这种多冗余配置也可确保在输出130中的预定输出。

在第二个示例中,可能有多个输出系统100,这些输出系统100被集成到一个整体系统中。在基本上类似的方式,输出系统100是收敛、去分支或合并方案(统称为“收敛”方案)的方式,在该方案中,多个输入产生单个输出,整体系统可以包括多个输出系统100,整个系统可以包括多个输出系统100,使得来自各个输出系统100的多个输出130可以像传输流110、120一样用作输入。因此,在最不同的、最高的级别上,每个输出系统100可以接收来自内容源的传输流(例如,如图1所示)。在下一个较低的级别上,可能有一半的输出系统100驻留在紧邻的较高级别上。在该较低的级别上,每个输出系统100可以从较高级别的输出系统100接收多个输出130,作为再复用的传输流。然后,在较低级别中的输出系统可以产生各自的输出130作为再复用传输流。这可以持续到最低输出系统100接收输出130作为重新复用的传输流以生成最终输出130为止。以这种方式,整体系统可以配备冗余输出系统100,该冗余输出系统100提供了所述示例性实施例可用于将所述缓冲区再复用到最终输出中。也就是说,如果主TSACO服务器125发生故障,则可以有一个次TSACO服务器125提供输出130用于再复用成进一步的输出130。

较低级别的输出系统100也可以利用上述关于帧时间和重定基的特性。例如,当驻留在第二较低级别的输出系统100接收到时,驻留在第一级别的不同输出系统100的输出130可能具有不匹配的PCR和/或PTS值。然而,帧时间操作和重定基准操作可能会同步第一级的输出130,使得缓冲区305中缓冲的数据包或帧具有已知的相关性。也可以通过使用每个PTS的每个重基值的重定基准操作来同步PTS。

输出系统100还可以配置有监控功能,以向管理员提供警报。在第一个示例中,TSACO服务器125可以读取和处理PAT/PMT数据包,以确保在主传输流110和次传输流120中包括正确的PID和/或与TSACO服务器125中的PID相匹配。如果不包括或不匹配,则当传输流110、120中的任何一个未能通过验证时,TSACO服务器125可能会引发错误。在第二个示例中,TSACO服务器125可以使用上述各种标准监测主内容源105和次内容源115何时仍在运行或发生故障。在第三个示例中,输出系统100还可以产生关于其自身健康和状态的指示。输出系统100可以使用例如表示状态传输(REST)、简单网络管理协议(SNMP)等来传达该信息。该信息可以包括正在接收的每个传输流的缓冲区电平(buffer levels)、缓冲区中的图片组(GOP)、输入抖动、缺失的输入PID、意外的PID、不匹配的PMT/PAT、PCR/实时抖动等。

输出系统100还可以利用初步的时钟同步操作,以便可以避免极端漂移的情况。如上所述,帧时间操作和重定基准操作使传输流同步,使得输出系统100中的所有组件可以在同一时间达成一致。假设没有出现缓冲区超限或欠载情况,则输出系统100可以基于配置有网络时间协议(NTP)的输出系统100的组件来同步时钟,NTP可以使时钟与合理的阈值保持同步。缓冲区不会遇到重大错误或漂移。

图7示出了根据本文描述的各种示例性实施例的使用传输流110、120生成输出130的示例性方法700。该方法700示出一种方式,该方式使用帧时间来同步传输流110、120的分组,并且当通过重新定基操作将不同的传输流用于重新混合输出130时,适当地转换时间戳。方法700可以由选择引擎235、帧时间引擎240、重建基准引擎245、多路复用引擎250和/或TSACO服务器125的其他组件执行。该方法700将针对图1的输出系统100和图2的TSACO服务器125进行描述。

从TSACO服务器125的角度描述了该方法700。如上所述,可能存在在没有TSACO服务器125参与或有限参与的操作。在第一个示例中,可以有同步锁操作,其中,主内容源105与次内容源115彼此通信,使得每个组件都知道要在传输流中输出的数据包/帧/内容项。例如,次内容源115可以请求提供要由主内容源105播放的具有相应开始时间的内容项的列表。以这种方式,次要内容源115可以被同步锁定到主内容。在另一示例中,主内容源105,次内容源115和TSACO服务器125可以被配置为使用NTP来在合理的阈值内同步内部时钟,以防止缓冲区超限或不足。可以在执行这些操作的情况下执行方法700。

方法700还描述了根据示例性实施例同步到TSACO服务器125的输入(例如,主传输流110、次传输流120),从而可以干净地执行切换。然而,该方法700可以被修改以纳入来自外部源的输入。例如,输入可以不同步和/或可以不包括以干净的方式执行切换的信息(例如,接合位置)。在这些条件下,方法700可以纳入回落切换过程,其中使用可能引入伪影、故障等的简单切换操作。

在705中,TSACO服务器125从主内容源105接收主传输流110,从次内容源115接收次传输流120。如上所述,传输流110、120可以使用基于设备通信、设备内通信、云/虚拟机通信等任何通信机制传输到TSACO服务器125。在710中,TSACO服务器125解复用传输流110、120,并将数据包或帧存储在缓冲区(例如,缓冲区305)中。为了说明的目的,在方法700中,将在帧的上下文中描述解密的传输流110、120。

在715中,TSACO服务器125在生成输出130时选择要重新复用的传输流。TSACO服务器125可以基于各种标准来选择传输流。在第一示例中,TSACO服务器125可以确定可用的传输流。如果只有一个传输流可用,则TSACO服务器125可以选择唯一可用的传输流。当多个传输流可用时,可以考虑进一步的标准。在第二示例中,TSACO服务器125可以利用与可用传输流相关联的优先级或层次结构。例如,主传输流110可以具有比次传输流120更高的优先级。因此,当两者都可用时,TSACO服务器125可以选择主传输流110而不是次传输流120。在第三示例中,TSACO服务器125可以利用传输统计数据来选择可用的传输流。例如,当TSACO服务器125和主内容源105之间存在比TSACO服务器125和次内容源110之间的连接更强的连接时,TSACO服务器125可以选择例如可能具有更高的被正确接收的可能性的主传输流110。为了说明的目的,TSACO服务器125可以选择主传输流110。

在720中,TSACO服务器125确定所选主传输流110的PTSs的重定值,以对应于输出130的PTSs。如上所述,输出130可以具有对应于被用于复用到输出130的传输的PTSs的PTSs。因此,TSACO服务器125可以确定要应用到输出130中使用的每个PTS的第一重定值。在725中,TSACO服务器125基于所选择的主传输流110与重基化的PTS生成输出130。

在730中,TSACO服务器125确定与输出130相关联的广播或传输是否已经结束。当广播是有限的或有限的性质时,TSACO服务器125可以在输出130已经终止时结束广播。然而,那些熟练的技术人员将理解,广播也可以是连续的。因此,TSACO服务器125可以继续传输输出130。当广播是连续的或广播的一部分仍然要播放出来时,TSACO服务器125继续735。

在735中,TSACO服务器125确定是否切换所选传输流。如上所述,可以有各种原因来切换所选传输流。例如,原因可以是提供所选传输流的内容源失败。进一步的例子可以包括主动切换到备份传输流,以执行与当前选择的传输流相关的维护设备(例如,服务器升级、补丁等)、缓冲区太低、缺少PID、数据包丢失、抖动水平高等。如果TSACO服务器125确定要继续使用所选择的传输流,则TSACO服务器125返回到725。然而,如果TSACO服务器125确定要选择新的传输流,则TSACO服务器125继续到740。

在740中,TSACO服务器125确定所选的主传输流110将在输出130的再复用中断的故障时间(或帧)。可以基于故障时间确定相应的帧时间,以便确定传输流的相应帧或数据包(例如,使用开始时间和完成的进度)。在745中,TSACO服务器125选择可用的剩余传输流。为了说明的目的,TSACO服务器125可以选择次传输流120。一旦选择了次传输流120以继续为输出130进行复用,则使用先前选择的主传输流110确定的帧时间可用于确定所选次级传输流120中的适当位置,因为缓冲帧是通过帧时间同步的。在750中,TSACO服务器125确定要应用于选定的次级传输流120的进一步重定值,从而使PTS在切换后以无缝方式继续。随后,TSACO服务器125返回到725,以基于所选二次传输流120生成输出130。

示例性实施例提供了一种在生成用于广播的输出时执行从第一传输流到第二传输流的自动转换的装置、系统和方法。当实现使用传输流的切换时,传统系统中使用的物理组件不能用于执行无缝切换。因此,该示例性实施例引入了帧时间,以便使被缓冲的用于再复用的数据包彼此同步,从而以干净的方式(例如,无缝地、无伪装、无故障等)执行从当前选择的传输流到要选择的传输流的切换。该示例性实施例还能够使用重定基准操作将时间戳关联起来,以补偿由于内容源漂移或重新启动而产生的时间戳问题。

本领域的熟练人员将理解,上述示例性实施例可以在任何合适的软件或硬件配置或其组合中实施。用于实现示例性实施例的示例性硬件平台可以包括,例如,基于英特尔x86的平台与兼容的操作系统、Windows操作系统、Mac平台和MAC操作系统、具有诸如iOS、Android等操作系统的移动设备。在另一个例子中,上述方法的示例性实施例可以体现为包含存储在非暂时性计算机可读存储介质上的代码行的程序,当编译时,可以在处理器或微处理器上执行。

对于本领域的技术人员来说,将显而易见的是,在不偏离示例性实施例的精神或范围的情况下,可以对本公开进行各种修改。因此,意在使本公开涵盖示范性实施例发明的修改和变化,只要它们在所附权利要求及其等同物的范围内。

22页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:时分双工通信中的干扰

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!