Streaming media delivery system
DCFirst Claim
1. A method for distributing via the Internet streaming media encoded as a plurality of sequential frames adapted for playback at a predetermined playback rate and comprising a plurality of sequential data elements, said method comprising:
- receiving via data communications at a server a request from a user computer for the streaming media;
filling a server buffer allocated in a memory of the server, from a media source, at a constant fill rate equal to the playback rate;
when the server buffer is filled to a predetermined level, beginning delivery of the streaming media to the user computer using a transport mechanism to send sequential data elements of the streaming media from the server buffer to the user computer; and
whenever, after said beginning delivery of the streaming media to the user, there are unsent sequential data elements in the server buffer, sending, from the server to the user computer, as much of said unsent sequential data elements that are in the server buffer as said transport mechanism will accept, at a sending rate in excess of the playback rate.
5 Assignments
Litigations
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.
-
Citations
24 Claims
-
1. A method for distributing via the Internet streaming media encoded as a plurality of sequential frames adapted for playback at a predetermined playback rate and comprising a plurality of sequential data elements, said method comprising:
-
receiving via data communications at a server a request from a user computer for the streaming media; filling a server buffer allocated in a memory of the server, from a media source, at a constant fill rate equal to the playback rate; when the server buffer is filled to a predetermined level, beginning delivery of the streaming media to the user computer using a transport mechanism to send sequential data elements of the streaming media from the server buffer to the user computer; and
whenever, after said beginning delivery of the streaming media to the user, there are unsent sequential data elements in the server buffer, sending, from the server to the user computer, as much of said unsent sequential data elements that are in the server buffer as said transport mechanism will accept, at a sending rate in excess of the playback rate. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A server for distributing via the Internet streaming media encoded as a plurality of sequential frames adapted for playback at a predetermined playback rate and comprising a plurality of sequential data elements, 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 Internet, and a communications system providing a set of communications protocols for communicating over the Internet including a transport mechanism operating in accordance with a reliable transport protocol; a server buffer established in said memory for buffering sequential data elements; a machine-readable, executable routine stored in said memory, containing instructions to cause the server to receive via data communications a request from a user computer for the streaming media; a machine-readable, executable routine stored in said memory, containing instructions to cause the server to fill the server buffer, from a media source, at a constant fill rate equal to the playback rate; a machine-readable, executable routine stored in said memory, containing instructions to cause the server to begin delivery of the streaming media to the user computer when the server buffer is filled to a predetermined level; and a machine-readable, executable routine stored in said memory, containing instructions to cause the server, whenever, from and after beginning of sending streaming media to the user computer, there are unsent sequential data elements in the server buffer, to use the transport mechanism to send as much of the sequential data elements that are in the server buffer as said transport mechanism will accept, from the server buffer to the user computer, over said connection to the Internet, at a sending rate in excess of the playback rate. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A non-transitory machine-readable medium on which there has been recorded a computer program for use in operating a server for distributing via the Internet streaming media encoded as a plurality of sequential frames adapted for playback at a specified playback rate and comprising a plurality of sequential data elements, the server providing at least one connection to the Internet, and a communications system providing a set of communications protocols for communicating over the Internet including a transport mechanism operating in accordance with a reliable transport protocol implemented in the server, said program recorded on said machine readable medium comprising:
-
a routine containing instructions to cause the server to receive via data communications a request from a user computer for the streaming media; a routine containing instructions to cause the server to fill the server buffer, from a media source, at a constant fill rate equal to the playback rate; a routine containing instructions to cause the server to begin delivery of the streaming media to the user computer when the server buffer is filled to a predetermined level; and a routine containing instructions to cause the server, whenever, from and after beginning of sending streaming media to the user computer, there unsent sequential data elements in the server buffer, to use the transport mechanism to send as much of the sequential data elements that are in the server buffer as said transport mechanism will accept, from the server buffer to the user computer, over said connection to the Internet, at a sending rate in excess of the playback rate. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
-
Specification