Method and apparatus for synchronizing playback of streaming media in multiple output devices
First Claim
1. A media network comprising:
- a media server configured to transmit streaming media over a network; and
a plurality of output devices configured to receive and play said streaming media, said plurality of output devices comprising;
a master device configured to request media data from said media server based on a master playback rate;
one or more slave devices each having a playback buffer with an associated buffer fill level;
wherein said one or more slave devices are configured to implement a playback rate correction when the respective buffer fill level is outside of a desired buffer fill range; and
wherein said media server is configured to transmit media data to said plurality of output devices when said master device requests said media data.
8 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for synchronizing streaming media with multiple output devices. One or more media servers serve media streams to one or more output devices (i.e., players). For playback synchronization, one output device is the “master”, whereas the remaining output devices are “slaves”. More data is requested from the media server by the “master” device to maintain a nominal buffer fill level over time. The “slave” devices receive streamed data from the media server at the rate determined by the master device'"'"'s data requests, and the average rate of data flow over the streaming network is thus controlled by the frequency of the single “master” device'"'"'s crystal. “Slave” devices make playback rate corrections to maintain respective buffer fill levels within upper and lower threshold levels. For slow networks, each media data packet timestamp is calculated from the time the master'"'"'s buffer reaches nominal level.
-
Citations
27 Claims
-
1. A media network comprising:
-
a media server configured to transmit streaming media over a network; and
a plurality of output devices configured to receive and play said streaming media, said plurality of output devices comprising;
a master device configured to request media data from said media server based on a master playback rate;
one or more slave devices each having a playback buffer with an associated buffer fill level;
wherein said one or more slave devices are configured to implement a playback rate correction when the respective buffer fill level is outside of a desired buffer fill range; and
wherein said media server is configured to transmit media data to said plurality of output devices when said master device requests said media data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method for synchronizing playback of streaming media in a network comprising a media server and a plurality of output devices, comprising:
-
selecting a master device from a plurality of output devices;
said master device sending a data request to a media server when a fill level of a master buffer falls below a desired level;
in response to said data request from said master device, said plurality of output devices receiving a data packet from said media server;
in one or more of said plurality of output devices other than said master device, determining that a fill level of a respective playback buffer is outside of a desired level range, and applying a playback rate adjustment corresponding to whether said fill level is above or below said desired level range. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A playback device comprising:
-
a transceiver configured to receive data packets over a network;
a playback buffer, said playback buffer having a fill level;
a processor configured to obtain media data from said data packets and write said media data into said playback buffer;
a playback circuit configured to extract said media data from said buffer at a playback rate and provide a player output; and
a memory comprising;
a master flag configured to indicate whether said device is in a master mode or a slave mode;
computer code executable by said processor, said computer code comprising master mode instructions and slave mode instructions;
wherein said master mode instructions are configured to be executed when said master flag is set, and configured to cause said processor to perform at least the steps of;
waiting until said fill level is at a nominal level before writing media data of a current data packet to said playback buffer; and
requesting another data packet from a media server;
wherein said slave mode instructions are configured to be executed when said master flag is not set, and configured to cause said processor to perform at least the steps of;
determining whether said fill level of said playback buffer is within a desired range;
applying a playback rate correction if said fill level is not within said desired range; and
writing said media data of said current data packet to said playback buffer. - View Dependent Claims (22, 23, 24, 25, 26, 27)
-
Specification