Automatically synchronizing multiple real-time video sources
AssigneeDisney Enterprises, Inc.
InventorsDavid A. Stankoski, Frank J. Imbriale, Michael J. Strein
Life of this patent
Estimating the term…
Abstract
Systems, methods and computer program products to perform an operation comprising receiving a first video frame specifying a first timestamp from a first video source, receiving a second video frame specifying a second timestamp from a second video source, wherein the first and second timestamps are based on a remote time source, determining, based on a local time source, that the first timestamp is later in time than the second timestamp, and storing the first video frame in a buffer for alignment with a third video frame from the second video source.
Claims27
A computer-implemented method of synchronizing multiple real-time video sources, the computer-implemented method comprising:
- receiving a first video frame as part of a first video feed from a first video source, the first video frame having an associated data space specifying a first timestamp generated by a first one of a plurality of timestamp insertion devices collectively referenced to a remote time source;
- receiving, as part of a second video feed from a second video source, an Internet Protocol (IP) frame that encapsulates (i) at least part of a second video frame and (ii) a second timestamp generated by a second one of the plurality of timestamp insertion devices, wherein the first and second video sources are configured to concurrently film a common scene from distinct viewing perspectives, wherein the first and second video frames are received with distinct measures of latency introduced by distinct types of transmissions media, respectively;
- determining that the first timestamp is later in time than the second timestamp by operation of one or more computer processors and based on comparing (i) a first difference between the first timestamp and a current time provided by a local time source and (ii) a second difference between the second timestamp and the current time provided by the local time source;
- queuing the first video frame in a variable-length buffer until a third video frame, specifying a third timestamp equal to the first timestamp, is received from the second video source, the variable-length buffer having a length that varies over time based on a count of frames by which the first and second video feeds are currently offset relative to one another;
- and
- aligning the first and second video feeds in time relative to one another, based on the variable-length buffer, whereafter the first and second video feeds are concurrently output via a single transmissions medium.
A computer program product to synchronize multiple real-time video sources, the computer program product comprising:
- a non-transitory computer-readable medium having computer-readable program code embodied therewith, the computer-readable program code executable by one or more computer processors to perform an operation comprising:
- receiving a first video frame as part of a first video feed from a first video source, the first video frame having an associated data space specifying a first timestamp generated by a first one of a plurality of timestamp insertion devices collectively referenced to a remote time source;
- receiving, as part of a second video feed from a second video source, an Internet Protocol (IP) frame that encapsulates (i) at least part of a second video frame and (ii) a second timestamp generated by a second one of the plurality of timestamp insertion devices, wherein the first and second video sources are configured to concurrently film a common scene from distinct viewing perspectives, wherein the first and second video frames are received with distinct measures of latency introduced by distinct types of transmissions media, respectively;
- determining that the first timestamp is later in time than the second timestamp, based on comparing (i) a first difference between the first timestamp and a current time provided by a local time source and (ii) a second difference between the second timestamp and the current time provided by the local time source;
- queuing the first video frame in a variable-length buffer until a third video frame, specifying a third timestamp equal to the first timestamp, is received from the second video source, the variable-length buffer having a length that varies over time based on a count of frames by which the first and second video feeds are currently offset relative to one another;
- and
- aligning the first and second video feeds in time relative to one another, based on the variable-length buffer, whereafter the first and second video feeds are concurrently output via a single transmissions medium.
A system of synchronizing multiple real-time video sources, the system comprising:
- one or more computer processors;
- and
- a memory containing a program which, when executed by the one or more computer processors, performs an operation comprising:
- receiving a first video frame as part of a first video feed from a first video source, the first video frame having an associated data space specifying a first timestamp generated by a first one of a plurality of timestamp insertion devices collectively referenced to a remote time source;
- receiving, as part of a second video feed from a second video source, an Internet Protocol (IP) frame that encapsulates (i) at least part of a second video frame and (ii) a second timestamp generated by a second one of the plurality of timestamp insertion devices, wherein the first and second video sources are configured to concurrently film a common scene from distinct viewing perspectives, wherein the first and second video frames are received with distinct measures of latency introduced by distinct types of transmissions media, respectively;
- determining that the first timestamp is later in time than the second timestamp based on comparing (i) a first difference between the first timestamp and a current time provided by a local time source and (ii) a second difference between the second timestamp and the current time provided by the local time source;
- queuing the first video frame in a variable-length buffer until a third video frame, specifying a third timestamp equal to the first timestamp, is received from the second video source, the variable-length buffer having a length that varies over time based on a count of frames by which the first and second video feeds are currently offset relative to one another;
- and
- aligning the first and second video feeds in time relative to one another, based on the variable-length buffer, whereafter the first and second video feeds are concurrently output via a single transmissions medium.
Dependencies are inferred from the claim text.