Search Images Maps Play YouTube News Gmail Drive More »
Advanced Patent Search | Web History | Sign in

Patents

In general, this disclosure describes techniques of determining a backset for client devices attempting to download data of a live transmission. A backset is an amount of temporal delay that the client devices are delayed by when viewing the live transmission. As described herein, a media content provider may determine a recommended backset for each client devices based characteristics of the client device. Each client device may then be backset by the determined value, or may calculate its own backset based on the recommended backset. Establishing a backset for each client device may avoid rebuffering of live transmission data.

Referenced by

Citing PatentFiling dateIssue dateOriginal AssigneeTitle
US8099473Jun 5, 2009Jan 17, 2012Apple Inc.Variant streams for real-time or near real-time streaming
US8099476Jun 5, 2009Jan 17, 2012Apple Inc.Updatable real-time or near real-time streaming
US8145782Dec 22, 2010Mar 27, 2012Unicorn Media, Inc.Dynamic chunking for media streaming
US8156089Dec 14, 2010Apr 10, 2012Apple, Inc.Real-time or near real-time streaming with compressed playlists
US8165343Sep 28, 2011Apr 24, 2012Unicorn Media, Inc.Forensic watermarking
US8239546Sep 26, 2011Aug 7, 2012Unicorn Media, Inc.Global access control for segmented streaming delivery
US8244172Sep 9, 2010Aug 14, 2012Marvell International Technology Ltd.Remote host-based media presentation

Claims

1. A method for a media server to deliver a live transmission, comprising:

receiving a request from a plurality of client devices to download the live transmission via a packet-based computer-network;

determining an amount of backset for each one of the plurality of client devices upon receiving the request, wherein at least two client devices of the plurality of client devices are determined to have different amounts of backset; and

providing the plurality of client devices at least one media asset stored by the media server based on the determined amount of backset, wherein the at least one media asset comprises data of the live transmission for a time interval or data range.

2. The method of claim 1, wherein providing the plurality of client devices at least one media asset comprises:

providing a first media asset to each one of the plurality of client devices; and

providing a second media asset to each one of the plurality of client devices, wherein the second media asset includes data of the live transmission for a time interval or data range that follows the first media asset.

3. The method of claim 1, wherein providing the plurality of client devices at least one media asset comprises providing a first media asset to a first client device and providing a second media asset to a second client device, wherein the determined amount of backset for the first client device is different than the determined amount of backset for the second client device, wherein the first media asset is different than the second media asset, and wherein the first media asset and the second media asset include data of the live transmission.

4. The method of claim 1, wherein providing the plurality of client devices at least one media asset comprises providing a first portion of the at least one media asset to a first client and providing a second portion of the at least one media asset to a second client, wherein the determined amount of backset for the first client device is different than the determined amount of backset for the second client, wherein the first portion of the at least one media asset is different than the second portion of the at least one media asset, and wherein the at least one media asset includes data of the live transmission.

5. The method of claim 1, wherein determining the amount of backset for the plurality of client devices comprises determining the amount of backset for the plurality of client devices based on at least one of a number of client devices currently downloading the live transmission, a geographical proximity of client devices currently downloading the live transmission, an actual throughput rate to each one of the plurality of client devices, and a historical actual throughput rate to each one of the plurality of client devices.

6. The method of claim 1, wherein determining the amount of backset for the plurality of client devices comprises:

transmitting a maximum backset to the plurality of client devices; and

receiving a request for at least one media asset from each one of the plurality of client devices, wherein the requested media asset corresponds to a backset that is less than the maximum backset.

7. The method of claim 1, wherein determining the amount of backset for the plurality of client devices comprises:

transmitting a recommended backset and a maximum backset to the plurality of client devices; and

receiving a request for at least one media asset that corresponds to a calculated backset from each one of the plurality of client devices, wherein the calculated backset is based on the recommended backset.

8. The method of claim 7, wherein the calculated backset is calculated based on a distribution function that is weighted such that in a majority of situations the calculated backset equals the recommended backset, in a minority of situations the calculated backset is less than the recommended backset, and in a minority of situations the calculated backset is greater than the recommended backset and less than the maximum backset.

9. The method of claim 1, wherein determining the amount of backset for each one of the plurality of client devices comprises:

transmitting a recommended backset, a maximum backset, and a plurality of coefficient values to each one of the plurality of client devices; and

receiving a request for at least one media asset that corresponds to a calculated backset from each one of the plurality of client devices, wherein the calculated backset is based on the recommended backset and the plurality of coefficient values.

