Streaming media delivery system
DCFirst Claim
1. A method for distributing streaming media via a data communications medium such as the Internet to at least one user system of at least one user, the streaming media comprising a plurality of sequential media data elements for a digitally encoded audio or video program, the user system being assumed to have a user buffer for receiving media data and facilities to play back the streaming media at a playback rate for viewing or listening by said at least one user, said method comprising:
- sending initial streaming media elements to the user system at an initial sending rate more rapid than the playback rate, to fill the user buffer; and
configuring the initial streaming media elements so that the amount of said initial elements, and said initial sending rate, are sufficient for the user system to begin playing back the streaming media while the user buffer continues to fill; and
after the user buffer has been filled, sending further streaming media data elements to the user system at about the playback rate; and
wherein the media data elements is sent at a rate that matches the constant fill rate of a server buffer, and is received at the same rate by the user computer if there are no interruptions in the transmission of media data between the server and the user'"'"'s computer.
0 Assignments
Litigations
3 Petitions
Reexamination
Accused Products
Abstract
Streaming media, such as audio or video files, is sent via the Internet. The media are immediately played on a user'"'"'s computer. Audio/video data is transmitted from the server more rapidly than it is played out by the user system. The audio/video data in the user buffer accumulates; and interruptions in playback as well as temporary modem delays are avoided.
72 Citations
18 Claims
-
1. A method for distributing streaming media via a data communications medium such as the Internet to at least one user system of at least one user, the streaming media comprising a plurality of sequential media data elements for a digitally encoded audio or video program, the user system being assumed to have a user buffer for receiving media data and facilities to play back the streaming media at a playback rate for viewing or listening by said at least one user, said method comprising:
- sending initial streaming media elements to the user system at an initial sending rate more rapid than the playback rate, to fill the user buffer; and
configuring the initial streaming media elements so that the amount of said initial elements, and said initial sending rate, are sufficient for the user system to begin playing back the streaming media while the user buffer continues to fill; and
after the user buffer has been filled, sending further streaming media data elements to the user system at about the playback rate; and
wherein the media data elements is sent at a rate that matches the constant fill rate of a server buffer, and is received at the same rate by the user computer if there are no interruptions in the transmission of media data between the server and the user'"'"'s computer. - View Dependent Claims (2, 6, 7)
- sending initial streaming media elements to the user system at an initial sending rate more rapid than the playback rate, to fill the user buffer; and
-
3. A method for distributing streaming media via a data communications medium such as the Internet to at least one user system of at least one user, the streaming media comprising a plurality of sequential media data elements for a digitally encoded audio or video program, the user system being assumed to have a user buffer for receiving media data and facilities to play back the streaming media at a playback rate for viewing or listening by said at least one user, said method comprising:
- delivering streaming media elements to the user system;
determining if delivery has been interrupted;
if delivery has been interrupted, sending streaming media elements to the user system at a sending rate more rapid than the playback rate, to fill the user buffer; and
configuring the initial streaming media elements so that the amount of said initial elements, and said initial sending rate, are sufficient for the user system to begin playing back the streaming media while the user buffer continues to fill; and
wherein the media data elements is sent at a rate that matches the constant fill rate of a server buffer, and is received at the same rate by the user computer if there are no interruptions in the transmission of media data between the server and the user'"'"'s computer.
- delivering streaming media elements to the user system;
-
4. A method for distributing streaming media via a data communications medium such as the Internet to at least one user system of at least one user, the streaming media comprising a plurality of sequential media data elements for a digitally encoded audio or video program, said method comprising:
- assigning serial identifiers to the sequential media data elements comprising the program;
receiving requests from the user system for media data elements corresponding to specified identifiers; and
sending media data elements to the user system responsive to said requests, at a rate more rapid than the rate at which said streaming media is played back by a user; and
configuring the initial streaming media elements so that the amount of said initial elements, and said initial sending rate, are sufficient for the user system to begin playing back the streaming media while the user buffer continues to fill; and
wherein the media data elements is sent at a rate that matches the constant fill rate of a server buffer, and is received at the same rate by the user computer if there are no interruptions in the transmission of media data between the server and the user'"'"'s computer.
- assigning serial identifiers to the sequential media data elements comprising the program;
-
5. A method for operating a media player for receiving and playing streaming media comprising a plurality of sequential media data elements, said elements being available on request by said player via a data communications medium such as the Internet, from a server assumed to be capable of sending streaming media elements at a rate more rapid than the rate at which said streaming media is played back by a user, each said data element having a serial identifier, said method comprising:
maintaining a record of the identifier of the last sequential media data element that has been received by said player; and
requesting transmission of the next sequential media data elements following said last sequential media data element, as said media player requires in order to maintain a sufficient number of media data elements in the media player for uninterrupted playback; and
configuring the initial streaming media elements so that the amount of said initial elements, and said initial sending rate, are sufficient for the user system to begin playing back the streaming media while the user buffer continues to fill; and
wherein the media data elements is sent at a rate that matches the constant fill rate of a server buffer, and is received at the same rate by the user computer if there are no interruptions in the transmission of media data between the server and the user'"'"'s computer.
-
8. A streaming media server for distributing streaming media via a data communications medium such as the Internet to at least one user system of at least one user, the streaming media comprising a plurality of sequential media data elements for a digitally encoded audio or video program, the user system being assumed to have a user buffer for receiving media data and facilities to play back the streaming media at a playback rate for viewing or listening by said at least one user, said server comprising:
-
at least one data storage device, memory for storing machine-readable executable routines and for providing a working memory area for routines executing on the server, a central processing unit for executing the machine-readable executable routines, an operating system, at least one connection to a communications medium, and a communications system providing a set of communications protocols for communicating through said at least one connection; a machine-readable, executable routine containing instructions to cause the server to send initial streaming media elements to the user system at an initial sending rate more rapid than the playback rate, to fill the user buffer; and
configuring the initial streaming media elements so that the amount of said initial elements, and said initial sending rate, are sufficient for the user system to begin playing back the streaming media while the user buffer continues to fill; andmachine-readable, executable routine containing instructions to cause the server, after the user buffer has been filled, to send further streaming media data elements to the user system at about the playback rate; and
wherein the media data elements is sent at a rate that matches the constant fill rate of a server buffer, and is received at the same rate by the user computer if there are no interruptions in the transmission of media data between the server and the user'"'"'s computer. - View Dependent Claims (10, 11)
-
-
9. A streaming media server for distributing streaming media via a data communications medium such as the Internet to at least one user system of at least one user, the streaming media comprising a plurality of sequential media data elements for a digitally encoded audio or video program, the user system being assumed to have a user buffer for receiving media data and facilities to play back the streaming media at a playback rate for viewing or listening by said at least one user, said server comprising:
-
at least one data storage device, memory for storing machine-readable executable routines and for providing a working memory area for routines executing on the server, a central processing unit for executing the machine-readable executable routines, an operating system, at least one connection to the communications medium, and a communications system providing a set of communications protocols for communicating through said at least one connection; a machine-readable, executable routine containing instructions to cause the server to deliver streaming media elements to the user system;
a machine-readable, executable routine containing instructions to cause the server to determine if delivery has been interrupted; anda machine-readable, executable routine containing instructions operable, if the server has determined that delivery has been interrupted, to send streaming media elements to the user system at a sending rate more rapid than the playback rate, to fill the user buffer; and
configuring the initial streaming media elements so that the amount of said initial elements, and said initial sending rate, are sufficient for the user system to begin playing back the streaming media while the user buffer continues to fill; and
wherein the media data elements is sent at a rate that matches the constant fill rate of a server buffer, and is received at the same rate by the user computer if there are no interruptions in the transmission of media data between the server and the user'"'"'s computer.
-
-
12. A media player for receiving and playing streaming media comprising a plurality of sequential media data elements, said elements being available on request by said player via a data communications medium such as the Internet, from a server assumed to be capable of sending streaming media elements at a rate more rapid than the rate at which said streaming media is played back by a user each said data element having a serial identifier, said media player comprising:
-
memory for storing machine-readable executable routines and for providing a working memory area for routines executing on the player, a central processing unit for executing the machine-readable executable routines, an operating system, at least one connection to the communications medium, and a communications system providing a set of communications protocols for communicating through said at least one connection; a machine-readable, executable routine for maintaining a record of the identifier of the last sequential media data element that has been received by said player; and
a machine-readable, executable routine for requesting transmission of the next sequential media data elements following said last sequential media data element, as said media player requires in order to maintain a sufficient number of media data elements in the media player for uninterrupted playback; and
configuring the initial streaming media elements so that the amount of said initial elements, and said initial sending rate, are sufficient for the user system to begin playing back the streaming media while the user buffer continues to fill; and
wherein the media data elements is sent at a rate that matches the constant fill rate of a server buffer, and is received at the same rate by the user computer if there are no interruptions in the transmission of media data between the server and the user'"'"'s computer. - View Dependent Claims (13)
-
-
14. A non-transitory machine-readable medium on which there has been recorded a computer program for use in operating a streaming media server for distributing streaming media via a data communications medium such as the Internet to at least one user system of at least one user, the streaming media comprising a plurality of sequential media data elements for a digitally encoded audio or video program, the user system being assumed to have a user buffer for receiving media data and facilities to play back the streaming media at a playback rate for viewing or listening by said at least one user, said program recorded on said machine readable medium comprising:
- a routine containing instructions to cause the server to send initial streaming media elements to the user system at an initial sending rate more rapid than the playback rate, to fill the user buffer; and
configuring the initial streaming media elements so that the amount of said initial elements, and said initial sending rate, are sufficient for the user system to begin playing back the streaming media while the user buffer continues to fill; and
a routine containing instructions to cause the server, after the user buffer has been filled, to send further streaming media data elements to the user system at about the playback rate; and
wherein the media data elements is sent at a rate that matches the constant fill rate of a server buffer, and is received at the same rate by the user computer if there are no interruptions in the transmission of media data between the server and the user'"'"'s computer.
- a routine containing instructions to cause the server to send initial streaming media elements to the user system at an initial sending rate more rapid than the playback rate, to fill the user buffer; and
-
15. A non-transitory machine-readable medium on which there has been recorded a computer program for use in operating a streaming media server for distributing streaming media via a data communications medium such as the Internet to at least one user system of at least one user, the streaming media comprising a plurality of sequential media data elements for a digitally encoded audio or video program, the user system being assumed to have a user buffer for receiving media data and facilities to play back the streaming media at a playback rate for viewing or listening by said at least one user, said program recorded on said machine readable medium comprising:
- a routine to cause the server to deliver streaming media elements to the user system;
a routine to cause the server to determine if delivery has been interrupted; and
a routine operable, if the server has determined that delivery has been interrupted, to send streaming media elements to the user system at a sending rate more rapid than the playback rate, to fill the user buffer; and
configuring the initial streaming media elements so that the amount of said initial elements, and said initial sending rate, are sufficient for the user system to begin playing back the streaming media while the user buffer continues to fill; and
wherein the media data elements is sent at a rate that matches the constant fill rate of a server buffer, and is received at the same rate by the user computer if there are no interruptions in the transmission of media data between the server and the user'"'"'s computer. - View Dependent Claims (17, 18)
- a routine to cause the server to deliver streaming media elements to the user system;
-
16. A non-transitory machine-readable medium on which there has been recorded a computer program for use in operating a streaming media server for distributing streaming media via a data communications medium such as the Internet to at least one user system of at least one user, the streaming media comprising a plurality of sequential media data elements for a digitally encoded audio or video program, the user system being assumed to have a media player for receiving and playing the streaming media on said user system, which is operable to obtain media data elements from said server by transmitting requests to said server to send one or more specified media data elements, said program recorded on said machine readable medium comprising:
-
a routine to cause the server to assign serial identifiers to the sequential media data elements comprising the streaming media;
a routine to cause the server to receive requests from the user system for media data elements corresponding to specified identifiers; anda routine to cause the server to send media data elements to the user system responsive to said requests, at a rate more rapid than the rate at which said streaming media is played back by a user; and
configuring the initial streaming media elements so that the amount of said initial elements, and said initial sending rate, are sufficient for the user system to begin playing back the streaming media while the user buffer continues to fill; and
wherein the media data elements is sent at a rate that matches the constant fill rate of a server buffer, and is received at the same rate by the user computer if there are no interruptions in the transmission of media data between the server and the user'"'"'s computer.
-
Specification