Search

US-12621514-B2 - Transport stream automatic change over

US12621514B2US 12621514 B2US12621514 B2US 12621514B2US-12621514-B2

Abstract

A device, system, and method perform an automatic change over for transport streams. The method is performed at 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 frametime to synchronize first packets of the first transport stream to second packets of the second transport stream. The frametime is based on a start time of a content item included in the first transport stream and the second transport stream and a completed progression of the content item using the first transport stream. The method includes determining a location in the second transport stream based on the frametime. The method includes generating a second portion of the output based on the second transport stream starting at the location.

Inventors

  • Jeff Hess
  • Jonathan Edlin Clegg
  • Scott Danahy
  • Gregg William Riedel

Assignees

  • VIACOM INTERNATIONAL INC.

Dates

Publication Date
20260505
Application Date
20241028

Claims (17)

  1. 1 . A method, comprising: at an output server: demuxing a first transport stream and a second transport stream; generating a first portion of an output based on the first transport stream by remuxing the demuxed transport stream of the first transport stream; synchronizing first packets of the first transport stream to second packets of the second transport stream based on a completed progression of a content item using the first transport stream; generating a second portion of the output starting at an initial second transport stream frame subsequent to a final frame represented by the completed progression of the content item; and applying a first rebasing value to the first transport stream when generating the first portion of the output, the first rebasing value being based on a difference between a program timestamp (PTS) of the first transport stream and a PTS of the output.
  2. 2 . The method of claim 1 , further comprising: applying the first rebasing value to the second transport stream when generating the second portion of the output, the first rebasing value being based on a difference between a program timestamp (PTS) of the second transport stream and a PTS of the output.
  3. 3 . The method of claim 1 , wherein the first transport stream is received from a first content source and the second transport stream is received from a second content source.
  4. 4 . The method of claim 1 , further comprising: synchronizing a first internal clock of the output server with a second internal clock associated with the first transport stream and a third internal clock associated with the second transport stream within a predetermined threshold based on a network time protocol (NTP).
  5. 5 . The method of claim 1 , further comprising: prior to the step of selecting the second transport stream, determining whether to perform a switch from the first transport stream to the second transport stream.
  6. 6 . The method of claim 2 , further comprising: determining a first input timestamp for a first input packet of the first transport stream; determining a first output timestamp for a first output packet of the output; and employing the first rebasing value to adjust the first input timestamp to correspond to the first output timestamp, wherein the first rebasing value is applied to each input packet of the first transport stream used in the first portion.
  7. 7 . The method of claim 6 , further comprising: determining a second input timestamp for a second input packet of the second transport stream; determining a second output timestamp for a second output packet of the output; and determining a second rebasing value to adjust the second input timestamp to correspond to the second output timestamp, wherein the second rebasing value is applied to each input packet of the second transport stream of the second portion.
  8. 8 . The method of claim 3 , wherein the first and second content sources exchange playout information which includes the content item and a start time of the content item.
  9. 9 . The method of claim 5 , wherein each of the demuxed transport streams is stored in a respective buffer and wherein the switch is performed based on one of a failure of the first transport stream, a buffer level of the first transport stream, a group of pictures (GOPs) in a buffer of the first transport stream, an input jitter, missing input program identifiers (PIDs), an unexpected PID, a mismatched program map table (PMT), a mismatched program association table (PAT), a program clock reference (PCR), a realtime jitter, a maintenance issue, or a combination thereof.
  10. 10 . An output server, comprising: a memory arrangement; and a processor configured to demux a first transport streams and generate a first portion of an output based on the first transport stream by remuxing the demuxed first transport stream, the processor further configured to select a second transport stream from a plurality of transport streams and synchronize first packets of the first transport stream to second packets of the second transport stream based on a completed progression of a content item using the first transport stream, the processor further configured to determine a location in the second transport stream corresponding to an initial second transport stream frame subsequent to a final frame represented by the completed progression of the content item using the first transport stream, the processor further configured to generate a second portion of the output based on the second transport stream starting at the initial second transport stream frame by remuxing at least a portion of the demuxed second transport stream, the processor being further configured to apply a first rebasing value to the second transport stream when generating the second portion of the output, wherein the first rebasing value is based on a difference between a program timestamp (PTS) of the first transport stream and the second transport stream relative to a PTS of the output.
  11. 11 . The output server of claim 10 , wherein the processor is further configured to determine a first input timestamp for a first input packet of the first transport stream, determine a first output timestamp for a first output packet of the output, and determine a second rebasing value to adjust the first input timestamp to correspond to the first output timestamp, and wherein the second rebasing value is applied to each input packet of the first transport stream used in the first portion.
  12. 12 . The output server of claim 10 , wherein the first transport stream is received from a first content source and the second transport stream is received from a second content source.
  13. 13 . The output server of claim 10 , wherein the processor further synchronizes a first internal clock of the output server with a second internal clock associated with the first transport stream and a third internal clock associated with the second transport stream within a predetermined threshold based on a network time protocol (NTP).
  14. 14 . The output server of claim 10 , wherein, prior to the processor selecting the second transport stream, the processor is further configured to determine whether to perform a switch from the first transport stream to the second transport stream.
  15. 15 . The output server of claim 11 , wherein the processor is further configured to determine a second input timestamp for a second input packet of the second transport stream, determine a second output timestamp for a second output packet of the output, and determine a third rebasing value to adjust the second input timestamp to correspond to the second output timestamp, and wherein the third rebasing value is applied to each input packet of the second transport stream used in the second portion.
  16. 16 . The output server of claim 12 , wherein the first and second content sources exchange playout information including the content item and a start time of the content item.
  17. 17 . An apparatus, comprising: a processing circuitry configured to: demux a first transport stream and a second transport stream; generate a first portion of an output based on the first transport stream by remuxing the demuxed transport stream of the first transport stream; synchronize first packets of the first transport stream to second packets of the second transport stream based on a completed progression of a content item using the first transport stream; determine a location in the second transport stream corresponding to an initial second transport stream frame subsequent to a final frame represented by the completed progression of the content item using the first transport stream; remux at least a portion of the demuxed transport stream of the second transport stream to generate a second portion of the output starting at the initial second transport stream frame; and apply a first rebasing value to the first transport stream when generating the first portion of the output wherein the first rebasing value is based on a difference between a program timestamp (PTS) of the first transport stream and a PTS of the output.

