Methods and apparatus for synchronous HTTP media playback
Systems, apparatus, articles of manufacture, and methods are disclosed to synchronize media playback at devices in a multicast environment. Disclosed is a system to synchronize media playback, the system comprising programmable circuitry, and a memory that stores executable instructions that, when executed or instantiated by the programmable circuitry, facilitate performance of operations, comprising transmitting, using a hypertext transfer protocol (HTTP), a first request in a first HTTP message to a first client device and to a second client device, receiving, from the first client device in response to the first request. a first time stamp associated with a first presentation, the first time stamp representing a first playback time within the first presentation, receiving, from the second client device in response to the first request, a second time stamp associated with a second presentation, the second time stamp representing a second playback time within the second presentation, calculating a time difference between the first time stamp and the second time stamp, determining whether the time difference satisfies a threshold, transmitting a second HTTP message to the first client device and the second client device in response to a determination that the time difference fails to satisfy the threshold, the second HTTP message to cause the first client device to pause the first presentation and the second client device to pause the second presentation, transmitting seek instructions in a third HTTP message to the second client device, the seek instructions to cause the second client device to synchronize the second presentation to the first presentation by setting the first and second playback times equal, and transmitting a fourth HTTP message to cause the first client device to resume the first presentation and the second client device to resume the second presentation.
1 . A system to synchronize media playback, the system comprising:
programmable circuitry; and
a memory that stores executable instructions that, when executed or instantiated by the programmable circuitry, facilitate performance of operations, comprising:
obtaining stream data from a content delivery network;
decapsulating the stream data to a first data and a second data;
multicasting the first data to a first device and the second data to a second device;
storing a pre-determined amount of time of the first data and the second data to the first device and the second device, a playback of the stream data based on the pre-determined amount of time; and
in response to a determination that a difference between a first time stamp of the first device and a second time stamp of the second device is less than the stored pre-determined amount of time, synchronizing the first device and the second device.
2 . The system of claim 1 , wherein the operations include obtaining the stream data from the content delivery network further includes obtaining the stream data using a hypertext transfer protocol (HTTP).
3 . The system of claim 2 , wherein decapsulating the stream data to the first data and the second data further includes:
decapsulating the stream data from the HTTP protocol to a user datagram protocol (UDP); and
determining a first data packet and a second data packet from the UDP.
4 . The system of claim 1 , wherein the operations include determining the playback of the stream data based on a difference between a first time stamp of the first device and a second time stamp of the second device.
5 . The system of claim 1 , wherein the operations include establishing an HTTP protocol connection between the system, the first device, and the second device.
6 . The system of claim 5 , wherein the operations include utilizing the HTTP protocol connection to communicate seek instructions to the first device and the second device.
7 . The system of claim 1 , wherein the operations include establishing a multicast environment to include the first device and the second device.
8 . A non-transitory machine-readable storage medium comprising instructions to cause programmable circuitry to at least:
obtain stream data from a content delivery network;
decapsulate the stream data to a first data and a second data;
multicast the first data to a first device and the second data to a second device;
store a pre-determined amount of time of the first data and the second data to the first device and the second device, a playback of the stream data based on the pre-determined amount of time; and
in response to a determination that a difference between a first time stamp of the first device and a second time stamp of the second device is less than the stored pre-determined amount of time, synchronize the first device and the second device.
9 . The non-transitory machine-readable storage medium of claim 8 , wherein to obtain the stream data from the content delivery network the instructions cause the programmable circuitry to obtain the stream data using a hypertext transfer protocol (HTTP).
10 . The non-transitory machine-readable storage medium of claim 9 , wherein to decapsulate the stream data to the first data and the second data the instructions cause the programmable circuitry to:
decapsulate the stream data from the HTTP protocol to a user datagram protocol (UDP); and
determine a first data packet and a second data packet from the UDP.
11 . The non-transitory machine-readable storage medium of claim 8 , wherein the instructions cause the programmable circuitry to determine the playback of the stream data based on a difference between a first time stamp of the first device and a second time stamp of the second device.
12 . The non-transitory machine-readable storage medium of claim 8 , wherein the instructions cause the programmable circuitry to establish an HTTP protocol connection between the programmable circuitry, the first device, and the second device.
13 . The non-transitory machine-readable storage medium of claim 12 , wherein the instructions cause the programmable circuitry to utilize the HTTP protocol connection to communicate seek instructions to the first device and the second device.
14 . The non-transitory machine-readable storage medium of claim 8 , wherein the instructions cause the programmable circuitry to establish a multicast environment to include the first device and the second device.
15 . A method to synchronize media playback, the method comprising:
obtaining stream data from a content delivery network;
decapsulating the stream data to a first data and a second data;
multicasting the first data to a first device and the second data to a second device; and
storing a pre-determined amount of time of the first data and the second data to the first device and the second device, a playback of the stream data based on the pre-determined amount of time; and
in response to a determination that a difference between a first time stamp of the first device and a second time stamp of the second device is less than the stored pre-determined amount of time, synchronizing the first device and the second device.
16 . The method of claim 15 , wherein obtaining the stream data from the content delivery network includes obtaining the stream data using a hypertext transfer protocol (HTTP).
17 . The method of claim 15 , including determining the play back of the stream data based on a difference between a first time stamp of the first device and a second time stamp of the second device.
18 . The method of claim 16 , wherein decapsulating the stream data to the first data and the second data includes:
decapsulating the stream data from the HTTP protocol to a user datagram protocol (UDP); and
determining a first data packet and a second data packet from the UDP.
19 . The method of claim 15 , including establishing an HTTP protocol connection between the first device and the second device.
20 . The method of claim 19 , including utilizing the HTTP protocol connection to communicate seek instructions to the first device and the second device.