Synchronization of content between networked devices
First Claim
1. A system comprising:
- a first device comprising;
a local clock;
a network interface;
a processor and tangible, non-transitory computer-readable media having first instructions encoded therein and executable by the processor; and
a second device comprising;
a network interface, wherein the network interface of the first device is configured to communicate with the network interface of the second device over a network; and
a processor and tangible, non-transitory computer-readable media having second instructions encoded therein and executable by the processor of the second device;
wherein the second instructions when executed by the processor of the second device cause the second device to;
send an identifier of content to play and an indication of when to play the content to the first device over the network, wherein the second device subtracts a network latency from the indication of when to play the content;
wherein the first instructions when executed by the processor of the first device cause the first device to;
determine a local clock time to play the content, the local clock time to play the content based on a time of the local clock of the first device and the indication of when to play the content;
obtain, from a third device over the network, the content to play based on the received identifier of content to play; and
play the obtained content based on the time of the local clock and the local clock time to play the content,wherein the content comprises a plurality of frames, and wherein the indication of when to play the content is a length of time until playback of a frame, the second instructions comprising instructions executable by the processor of the second device to send a synchronization packet comprising a new length of time until playback of the frame, and the first instructions comprising instructions executable by the processor of the first device to determine an expected length of time until playback of the frame based on a presentation timestamp embedded in the content, wherein the presentation timestamp indicates a timing of playback for the content, and adjust a clock speed of the local clock based on the expected length of time until playback of the frame and the new length of time until playback of the frame.
6 Assignments
0 Petitions
Accused Products
Abstract
Networked devices are arranged to play content such as audio and video content in synchronization. A synching device receives a packet from an initiating device over a network. The packet may include an identifier of content to play, such as a URI, and an indication of when to play the content. A local clock time to play the content is determined based on a time of a local clock of the first device and the indication of when to play the content. The synching device obtains from a server the content based on the received identifier, and plays the content in synchronization with the initiating device based on a time on the local clock and the local clock time to play the content. In some embodiments, the synching device also adjusts a clock speed of the local clock reference to control rate of playback of the content.
116 Citations
12 Claims
-
1. A system comprising:
-
a first device comprising; a local clock; a network interface; a processor and tangible, non-transitory computer-readable media having first instructions encoded therein and executable by the processor; and a second device comprising; a network interface, wherein the network interface of the first device is configured to communicate with the network interface of the second device over a network; and a processor and tangible, non-transitory computer-readable media having second instructions encoded therein and executable by the processor of the second device; wherein the second instructions when executed by the processor of the second device cause the second device to; send an identifier of content to play and an indication of when to play the content to the first device over the network, wherein the second device subtracts a network latency from the indication of when to play the content; wherein the first instructions when executed by the processor of the first device cause the first device to; determine a local clock time to play the content, the local clock time to play the content based on a time of the local clock of the first device and the indication of when to play the content; obtain, from a third device over the network, the content to play based on the received identifier of content to play; and play the obtained content based on the time of the local clock and the local clock time to play the content, wherein the content comprises a plurality of frames, and wherein the indication of when to play the content is a length of time until playback of a frame, the second instructions comprising instructions executable by the processor of the second device to send a synchronization packet comprising a new length of time until playback of the frame, and the first instructions comprising instructions executable by the processor of the first device to determine an expected length of time until playback of the frame based on a presentation timestamp embedded in the content, wherein the presentation timestamp indicates a timing of playback for the content, and adjust a clock speed of the local clock based on the expected length of time until playback of the frame and the new length of time until playback of the frame. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method for synchronizing playback between a first device and a second device, the method comprising:
-
receiving, by the first device from the second device over a network, an identifier of content to play and an indication of when to play the content, wherein a network latency is subtracted from the indication of when to play the content by the second device; determining, by the first device, a local clock time to play the content, the local clock time to play the content based on a time of a local clock of the first device and the indication of when to play the content; obtaining, by the first device from a third device over the network, the content to play based on the received identifier of content to play; and playing, by the first device, the obtained content based on the time of the local clock and the local clock time to play the content, wherein the content comprises a plurality of frames, and wherein the indication of when to play the content is a length of time until playback of a frame, the method further comprising receiving, by the first device from the second device over the network, a synchronization packet comprising a new length of time until playback of the frame, determining, by the first device, an expected length of time until playback of the frame based on a presentation timestamp embedded in the content, wherein the presentation timestamp indicates a timing of playback for the content, and adjusting, by the first device, a clock speed of the local clock based on the expected length of time until playback of the frame and the new length of time until playback of the frame. - View Dependent Claims (9, 10, 11)
-
-
12. A tangible, non-transitory computer readable storage medium including instructions encoded therein and executable by a processor, wherein the instructions when executed cause the processor to implement a method comprising:
-
receiving, by the first device from the second device over a network, an identifier of content to play and an indication of when to play the content, wherein a network latency is subtracted from the indication of when to play the content by the second device; determining, by the first device, a local clock time to play the content based on a time of a local clock of the first device and the indication of when to play the content; obtaining, by the first device from a third device over the network, the content to play based on the received identifier of content to play; and playing, by the first device, the obtained content based on the time of the local clock and the local clock time to play the content, wherein the content comprises a plurality of frames, and wherein the indication of when to play the content is a length of time until playback of a frame, the method further comprising receiving, by the first device from the second device over the network, a synchronization packet which defines a new length of time until playback of the frame;
determining, by the first device, an expected length of time until playback of the frame based on a presentation timestamp embedded in the content, wherein the presentation timestamp indicates a timing of playback for the content; and
adjusting, by the first device, a clock speed of the local clock based on the expected length of time until playback of the frame and the new length of time until playback of the frame.
-
Specification