10. The method of claim 9, wherein the calculated backset is calculated based on the plurality of coefficient values and a distribution function that is weighted such that in a majority of situations the calculated backset equals the recommended backset, in a minority of situations the calculated backset is less than the recommended backset, and in a minority of situations the calculated backset is greater than the recommended backset and less than the maximum backset.

11. The method of claim 1, wherein providing at least one media asset comprises:

transmitting a media asset based on the amount of backset.

12. The method of claim 1, wherein providing at least one media asset comprises:

transmitting a portion within a media asset based on the amount of backset.

13. The method of claim 1, wherein providing at least one media asset comprises:

providing a plurality of media assets to each one of the plurality of client devices; and

providing at least one of a map of timestamps and a map of datastamps to each one of the plurality of client devices, wherein the map of timestamps comprises a timestamp for each key frame within a media asset that corresponds to a length of time of the live transmission, and wherein the map of datastamps comprises a datastamp for each key frame within the media asset that corresponds to an amount of data of the live transmission.

14. The method of claim 13, wherein the map of timestamps and the map of datastamps are stored as metadata within each one of the plurality of media assets.

15. The method of claim 1, wherein the amount of backset is an amount of time that is temporally prior to the request from the plurality of client devices to download the live transmission.

16. The method of claim 1, wherein the at least one media asset is individually storable, retrievable, and addressable.

17. The method of claim 1, wherein the at least one media asset is addressable using a predictable name.

18. A method for a client device to receive a live transmission, the method comprising:

transmitting a request to a media server to download the live transmission;

receiving a backset from the media server;

requesting a media asset of the live transmission based on the received backset, wherein the media asset comprises data of the live transmission for a time interval or data range; and

downloading the media asset.

19. The method of claim 18, further comprising:

calculating a new backset based on the received backset, wherein requesting a media asset of the live transmission based on the received backset comprises requesting a media asset of the live transmission based on the calculated backset.

20. The method of claim 19, wherein calculating the new backset comprises calculating the new backset based on a distribution function such that the new backset is less than the received backset.

21. The method of claim 19, wherein calculating the new backset comprises;

receiving coefficient values from the media server; and

calculating the new backset based on the received coefficient values and a distribution function.

22. The method of claim 18, wherein the media server transmits the distribution function.

23. The method of claim 18, wherein the media asset is stored within the client device.

24. The method of claim 18, further comprising:

receiving at least one of a map of timestamps and a map of datastamps, wherein the map of timestamps comprises a timestamp for each key frame within the media asset that corresponds to a length of time of the live transmission, and wherein the map of datastamps comprises a datastamp for each key frame within the media asset that corresponds to an amount of data of the live transmission.

25. The method of claim 24, wherein the map of timestamps and map of datastamps are stored as metadata within the media asset.

26. A media content provider to deliver a live transmission, the media content provider comprising:

an encapsulator that includes an interface to receive the live transmission and provide the live transmission to a media asset builder that generates a plurality of media assets; and

a media server that stores each one of the plurality of media assets, provides the media assets to a plurality of client devices, and determines an amount of backset for each one of the plurality of client devices, wherein at least two client devices of the plurality of client devices have different amounts of backset.

27. The media content provider of claim 26, wherein the media server provides a first media asset to a first client device of the plurality of client devices and provides a second media asset to a second client device of the plurality of client devices, wherein the determined amount of backset for the first client device is different than the determined amount of backset for the second client device, wherein the first media asset is different than the second media asset, and wherein the first media asset and second media asset include data of the live transmission.

28. The media content provider of claim 26, wherein the media server provides a first portion of the at least one media asset to a first client device of the plurality of client devices and provides a second portion of the at least one media asset to a second client device of the plurality of client devices, wherein the determined amount of backset for the first client device is different than the determined amount of backset for the second client, wherein the first portion of the at least one media asset is different than the second portion of the at least one media asset, and where the at least one media asset includes data of the live transmission.

29. The media content provider of claim 26, wherein the media server determines the amount of backset for the plurality of client devices based on at least one of a number of client devices currently downloading the live transmission, a geographical proximity of client devices currently downloading the live transmission, an actual throughput rate to each one of the plurality of client devices, and a historical actual throughput rate to each one of the plurality of client devices.

30. The media content provider of claim 26, wherein the media server determines the amount of backset for the plurality of client devices by transmitting a maximum backset to the plurality of client devices, and receiving a request for at least one media asset from each one of the plurality of client devices, wherein the requested media asset corresponds to a backset that is less than the maximum backset.

