Glitch-free media streaming
First Claim
1. A computer-implemented method with at least one client computing device with a media player and at least one remote computing device, comprising:
- indexing media content by a search service;
evaluating text input by a user to return a URL listing of remote computing devices including at least one remote computing device hosting the indexed media content relating to the text input;
providing, by the at least one client computing device with a media player, media content streaming services to the user to stream the indexed media content from the at least one remote computing device, the providing being independent of whether the at least one remote computing device implements media content streaming services, the at least one client computing device with a media player providing the media content streaming services by;
establishing, multiple transport protocol connections to the at least one remote computing device;
tasking each connection of at least a subset of the multiple transport protocol connections to read a particular data segment of the indexed media content, the data segment identifying a respective offset into the indexed media content and a number of bytes to read;
managing connection tasks to regulate data input into a streaming media buffer for storing received data segments of the indexed media content;
removing data from the streaming media buffer for real-time playback to the user;
determining the number of bytes for each connection based on periodic determinations of the transmit rate on the connection; and
requesting overhead on each connection, byte-size of the media content, and bit-rate at which the indexed media content was encoded.
2 Assignments
0 Petitions
Accused Products
Abstract
Glitch-free media streaming is provided by a client computing device (“client”) independent of whether a remote computing device (“host”) associated with media content provides real-time media content streaming services. Specifically, the client computing device (“client”) provides a user with real-time media content streaming services by establishing multiple connections to the host to read respective portions of the media content by sending byte-range transport protocol requests to the host. As the reading operations progress, the client evaluates transmit rates over respective ones of the connections in view of a real-time media content playback rate to regulate data flow into a streaming media buffer and provide the user with a consistent high-quality (glitch-free) streaming media presentation.
78 Citations
17 Claims
-
1. A computer-implemented method with at least one client computing device with a media player and at least one remote computing device, comprising:
-
indexing media content by a search service; evaluating text input by a user to return a URL listing of remote computing devices including at least one remote computing device hosting the indexed media content relating to the text input; providing, by the at least one client computing device with a media player, media content streaming services to the user to stream the indexed media content from the at least one remote computing device, the providing being independent of whether the at least one remote computing device implements media content streaming services, the at least one client computing device with a media player providing the media content streaming services by; establishing, multiple transport protocol connections to the at least one remote computing device; tasking each connection of at least a subset of the multiple transport protocol connections to read a particular data segment of the indexed media content, the data segment identifying a respective offset into the indexed media content and a number of bytes to read; managing connection tasks to regulate data input into a streaming media buffer for storing received data segments of the indexed media content; removing data from the streaming media buffer for real-time playback to the user; determining the number of bytes for each connection based on periodic determinations of the transmit rate on the connection; and requesting overhead on each connection, byte-size of the media content, and bit-rate at which the indexed media content was encoded. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computer-implemented method with at least one client computing device with a media player and at least one remote computing device, comprising:
-
indexing media content by a search service; evaluating text input by a user to return a URL listing of remote computing devices including the at least one remote computing device hosting the indexed media content relating to the text input; requesting media content header information from the at least one remote computing device to identify file size of the indexed media content, transmit times, request overhead, and bit-rate indicating a minimum streaming speed for real-time playback of the indexed media content to the user; establishing, by the client computing device with a media player, multiple transport protocol connections to the at least one remote computing device, the multiple transport protocol connections being established to download the indexed media content from the at least one remote computing device; reading, by the client computing device, each bit of the indexed media content using at least a subset of the multiple transport protocol connections by; assigning each connection of the at least a subset of the multiple transport protocol a respective task to read a respective data segment of the indexed media content, the respective data segment indicating a respective offset into the indexed media content and a respective data segment size; monitoring each connection for completion of the respective task; responsive to the monitoring; (a) determining whether to again task the connection at completion of the respective task to get a next data segment at a next offset into the indexed media content, whether to task a different connection of the multiple transport protocol connections to read the next data segment, or whether to task a different connection of the multiple transport protocol connections to read at least a portion of the next data segment to assist the connection is completing the respective task; and (b) checking whether to change the respective data segment size for the connection; responsive to the assigning, receiving, by the client computing device, a data segment of the indexed media content into a buffer; and removing, by the client computing device, data from the buffer for real-time playback to the user. - View Dependent Claims (9, 10, 11, 12)
-
-
13. A computing device with a media player comprising:
-
a processor; and a memory coupled to the processor, the memory comprising computer-program instructions for execution by the processor, the computer-program instructions for performing operations comprising; indexing media content by a search service; evaluating text input by a user to return a URL listing of remote computing devices including at least one remote computing device hosting the indexed media content relating to the text input; identifying an optimal number of HTTP connections to establish between the computing device with a media player and the at least one remote computing device that is hosting the indexed media content, the identifying being based at least on one or more of a current channel bandwidth on a connection to the at least one remote computing device, overhead of sending an HTTP request to the at least one remote computing device over the connection, speed at which portions of the indexed media content that have been downloaded to the computing device with a media player are removed from a buffer, size of the buffer, requesting media content header information to identify file size of the indexed media content, transmit times, bit-rate indicating a minimum streaming speed for real-time playback of the indexed media content; establishing, the optimal number of HTTP connections to the at least one remote computing device; configuring each of the HTTP connections to read a particular number of bytes of the indexed media content at a particular offset into the indexed media content, the particular number of bytes being less than a total size of the piece of the indexed media content; and managing the indexed media content data segment download operations over each of the HTTP connections in view of fluctuating network bandwidth conditions to regulate data input into the buffer and provide a real-time media playback operation with a consistent stream of the indexed media content bits at a particular playback speed. - View Dependent Claims (14, 15, 16, 17)
-
Specification