Fast startup for streaming media
First Claim
1. A method comprising:
- sending, from a client device, a request that one or more media streams be streamed to the client device;
receiving, at a server device, the request;
beginning streaming the one or more media streams from the server device to the client device using TCP (Transmission Control Protocol);
probing, while streaming the one or more media streams from the server device to the client device, whether data can be streamed from the server device to the client device using UDP (User Datagram Protocol); and
switching to streaming the one or more media streams from the server device to the client device using UDP if the probing indicates that data can be streamed from the server device to the client device using UDP, otherwise continuing to stream the one or more media streams from the server device to the client device using TCP.
2 Assignments
0 Petitions
Accused Products
Abstract
Fast startup for streaming media includes one or both of a technique for predictive start and a technique for switching delivery channel(s) during streaming. Predictive start allows a media content source to predict which media stream(s) are desired by the requesting client device and begin streaming those predicted media stream(s) to the client device. The delivery channel switching technique allows the media content source to begin streaming the media stream(s) using one delivery channel (e.g., using the Transmission Control Protocol (TCP)), and then check whether another delivery channel (e.g., using the User Datagram Protocol (UDP)) will work and switch to that other delivery channel if it will work.
184 Citations
43 Claims
-
1. A method comprising:
-
sending, from a client device, a request that one or more media streams be streamed to the client device;
receiving, at a server device, the request;
beginning streaming the one or more media streams from the server device to the client device using TCP (Transmission Control Protocol);
probing, while streaming the one or more media streams from the server device to the client device, whether data can be streamed from the server device to the client device using UDP (User Datagram Protocol); and
switching to streaming the one or more media streams from the server device to the client device using UDP if the probing indicates that data can be streamed from the server device to the client device using UDP, otherwise continuing to stream the one or more media streams from the server device to the client device using TCP. - View Dependent Claims (2)
-
-
3. One or more computer readable media having stored thereon a plurality of instructions that, when executed by one or more processors, causes the one or more processors to:
-
receive, from a requester, a request for media content to be streamed to the requestor;
stream at least a portion of the media content to the requestor using Transmission Control Protocol (TCP) packets;
receive, concurrent with the at least a portion of the content being streamed to the requestor, a request to change to using User Datagram Protocol (UDP) packets; and
stream one or more additional portions of the media content to the requestor using UDP packets rather than TCP packets. - View Dependent Claims (4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. One or more computer readable media having stored thereon a plurality of instructions that, when executed by one or more processors of a device, causes the one or more processors to:
-
receive, from a media content source, at least a portion of media content using Transmission Control Protocol (TCP) packets;
determine, during receipt of the at least a portion of the media content using TCP packets, whether the media content can be streamed to the device using User Datagram Protocol (UDP) packets; and
send, if the media content can be streamed to the device using UDP packets, a request to the media content source to stream the media content to the device using UDP packets. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19)
-
-
20. A method comprising:
-
sending, from a client device to a server device, a predictive play request;
predicting, at the server device and in response to the predictive play request, one or more media streams desired by the client device;
streaming at least the predicted one or more media streams from the server device to the client device;
determining, at the client device, whether at least one media stream different from the predicted one or more media streams are selected for streaming to the client device; and
if the at least one media stream different from the predicted one or more media streams are selected for streaming to the client device, then sending, to the server device, an indication of the selected at least one media stream, and streaming from the server device to the client device the selected at least one media stream. - View Dependent Claims (21, 22)
-
-
23. One or more computer readable media having stored thereon a plurality of instructions that, when executed by one or more processors of a device, causes the one or more processors to:
-
receive a predictive play request from a requestor;
predict, in response to the predictive play request, one or more media streams to be streamed to the requester; and
stream the predicted one or more media streams to the requestor. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31, 32)
-
-
33. One or more computer readable media having stored thereon a plurality of instructions that, when executed by one or more processors of a device, causes the one or more processors to:
-
send a predictive play request to a media content source; and
receive, in response to the predictive play request, one or more media streams predicted by the media content source as being desired by the device. - View Dependent Claims (34, 35, 36, 37, 38, 39, 40, 41, 42)
-
-
43. A method comprising:
-
sending, from a client device to a server device, a predictive play request;
predicting, at the server device and in response to the predictive play request, one or more media streams desired by the client device;
streaming at least the predicted one or more media streams from the server device to the client device;
determining, at the client device, whether at least one media stream different from the predicted one or more media streams are selected for streaming to the client device;
if the at least one media stream different from the predicted one or more media streams are selected for streaming to the client device, then sending, to the server device, an indication of the selected at least one media stream, and streaming from the server device to the client device the selected at least one media stream rather than at least one of the predicted one or more media streams;
beginning streaming the one or more media streams from the server device to the client device using TCP (Transmission Control Protocol);
probing, while streaming the one or more media streams from the server device to the client device, whether data can be streamed from the server device to the client device using UDP (User Datagram Protocol); and
switching to streaming the one or more media streams from the server device to the client device using UDP if the probing indicates that data can be streamed from the server device to the client device using UDP, otherwise continuing to stream the one or more media streams from the server device to the client device using TCP.
-
Specification