Client-side caching of streaming media content
First Claim
Patent Images
1. A method of facilitating a transfer of streaming media data between a server device, a proxy device, and a client device, the method comprising:
- receiving, at the proxy device, a first message from the server device, the first message comprising;
a first portion containing data identifying a data structure type;
a second portion containing data identifying a cache control directive to indicate that only a client device is allowed to cache streaming media content associated with the cache control directive, and further identifying one or more headers, the one or more headers including a streaming speed header to indicate a speed at which streaming media content is to be streamed, wherein the speed at which the streaming media is to be streamed is independent of an encoded bit rate of the streaming media content; and
a third portion containing data identifying an end of the second portion in the data structure;
based upon the cache control directive, determining that the proxy device is not allowed to cache the streaming media content;
based upon the determination, transmitting the first message to the client device without caching the streaming media content at the proxy device; and
sending, from the client device, a second message to the server device, wherein the second message provides details of user actions to the server, the second message comprising;
a logging information header to indicate that a message body portion of the data structure includes logging information for communication to the server device, the logging information regarding playback of streaming media content from a cache at the client device, wherein the logging information comprises;
an amount of time a streaming media player spent playing the streaming media content;
an identification of the portions of the streaming media content that were played multiple times;
an identification of the portions of the streaming media content that were skipped;
a determination of whether playback of the streaming media content was paused;
an identification of the point or points in the streaming media content that were paused;
oran identification of a problem with a network connection between the server device and the client device.
1 Assignment
0 Petitions
Accused Products
Abstract
Various functionality with respect to streaming media content is made available to users. Such functionality includes one or more of: streaming media content at a rate independent of the encoded bit rate of the content, allowing streaming of content to continue even when the user has selected various shuttle control options (e.g., pause, stop, fast forward, seek, rewind, etc.), allowing streaming content to be recorded for playback at a later time, and allowing streaming content to be time-shifted.
174 Citations
11 Claims
-
1. A method of facilitating a transfer of streaming media data between a server device, a proxy device, and a client device, the method comprising:
-
receiving, at the proxy device, a first message from the server device, the first message comprising; a first portion containing data identifying a data structure type; a second portion containing data identifying a cache control directive to indicate that only a client device is allowed to cache streaming media content associated with the cache control directive, and further identifying one or more headers, the one or more headers including a streaming speed header to indicate a speed at which streaming media content is to be streamed, wherein the speed at which the streaming media is to be streamed is independent of an encoded bit rate of the streaming media content; and a third portion containing data identifying an end of the second portion in the data structure; based upon the cache control directive, determining that the proxy device is not allowed to cache the streaming media content; based upon the determination, transmitting the first message to the client device without caching the streaming media content at the proxy device; and sending, from the client device, a second message to the server device, wherein the second message provides details of user actions to the server, the second message comprising; a logging information header to indicate that a message body portion of the data structure includes logging information for communication to the server device, the logging information regarding playback of streaming media content from a cache at the client device, wherein the logging information comprises; an amount of time a streaming media player spent playing the streaming media content; an identification of the portions of the streaming media content that were played multiple times; an identification of the portions of the streaming media content that were skipped; a determination of whether playback of the streaming media content was paused; an identification of the point or points in the streaming media content that were paused;
oran identification of a problem with a network connection between the server device and the client device. - View Dependent Claims (2, 3, 4, 9)
-
-
5. A computer storage media encoding computer executable instructions that when executed by a computer comprise:
-
instructions configured to receive, at the proxy device, a first message from the server device, the first message comprising; a first portion containing data identifying a data structure type; a second portion containing data identifying a cache control directive to indicate that only a client device is allowed to cache streaming media content associated with the cache control directive, and further identifying one or more headers, the one or more headers including a streaming speed header to indicate a speed at which streaming media content is to be streamed, wherein the speed at which the streaming media is to be streamed is independent of an encoded bit rate of the streaming media content; and a third portion containing data identifying the end of the second portion in the data structure; based upon the cache control directive, instructions configured to determine that the proxy device is not allowed to cache the streaming media content; and based upon the determination, instructions configured to transmit the first message to the client device without caching the streaming media content at the proxy device; and instructions configured to send, from the client device, a second message to the server device, wherein the second message provides details of user actions to the server, the second message comprising; a logging information header to indicate that a message body portion of the data structure includes logging information for communication to the server device, the logging information regarding playback of streaming media content from a cache at the client device, wherein the logging information comprises; an amount of time a streaming media player spent playing the streaming media content; an identification of the portions of the streaming media content that were played multiple times; an identification of the portions of the streaming media content that were skipped; a determination of whether playback of the streaming media content was paused; an identification of the point or points in the streaming media content that were paused;
oran identification of a problem with a network connection between the server device and the client device. - View Dependent Claims (6, 7, 8, 10)
-
-
11. A system for facilitating the transfer of streaming media content, comprising:
-
a server device adapted to transmit a first message, the first message comprising; a first portion containing data identifying a data structure type; a second portion containing data identifying a cache control directive to indicate that only a client device is allowed to cache streaming media content associated with the cache control directive, and further identifying one or more headers, the one or more headers including a streaming speed header to indicate a speed at which streaming media content is to be streamed, wherein the speed at which the streaming media is to be streamed is independent of an encoded bit rate of the streaming media content; and a third portion containing data identifying an end of the second portion in the data structure; a proxy device adapted to receive the first message from the server device, determine if the proxy device is allowed to cache the streaming media content, and transmit the first message to the client device without caching the streaming media content at the proxy device; wherein the client device is adapted to receive the first message from the server device, determine if the client device is allowed to cache the streaming media content, and cache the streaming media content at the client device; and wherein the client device is adapted to send a second message to the server device, wherein the second message provides details of user actions to the server, the second message comprising; a logging information header to indicate that a message body portion of the data structure includes logging information for communication to the server device, the logging information regarding playback of streaming media content from a cache at the client device, wherein the logging information comprises; an amount of time a streaming media player spent playing the streaming media content; an identification of the portions of the streaming media content that were played multiple times; an identification of the portions of the streaming media content that were skipped; a determination of whether playback of the streaming media content was paused; an identification of the point or points in the streaming media content that were paused;
oran identification of a problem with a network connection between the server device and the client device.
-
Specification