Streaming media delivery system
First Claim
Patent Images
1. A method for distributing a pre-recorded audio or video program over the Internet, the method comprising:
- reading by a server system a first audio or video program stored in digitally encoded form on computer-readable media,the server system comprising at least one computer;
supplying, at the server system, media data elements representing the first program, each media data element comprising a digitally encoded portion of the first program and having a playback rate;
filling a first data structure of the server system to a predetermined level with media data elements representing the first program;
maintaining approximately the predetermined level of media data elements in the first data structure by removing the oldest media data element from the first data structure at about the playback rate of the oldest media data element;
receiving requests, at the server system via one or more data connections over the Internet, for the first program, each received request originating from a requesting system, each requesting system comprising at least one computer;
sending, to each requesting system, any media data elements in the first data structure unsent to that requesting system, whenever such unsent media data elements are in the first data structure, wherein,the data connection between the server system and each requesting system has a data rate more rapid than the playback rate of the one or more media data elements sent via that connection;
each sending is at a transmission rate as fast as the data connection between the server system and each requesting system allows; and
all of the media data elements that are sent by the server system to the requesting systems are sent from the first data structure as the media data elements were first stored therein;
reading by the server system a second audio or video program stored in digitally encoded form on computer-readable media;
supplying, at the server system, media data elements representing the second program, each media data element comprising a digitally encoded portion of the second program and having a playback rate;
filling a second data structure of the server system to a predetermined level with media data elements representing the second program;
maintaining approximately the predetermined level of media data elements in the second data structure by removing the oldest media data element from the second data structure at about the playback rate of the oldest media data element;
receiving requests, at the server system via one or more data connections over the Internet, for the second program, each received request originating from a requesting system, each requesting system comprising at least one computer; and
sending, to each requesting system, any media data elements in the second data structure unsent to that requesting system, whenever such unsent media data elements are in the second data structure.
5 Assignments
0 Petitions
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 under control of a transport mechanism. A server buffer is prefilled with a predetermined amount of the audio/video data. When the transport mechanism causes data to be sent to the user'"'"'s computer, it is sent 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.
376 Citations
12 Claims
-
1. A method for distributing a pre-recorded audio or video program over the Internet, the method comprising:
-
reading by a server system a first audio or video program stored in digitally encoded form on computer-readable media, the server system comprising at least one computer; supplying, at the server system, media data elements representing the first program, each media data element comprising a digitally encoded portion of the first program and having a playback rate; filling a first data structure of the server system to a predetermined level with media data elements representing the first program; maintaining approximately the predetermined level of media data elements in the first data structure by removing the oldest media data element from the first data structure at about the playback rate of the oldest media data element; receiving requests, at the server system via one or more data connections over the Internet, for the first program, each received request originating from a requesting system, each requesting system comprising at least one computer; sending, to each requesting system, any media data elements in the first data structure unsent to that requesting system, whenever such unsent media data elements are in the first data structure, wherein, the data connection between the server system and each requesting system has a data rate more rapid than the playback rate of the one or more media data elements sent via that connection; each sending is at a transmission rate as fast as the data connection between the server system and each requesting system allows; and all of the media data elements that are sent by the server system to the requesting systems are sent from the first data structure as the media data elements were first stored therein; reading by the server system a second audio or video program stored in digitally encoded form on computer-readable media; supplying, at the server system, media data elements representing the second program, each media data element comprising a digitally encoded portion of the second program and having a playback rate; filling a second data structure of the server system to a predetermined level with media data elements representing the second program; maintaining approximately the predetermined level of media data elements in the second data structure by removing the oldest media data element from the second data structure at about the playback rate of the oldest media data element; receiving requests, at the server system via one or more data connections over the Internet, for the second program, each received request originating from a requesting system, each requesting system comprising at least one computer; and sending, to each requesting system, any media data elements in the second data structure unsent to that requesting system, whenever such unsent media data elements are in the second data structure. - View Dependent Claims (2, 3)
-
-
4. A server system for distributing a pre-recorded audio or video program over the Internet, the server system comprising:
-
at least one computer having a connection to the Internet; a machine-readable, executable routine containing instructions to cause one of the at least one computers to read a first audio or video program stored in digitally encoded form on computer-readable media; a machine-readable, executable routine containing instructions to cause one of the at least one computers to supply media data elements representing the first program, each media data element comprising a digitally encoded portion of the first program and having a playback rate; a machine-readable, executable routine containing instructions to cause one of the at least one computers to fill a first data structure of the server system to a predetermined level with media data elements representing the first program; a machine-readable, executable routine containing instructions to cause one of the at least one computers to maintain approximately the predetermined level of media data elements in the first data structure by removing the oldest media data element from the first data structure at about the playback rate of the oldest media data element; a machine-readable, executable routine containing instructions to cause one of the at least one computers to receive requests, at the server system via one or more data connections over the Internet, for the first program, each received request originating from a requesting system, each requesting system comprising at least one computer; a machine-readable, executable routine containing instructions to cause one of the at least one computers to send, to each requesting system, any media data elements in the first data structure unsent to that requesting system, whenever such unsent media data elements are in the first data structure, wherein, the data connection between the server system and each requesting system has a data rate more rapid than the playback rate of the one or more media data elements sent via that connection; each sending is at a transmission rate as fast as the data connection between the server system and each requesting system allows; and all of the media data elements that are sent by the server system to the requesting systems are sent from the first data structure as the media data elements were first stored therein; a machine-readable, executable routine containing instructions to cause one of the at least one computers to read a second audio or video program stored in digitally encoded form on computer-readable media; a machine-readable, executable routine containing instructions to cause one of the at least one computers to supply media data elements representing the second program, each media data element comprising a digitally encoded portion of the second program and having a playback rate; a machine-readable, executable routine containing instructions to cause one of the at least one computers to fill a second data structure of the server system to a predetermined level with media data elements from the second program; a machine-readable, executable routine containing instructions to cause one of the at least one computers to maintain approximately the predetermined level of media data elements in the second data structure by removing the oldest media data element from the second data structure at about the playback rate of the oldest media data element; a machine-readable, executable routine containing instructions to cause one of the at least one computers to receive requests, at the server system via one or more data connections over the Internet, for the second program, each received request originating from a requesting system, each requesting system comprising at least one computer; and a machine-readable, executable routine containing instructions to cause one of the at least one computers to send, to each requesting system, any media data elements in the second data structure unsent to that requesting system, whenever such unsent media data elements are in the second data structure. - View Dependent Claims (5, 6)
-
-
7. A computer program product for distributing a pre-recorded audio or video program over the Internet from a server system comprising at least one computer having a connection to the Internet, the computer program product comprising a non-transitory computer readable storage medium having program instructions embodied therewith, the program instructions comprising:
-
instructions executable to cause one of the at least one computers to read a first audio or video program stored in digitally encoded form on computer-readable media; instructions executable to cause one of the at least one computers to supply media data elements representing the first program, each media data element comprising a digitally encoded portion of the program and having a playback rate; instructions executable to cause one of the at least one computers to fill a first data structure of the server system to a predetermined level with media data elements from the first program; instructions executable to cause one of the at least one computers to maintain approximately the predetermined level of media data elements in the first data structure by removing the oldest media data element from the first data structure at about the playback rate of the oldest media data element; instructions executable to cause one of the at least one computers to receive requests, at the server system via one or more data connections over the Internet, for the first program, each received request originating from a requesting system, each requesting system comprising at least one computer; instructions executable to cause one of the at least one computers to send, to each requesting system, any media data elements in the first data structure unsent to that requesting system, whenever such unsent media data elements are in the first data structure, wherein, the data connection between the server system and each requesting system has a data rate more rapid than the playback rate of the one or more media data elements sent via that connection; each sending is at a transmission rate as fast as the data connection between the server system and each requesting system allows; and all of the media data elements that are sent by the server system to the requesting systems are sent from the first data structure as the media data elements were first stored therein; instructions executable to cause one of the at least one computers to read a second audio or video program stored in digitally encoded form on computer-readable media; instructions executable to cause one of the at least one computers to supply, media data elements representing the second program, each media data element comprising a digitally encoded portion of the second program and having a playback rate; instructions executable to cause one of the at least one computers to fill a second data structure of the server system to a predetermined level with media data elements from the second program; instructions executable to cause one of the at least one computers to maintain approximately the predetermined level of media data elements in the second data structure by removing the oldest media data element from the second data structure at about the playback rate of the oldest media data element; instructions executable to cause one of the at least one computers to receive requests, at the server system via one or more data connections over the Internet, for the second program, each received request originating from a requesting system, each requesting system comprising at least one computer; and instructions executable to cause one of the at least one computers to send, to each requesting system, any media data elements in the second data structure unsent to that requesting system, whenever such unsent media data elements are in the second data structure. - View Dependent Claims (8, 9)
-
-
10. A server system for distributing a pre-recorded audio or video program over the Internet, the server system comprising at least one computer having a connection to the Internet, the server system being adapted to:
-
read a first audio or video program stored in digitally encoded form on computer-readable media; supply media data elements representing the first program, each media data element comprising a digitally encoded portion of the program and having a playback rate; fill a first data structure of the server system to a predetermined level with media data elements representing the first program; maintain approximately the predetermined level of media data elements in the first data structure by removing the oldest media data element from the first data structure at about the playback rate of the oldest media data element; receive requests, at the server system via one or more data connections over the Internet, for the first program, each received request originating from a requesting system, each requesting system comprising at least one computer; send, to each requesting system, any media data elements in the first data structure unsent to that requesting system, whenever such unsent media data elements are in the first data structure, wherein, the data connection between the server system and each requesting system has a data rate more rapid than the playback rate of the one or more media data elements sent via that connection; each sending is at a transmission rate as fast as the data connection between the server system and each requesting system allows; and all of the media data elements that are sent by the server system to the requesting systems are sent from the first data structure as the media data elements were first stored therein; read a second audio or video program stored in digitally encoded form on computer-readable media; supply media data elements representing the second program, each media data element comprising a digitally encoded portion of the second program and having a playback rate; fill a second data structure of the server system to a predetermined level with media data elements representing the second program; maintain approximately the predetermined level of media data elements in the second data structure by removing the oldest media data element from the second data structure at about the playback rate of the oldest media data element; receive requests, at the server system via one or more data connections over the Internet, for the second program, each received request originating from a requesting system, each requesting system comprising at least one computer; and send, to each requesting system, any media data elements in the second data structure unsent to that requesting system, whenever such unsent media data elements are in the second data structure. - View Dependent Claims (11, 12)
-
Specification