IP Library › Granted Patent US 11,405,442
Granted Patent B2
US 11,405,442 · App. 16/791,830 · Granted Aug 2, 2022

Dynamic rotation of streaming protocols

Inventors: Nathan Bartholomew Thomas (Seattle, WA); Eugene Michael Farrell (Sammamish, WA); Erik Jonathon Tellvik (Renton, WA); Deepak Suryanarayanan (Bellevue, WA)
Assignee: Amazon Technologies, Inc.
H04L65/60H04L65/4084H04L65/608H04L65/80H04L67/02G06F9/452H04L67/42
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,405,442
App. No.
16/791,830
Granted
Aug 2, 2022
Kind
B2
Abstract

A method and apparatus for dynamic rotation of streaming protocols are disclosed. In the method and apparatus, a first portion of content is streamed to a client device in accordance with a first content delivery protocol. Further, information indicating client device attributes, network conditions or usage conditions is received. A plurality of content delivery protocols including the first content delivery protocol are evaluated based at least in part on the received information to identify a content delivery protocol for streaming the a second portion of the content.

Claims (38)

1. A computer-implemented method, comprising:

obtaining a set of client device attributes including information used to select a first content delivery protocol of a plurality of content delivery protocols for streaming content to a first application of a first client device;

selecting, based at least in part on the information, a first content delivery protocol;

streaming, over a network, a first portion of the content to the first client device using the first content delivery protocol, the content including encoded audiovisual media;

obtaining a first client device attribute and a second client device attribute of the set of client device attributes associated with the first application of the first client device, the first client device attribute generated based at least in part on an interaction with the first client device and the second client device attribute comprises information indicating an amount of computational resources available to the first application;

in response to a change in the first client attribute or the second client attribute, generating a determination to stream a second portion of the content using a second content delivery protocol from a plurality of content delivery protocols based at least in part on the first client device attribute and the second client device attribute; and

in response to the determination, streaming, over the network, the second portion of the content using the second content delivery protocol.

2. The computer-implemented method of claim 1 , wherein the first client device attribute indicates an action performed by a user of the first client device with the first application.

3. The computer-implemented method of claim 1 , wherein the first client device attribute includes a modification to at least one previous member of the set of client device attributes.

4. The computer-implemented method of claim 1 , wherein the first client device attribute includes an attribute not previously included in the set of client device attributes.

5. The computer-implemented method of claim 1 , wherein the first portion of the content and the second portion of the content are streamed by a streaming server; and

wherein the computer-implemented method further comprises:

obtaining information indicative of a condition of the streaming server; and

streaming, over the network, a third portion of the content using a third content delivery protocol.

6. The computer-implemented method of claim 1 , wherein the first client device attribute further comprises information indicating an amount of computational resources available to the first application.

7. A system, comprising:

a processor; and

memory storing instructions that, as a result of being executed by the processor, cause the system to:

select a first content delivery protocol to stream media to a first application executed by a first device based at least in part on a set of usage conditions associated with the first device;

provide a first portion of the media in accordance with the first content delivery protocol;

obtain a first usage condition associated with the first application of the first device and information indicating an amount of computing resources available to the first application, the first usage condition generated based at least in part on an interaction with the first device; and

in response to a change in the first usage condition or the information, provide a second portion of the media using a second content delivery protocol based at least in part on the first usage condition and the information.

8. The system of claim 7 , wherein the set of usage conditions includes a first condition indicating an operation performed with an application executed by the first device and responsible for displaying the content.

9. The system of claim 7 , wherein the memory further includes instructions that, as a result of being executed by the processor, cause the system to calculate a set of fitness measures for a plurality of content delivery protocols available to the system based at least in part on the set of usage conditions.

10. The system of claim 9 , wherein the memory further includes instructions that, as a result of being executed by the processor, cause the system to update the set of fitness measures based at least in part on the first usage condition.

11. The system of claim 9 , wherein instructions that cause the system to calculate the set of fitness measures further include instructions that, as a result of being executed by the processor, cause the system to weigh the set of fitness measures based at least in part on a subset of usage conditions of the set of usage conditions.

12. The system of claim 7 , wherein the set of usage conditions includes information indicating at least one of: an operating system of the first device, an application executed by the first device, a screen size of the first device, a resolution of the first device, an amount of computational resources available to the first device, a set of protocols available to the first device, a user interaction with the first device, muting the content on the first device, switching between applications of the first device, switching between devices, and network bandwidth available to the first device.

13. The system of claim 7 , wherein the instructions that cause the system to provide the second portion of the media using the second content delivery protocol further include instructions that, as a result of being executed by the processor, cause the system to provide the second portion of the media to a second device distinct from the first device.

14. A non-transitory computer-readable storage medium storing executable instructions that, as a result of being executed by one or more processors of a computer system, cause the computer system to:

cause a first portion of content to be streamed to a first device based at least in part on a first content delivery protocol, the first content delivery protocol selected based at least in part on a set of properties of the first device;

obtain a subset of properties of the set of properties from the first device, the subset of properties including a usage condition generated based at least in part on an interaction with the first device and an amount of computational resources available to an application of the first device; and

in response to a change in a property of the subset of properties, cause a second portion of the content to be streamed based at least in part on a second content delivery protocol.

15. The non-transitory computer-readable storage medium of claim 14 , wherein the property of the subset of properties indicates a reduction in computational resources of the first device and the second content delivery protocol has a lower resolution than the first content delivery protocol.

16. The non-transitory computer-readable storage medium of claim 14 , wherein the first portion of content and the second portion of the content are distinct.

17. The non-transitory computer-readable storage medium of claim 14 , wherein the subset of properties further includes information indicating an operation associated with an application executed by the first device.

18. The non-transitory computer-readable storage medium of claim 14 , wherein the instructions that cause the computer system to cause the first portion of content to be streamed further include instructions that cause the computer system to cause a first streaming server to stream the first portion of content.

19. The non-transitory computer-readable storage medium of claim 18 , wherein the instructions that cause the computer system to cause the second portion of the content to be streamed further include instructions that cause the computer system to cause a second streaming server to stream the second portion of the content to a second device distinct from the first device.

20. The non-transitory computer-readable storage medium of claim 14 , wherein the first portion of the content and the second portion of the content are part of a streaming session for a remote desktop application.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 14, 2020
From: THOMAS, NATHAN BARTHOLOMEW; FARRELL, EUGENE MICHAEL; TELLVIK, ERIK JONATHON; SURYANARAYANAN, DEEPAK
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 051826/0448 →
Continuity (2)
Continuation 14500845 · Sep 29, 2014
Related Publication 20200186580A1 · Jun 11, 2020
Cited By (1)
US 12,636,007