31. The media content provider of claim 26, wherein the media server determines the amount of backset for the plurality of client devices by transmitting a recommended backset and a maximum backset to the plurality of client devices, and receiving a request for at least one media asset that corresponds to a calculated backset from each one of the plurality of client devices, wherein the calculated backset is based on the recommended backset.

32. The media content provider of claim 31, wherein the calculated backset is calculated based on a distribution function that is weighted such that in a majority of situations the calculated backset equals the recommended backset, in a minority of situations the calculated backset is less than the recommended backset, and in a minority of situations the calculated backset is greater than the recommended backset and less than the maximum backset.

33. The media content provider of claim 26, wherein the media server determines the amount of backset for each one of the plurality of client devices by transmitting a recommended backset, a maximum backset, and a plurality of coefficient values to each one of the plurality of client devices, and receiving a request for at least one media asset that corresponds to a calculated backset from each one of the plurality of client devices, wherein the calculated backset is based on the recommended backset and the plurality of coefficient values.

34. The media content provider of claim 33, wherein the calculated backset is calculated based on the plurality of coefficient values and a distribution function that is weighted such that in a majority of situations the calculated backset equals the recommended backset, in a minority of situations the calculated backset is less than the recommended backset, and in a minority of situations the calculated backset is greater than the recommended backset and less than the maximum backset.

35. The media content provider of claim 26, wherein the media server provides at least one media asset by transmitting a media asset based on the amount of backset.

36. The media content provider of claim 26, wherein the media server provides at least one media asset by transmitting a portion within a media asset based on the amount of backset.

37. The media content provider of claim 26, wherein the media server provides at least one media asset by providing a plurality of media assets to each one of the plurality of client devices, and providing at least one of a map of timestamps and a map of datastamps to each one of the plurality of client devices, wherein the map of timestamps comprises a timestamp for each key frame within a media asset that corresponds to a length of time of the live transmission, and wherein the map of datastamps comprises a datastamp for each key frame within the media asset that corresponds to an amount of data of the live transmission.

38. The media content provider of claim 37, wherein the map of timestamps and map of datastamps are stored as metadata within each one of the plurality of media assets.

39. The media content provider of claim 26, wherein the amount of backset is an amount of time that is temporally prior to the request from the plurality of client devices to download the live transmission.

40. The media content provider of claim 26, wherein the map of datastamps is individually storable, retrievable, and addressable.

41. The media content provider of claim 26, wherein the at least one media asset is addressable using a predictable name.

42. A client device to receive a live transmission, the client device comprising:

a media player; and

a download agent comprising a playback controller, a source agent, and a stream agent,

wherein the source agent transmits a request to a media server to download the live transmission, and receives a backset from the media server,

wherein the source agent requests a media asset based on the received backset and causes the stream agent to the download the requested media asset, and
wherein the media asset comprises data of the live transmission for a time interval or data range.

43. The client device of claim 42, wherein the download agent further comprises a backset calculator, wherein the backset calculator calculates a new backset based on the received backset, and wherein the source agent requests a media asset based on the calculated backset.

44. The client device of claim 43, wherein the backset calculator calculates the backset by setting the received backset to the new backset.

45. The client device of claim 43, wherein the backset calculator calculates the backset based on a distribution function such that the new backset is less than the received backset.

46. The client device of claim 43, wherein the backset calculator calculates the backset based on coefficient values that the source manager received from the media server, and calculates the new backset based on the received coefficient values and a distribution function.

47. The client device of claim 42, wherein the source manager sequentially requests media assets that follow one another.

48. The client device of claim 42, wherein the source agent requests a media asset comprises the source agent accessing metadata stored within the plurality of media assets to find a media asset comprising data that corresponds to the backset.

49. The client device of claim 42, wherein the media asset is individually storable, retrievable, and addressable.

50. The client device of claim 42, wherein the media asset is addressable using a predictable name.

51. The client device of claim 42, wherein the stream agent receives at least one of a map of timestamps and a map of datastamps, wherein the map of timestamps comprises a timestamp for each key frame within the media asset that corresponds to a length of time of the live transmission, and wherein the map of datastamps comprises a datastamp for each key frame within the media asset that corresponds to an amount of data of the live transmission.

52. The client device of claim 51, wherein the map of timestamps and map of datastamps are stored as metadata within the media asset.