Description

PRIORITY DATA The present application is a Continuation of U.S. patent application Ser. No. 18/469,938 filed on Sep. 19, 2023, now U.S. Pat. No. 12,160,625; which is a Continuation of U.S. patent application Ser. No. 18/063,573 filed on Dec. 8, 2022, now U.S. Pat. No. 11,812,077; which is a Continuation of U.S. Patent Application Ser. No. 17/304,710 filed on Jun. 24, 2021, now U.S. Pat. No. 11,553,225; which is a Continuation of U.S. patent application Ser. No. 16/194,479 filed on Nov. 19, 2018, now U.S. Pat. No. 11,076,182; the entire disclosure of the above application(s)/patent(s) is expressly incorporated herein by reference. BACKGROUND INFORMATION A television program may be broadcast and shown without interruption or with other content (e.g., advertisements, graphics, etc.) interspersed between segments of the television program, integrated within the television program, etc. The broadcast may be seen by viewers in a variety of different manners. In a first example, a television program may be broadcast to viewers using antennas, cables, satellites, etc. In a second example, the television program may be broadcast to viewers using a streaming service through, for example, a web site, a mobile video provider, etc. Regardless of the means by which a television program is broadcast, the entities involved in the broadcast (e.g., hereinafter referred to as “broadcaster”) may utilize measures to ensure that the broadcast is intact and being shown as intended. For example, broadcasters earn revenue by advertisements being played out in their entirety. Thus, the operation of the broadcast system without interruption is of vital importance. The broadcast system is configured to show a broadcast even when individual components of the broadcast system fail. For example, a backup component providing redundant data may be used. In one approach to ensure that a broadcast system is operational even when components may stop working, a plurality of machines that produce the same broadcast (e.g., for a channel) and a switch that selects between the machines may be used in the broadcast system. The machines may generate serial digital interface (SDI) outputs in which a primary machine provides a primary SDI output and a secondary machine provides a secondary (e.g., backup) SDI output. The switch may select the primary SDI output for the broadcast and switch to the secondary SDI output when the primary output encounters an issue (e.g., the primary machine stops working and does not generate the primary SDI output). As those skilled in the art will understand, the broadcast system utilizing SDI and SDI related features requires physical components for an interaction to be achieved. For example, a physical device (e.g., SDI switcher) or card may enable one of the SDI outputs to be selected for broadcast. When switching between the outputs, it is desirable to effect a “clean switch,” where both outputs are precisely synchronized and a switch between the outputs is seamless, with no audio/visual/metadata glitches, with no artifacts present, etc. When playout of a broadcast is performed using a cloud implementation or a virtual machine, the broadcast system cannot be configured to rely on SDI and a move from SDI to an Internet Protocol (IP) stream may be used. However, current industry implementations of transport stream playout do not incorporate a clean switch from an output of a main playout server to an output of a backup playout server or vice versa. Thus, when a failure of a playout server occurs in a broadcast system based on a transport stream, the broadcast may not be “clean” (e.g., seamless in the switch, free from artifacts, free from glitches, etc.). Those skilled in the art will understand the importance for synchronization of switching from one transport stream to another transport stream. Conventional approaches do not provide an effective solution for this transport stream switch as the switch is particularly difficult to achieve in a clean manner to achieve a clean switch. SUMMARY The exemplary embodiments are directed to a method performed at an output server for an automatic change over for transport streams. The method comprises receiving a plurality of transport streams and selecting a first one of the transport streams. The method comprises generating a first portion of an output based on the first transport stream. The method comprises selecting a second one of remaining ones of the transport streams. The method comprises determining a frametime to synchronize first packets of the first transport stream to second packets of the second transport stream. The frametime is based on a start time of a content item included in the first transport stream and the second transport stream and a completed progression of the content item using the first transport stream. The method comprises determining a location in the second transport stream based on the frametime and generating a second portion of the output bas