IP Library Granted Patent US 11,863,607
Granted Patent B2
US 11,863,607 · App. 17/495,772 · Granted Jan 2, 2024

Techniques for client-controlled pacing of media streaming

Inventors: Shravya Kunamalla (San Jose, CA); Grenville Armitage (Melbourne, AU); Te-Yuan Huang (Campbell, CA); Peter Lei (Arlington Heights, IL)
Assignee: NETFLIX, INC.
H04L65/70H04L65/80H04L67/02H04L69/326
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,863,607
App. No.
17/495,772
Granted
Jan 2, 2024
Kind
B2
Abstract

In various embodiments, a media delivery application transmits encoded chunks of a media title to a playback application. In operation, the media delivery application receives, via a media channel, an encoded chunk request that has been transmitted over a TCP connection. The media delivery application also receives, via a side channel, a pacing specification that is associated with the encoded chunk request and has been transmitted over the TCP connection. As per the encoded chunk request, the media delivery application retrieves encoded chunk content. The media delivery application sets a parameter associated with the TCP connection equal to a parameter value based on the pacing specification. Subsequently, the media delivery application causes TCP segments corresponding to the encoded chunk content to be transmitted, via the media channel, over the TCP connection in accordance with the first parameter value.

Claims (45)

1. A computer-implemented method for transmitting encoded chunks of a media title, the method comprising:

receiving, via a media channel, a first encoded chunk request that has been transmitted over a Transmission Control Protocol (TCP) connection;

receiving, via a side channel, a first pacing specification that is associated with the first encoded chunk request and has been transmitted over the TCP connection, wherein the first pacing specification imposes a maximum pacing rate at which first encoded chunk content is permitted to be transmitted;

retrieving the first encoded chunk content that corresponds to the first encoded chunk request;

setting a first parameter equal to a first parameter value based on the first pacing specification; and

causing a first plurality of TCP segments corresponding to the first encoded chunk content to be transmitted, via the media channel, over the TCP connection in accordance with the first parameter value.

2. The computer-implemented method of claim 1 , wherein the first pacing specification specifies at least one of a minimum temporal gap between bursts of TCP segments emitted onto the TCP connection, a maximum number of TCP segments permitted in each burst, or a maximum packet emission rate associated with the TCP segments.

3. The computer-implemented method of claim 2 , wherein the maximum number of TCP segments permitted in each burst comprises an integer that is greater than or equal to one.

4. The computer-implemented method of claim 1 , wherein the first encoded chunk request comprises a Hypertext Transfer Protocol (HTTP) GET range request.

5. The computer-implemented method of claim 1 , wherein the side channel comprises one or more extensions to HTTP that allow information to be embedded in one or more different types of HTTP messages.

6. The computer-implemented method of claim 1 , wherein causing the first plurality of TCP segments to be transmitted over the TCP connection comprises issuing an HTTP response specifying the first encoded chunk content.

7. The computer-implemented method of claim 1 , further comprising causing server metadata to be transmitted, via the side channel, over the TCP connection to a playback application executing on a client device.

8. The computer-implemented method of claim 7 , wherein the server metadata specifies at least one of a performance metric value associated with a server, a performance metric value associated with the TCP connection, or the first parameter value.

9. The computer-implemented method of claim 1 , wherein the first pacing specification is computed based on at least one of an encoding profile associated with the first encoded chunk content, a level of a playback buffer, a processor usage, or a performance metric value associated with the TCP connection.

10. The computer-implemented method of claim 1 , further comprising:

receiving, via the media channel, a second encoded chunk request that has been transmitted over the TCP connection;

receiving, via the side channel, a second pacing specification that is associated with the second encoded chunk request and has been transmitted over the TCP connection;

setting the first parameter equal to a second parameter value instead of the first parameter value based on the second pacing specification; and

causing a second plurality of TCP segments corresponding to second encoded chunk content to be transmitted, via the media channel, over the TCP connection in accordance with the second parameter value.

