Distributed fragment timestamp synchronization
AssigneeMicrosoft Technology Licensing, LLC
InventorsRodrigo Maialle Bomfim, Prakash Duggaraju, Anton Kucer, Thomas Marquardt
Life of this patent
Estimating the term…
Abstract
A fault tolerant video streaming distribution service utilizes multiple distribution servers to receive and process a video stream simultaneously. Each distribution server performs a mapping of each encoded timestamp associated with a transport stream having time discontinuities to a continuous time sequence. The distribution servers coordinate the timestamp mapping through a distributed leader election protocol that elects a leader to coordinate the timestamp mapping in an environment where failures are anticipated and the number of distribution servers dynamically changes without notice.
Claims22
A computer-implemented method, the method comprising:
- receiving, at a distribution server, a first and a second packet of a first video stream, the first packet carrying a first frame of the first video stream, the second packet carrying a second frame of the first video stream, the first frame having associated therewith a first timestamp encoded using a first number of bits, and the second frame having associated therewith a second timestamp encoded using the first number of bits;
- converting the first video stream into a second video stream including:
- determining a timestamp mapping between the first timestamp and a third timestamp, and between the second timestamp and a fourth timestamp, wherein the third timestamp is encoded using a second number of bits different than the first number of bits, and wherein the fourth timestamp is encoded using the second number of bits;
- and
- receiving an indication of an election of the distribution server as a leader for the synchronization of timestamp mappings.
A computing device, comprising:
- a memory and a processor, wherein the memory and the processor respectively that store and execute instructions, including instructions for causing the computing device to perform operations, the operations comprising:
- receiving a first video stream that is encoded in a first format that defines a first timestamp as being encoded into a first quantity of bits;
- determine a timestamp reference, for the first video stream, that is coordinated with another computing device;
- produce a mapping, between the first timestamp defined by the first format and a second timestamp defined by a second format of a second video stream, in accordance with the timestamp reference, the second timestamp defined by the second format as being encoded into a greater quantity of bits than the first quantity of bits;
- and
- receive an indication of an election of the computing device as a leader for the synchronization of timestamp reference for a plurality of distribution servers.
A computing device, comprising:
- a processor and a memory, the memory having instructions stored therein for causing the computing device to:
- receive a first video stream encoded in a first transport protocol, the first video stream including a first frame and a second frame, the first frame having associated therewith a first timestamp encoded into a first number of bits, and the second frame having associated therewith a second timestamp encoded into the first number of bits;
- select a server from a multicast group to coordinate synchronization of the first timestamp with a third timestamp encoded into a second number of bits, the second number of bits being different than the first number of bits, and the second timestamp with a fourth timestamp encoded into the second number of bits;
- generate a first mapping between the first timestamp encoded into the first number of bits and a third timestamp encoded into a second number of bits, the second number of bits being different than the first number of bits;
- generate a second mapping between the second timestamp encoded into the first number of bits and a fourth timestamp encoded into the second number of bits;
- and
- receive an indication of an election of the computing device as a leader for the synchronization of timestamp reference for a plurality of distribution servers.
A non-transitory computer-readable storage medium storing computer-executable instructions for causing a computing device to perform operations, the operations comprising:
- receiving, at a distribution server, a first and a second packet of a first video stream, the first packet carrying a first frame of the first video stream, the second packet carrying a second frame of the first video stream, the first frame having associated therewith a first timestamp encoded using a first number of bits, and the second frame having associated therewith a second timestamp encoded using the first number of bits;
- receiving an indication of an election of the distribution server as a leader for the synchronization of timestamp mappings;
- determining a timestamp mapping between the first timestamp and a third timestamp, and between the second timestamp and a fourth timestamp, wherein the third timestamp is encoded using a second number of bits different than the first number of bits, and wherein the fourth timestamp is encoded using the second number of bits;
- and
- converting the first video stream into a second video stream.
Dependencies are inferred from the claim text.