Method and apparatus for synchronizing playback of streaming media in multiple output devices
First Claim
1. A media server comprising:
- a transceiver coupled to a network;
a streaming media source coupled to said transceiver;
a processor;
a memory coupled to said processor, said memory comprising;
a list of output devices coupled to said media server via said network;
computer code comprising instructions for causing said processor to perform the steps of;
transmitting a synchronization packet to said output devices;
awaiting responses to said synchronization packet from said output devices;
determining one of said output devices to be a master output device based on said responses to said synchronization packet received from said output devices;
said master device sending a plurality of successive requests for successive sets of streaming media data of a media stream to said media server when a fill level of a buffer of said master device falls below a desired level;
in at least one of said plurality of output devices other than said master device, determining that a fill level of a playback buffer of said output device is outside of a desired level range, and applying a playback rate adjustment to match a rate of reception of said successive sets of streaming media data when said fill level is outside said desired level range;
identifying a first request received from said master output device via said network for a first set of streaming media data of a first media stream;
transmitting said first set of streaming media data to said output devices via said network in response to said first request received from said master output device;
awaiting a second request from said master output device for a second set of streaming media data of said first media stream;
transmitting said second set of streaming media data to said output devices via said network in response to said second request received from said master output device.
6 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.
217 Citations
9 Claims
-
1. A media server comprising:
-
a transceiver coupled to a network; a streaming media source coupled to said transceiver; a processor; a memory coupled to said processor, said memory comprising; a list of output devices coupled to said media server via said network; computer code comprising instructions for causing said processor to perform the steps of; transmitting a synchronization packet to said output devices; awaiting responses to said synchronization packet from said output devices; determining one of said output devices to be a master output device based on said responses to said synchronization packet received from said output devices; said master device sending a plurality of successive requests for successive sets of streaming media data of a media stream to said media server when a fill level of a buffer of said master device falls below a desired level; in at least one of said plurality of output devices other than said master device, determining that a fill level of a playback buffer of said output device is outside of a desired level range, and applying a playback rate adjustment to match a rate of reception of said successive sets of streaming media data when said fill level is outside said desired level range; identifying a first request received from said master output device via said network for a first set of streaming media data of a first media stream; transmitting said first set of streaming media data to said output devices via said network in response to said first request received from said master output device; awaiting a second request from said master output device for a second set of streaming media data of said first media stream; transmitting said second set of streaming media data to said output devices via said network in response to said second request received from said master output device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
Specification