11. One or more non-transitory computer readable media including instructions that, when executed by one or more processors, cause the one or more processors to transmit encoded chunks of a media title by performing the steps of:

receiving, via a media channel, a first encoded chunk request that has been transmitted over a Transmission Control Protocol (TCP) connection;

receiving, via a side channel, a first pacing specification that is associated with the first encoded chunk request and has been transmitted over the TCP connection, wherein the first pacing specification imposes a maximum pacing rate at which first encoded chunk content is permitted to be transmitted;

generating a first response to the first encoded chunk request, wherein the first response specifies the first encoded chunk content;

setting a first parameter equal to a first parameter value based on the first pacing specification; and

causing a first plurality of TCP segments corresponding to the first response to be transmitted, via the media channel, over the TCP connection in accordance with the first parameter value.

12. The one or more non-transitory computer readable media of claim 11 , wherein the first pacing specification specifies at least one of a minimum temporal gap between bursts of TCP segments emitted onto the TCP connection, a maximum number of TCP segments permitted in each burst, or a maximum packet emission rate associated with the TCP segments.

13. The one or more non-transitory computer readable media of claim 12 , wherein the maximum number of TCP segments permitted in each burst comprises an integer that is greater than or equal to one.

14. The one or more non-transitory computer readable media of claim 11 , wherein the first encoded chunk request comprises a Hypertext Transfer Protocol (HTTP) GET range request.

15. The one or more non-transitory computer readable media of claim 11 , wherein receiving the first pacing specification comprises receiving the first pacing specification or an encoded version of the first pacing specification through a Uniform Resource Locator or an HTTP header associated with the first encoded chunk request.

16. The one or more non-transitory computer readable media of claim 11 , wherein the first response comprises an HTTP response, and further comprising adding server metadata to a Uniform Resource Locator (URL) or to an HTTP header associated with the first response in order to transmit the server metadata, via the side channel, over the TCP connection to a playback application executing on a client device.

17. The one or more non-transitory computer readable media of claim 16 , wherein the server metadata specifies at least one of a performance metric value associated with a server, a performance metric value associated with the TCP connection, or the first parameter value.

18. The one or more non-transitory computer readable media of claim 11 , wherein the first pacing specification is computed based on at least one of an instantaneous encoding rate associated with the first encoded chunk content, a level of a playback buffer, an average encoding rate, or a size of the first encoded chunk content.

19. The one or more non-transitory computer readable media of claim 11 , further comprising:

receiving, via the media channel, a second encoded chunk request that has been transmitted over the TCP connection;

determining that the second encoded chunk request is not associated with a pacing specification;

generating a second response to the second encoded chunk request, wherein the second response specifies second encoded chunk content;

setting the first parameter equal to a second parameter value instead of the first parameter value based on a bottleneck rate associated with the TCP connection; and

causing a second plurality of TCP segments corresponding to the second response to be transmitted, via the media channel, over the TCP connection in accordance with the second parameter value.

20. A system comprising:

one or more memories storing instructions; and

one or more processors coupled to the one or more memories that, when executing the instructions, perform the steps of:

receiving, via a media channel, an encoded chunk request that has been transmitted over a Transmission Control Protocol (TCP) connection;

receiving, via a side channel, a pacing specification that is associated with the encoded chunk request and has been transmitted over the TCP connection, wherein the pacing specification imposes a maximum pacing rate at which encoded chunk content is permitted to be transmitted;

retrieving the encoded chunk content that corresponds to the encoded chunk request; and

causing a plurality of packets to be emitted onto the media channel in accordance with the pacing specification, wherein the plurality of packets transmit the encoded chunk content, via the media channel, over the TCP connection.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 7, 2021
From: KUNAMALLA, SHRAVYA; ARMITAGE, GRENVILLE; HUANG, TE-YUAN; LEI, PETER
To: NETFLIX, INC.
Reel/Frame 057729/0454 →
Continuity (1)
Related Publication 20230108107A1 · Apr 6, 2023
Cited By (2)
US 12,250,129 US 12,443,550