IP Library Granted Patent US 11,902,599
Granted Patent B2
US 11,902,599 · App. 17/116,711 · Granted Feb 13, 2024

Multiple protocol prediction and in-session adaptation in video streaming

Inventors: Tongyu Dai (Beijing, CN); Lan Xie (Beijing, CN); Wenhao Zhang (Beijing, CN); Deliang Fu (Beijing, CN); Chao Li (Beijing, CN); Qiang She (Beijing, CN); Yuting Gui (Beijing, CN); Yicheng Liu (Beijing, CN); Yanping Zhou (Beijing, CN); Xizhi Xu (Beijing, CN)
Assignee: Hulu, LLC
H04N21/2343
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,902,599
App. No.
17/116,711
Granted
Feb 13, 2024
Kind
B2
Abstract

In some embodiments, a method sends a set of requests for a video using a first protocol. The first protocol is selected from a plurality of protocols available for use in a playback session for the video. The method compares a first performance of the first protocol and a second performance of a second protocol and determines whether to switch from using the first protocol to the second protocol in the playback session based on the comparing.

Claims (63)

1. A method comprising:

determining, by a computing device, a plurality of profiles of a profile ladder and a plurality of protocols, wherein profiles in the plurality of profiles are associated with a plurality of bitrate levels, and wherein a first protocol defines a first specification of how a video is sent using the plurality of profiles and a second protocol defines a second specification of how the video is sent using the plurality of profiles;

sending, by the computing device, a set of requests for a set of segments of a video at a first profile from the plurality of profiles, wherein a first protocol is specified to be used to receive the set of segments of the video based on the set of requests;

comparing, by the computing device, a first performance of the first protocol based on the set of requests for the video and a second performance of a second protocol, wherein the plurality of profiles, the first protocol, and the second protocol are available for selection in a playback session for the video; and

determining, by the computing device, whether to switch from using the first protocol to the second protocol in the playback session based on the comparing and whether to switch profiles in the plurality of profiles based on respective bitrates in the plurality of bitrate levels and an available bandwidth in the playback session, wherein the second protocol is specified to be used for a request for a segment of the video when switching to the second protocol and a second profile is specified for a request for a segment of video when switching profiles.

2. The method of claim 1 , further comprising:

when the switch is made to the second protocol, sending the request for the segment of the video, wherein the second protocol is inserted in the request for the segment; and

when the switch is not made to the second protocol, sending the request for the segment of the video, wherein the second protocol is not inserted in the request for the segment, and the segment of video is received using the first protocol.

3. The method of claim 1 , wherein the first protocol is selected from the plurality of protocols based on characteristics of the playback session before playback of the video starts.

4. The method of claim 1 , wherein the first protocol is selected from the plurality of protocols based on characteristics of the playback session after a request is sent for the video.

5. The method of claim 1 , further comprising:

prior to sending the set of requests, opening the playback session using the first protocol.

6. The method of claim 1 , wherein the set of segments comprises a first set of segments, and wherein comparing the first performance of the first protocol and the second performance of the second protocol comprises:

calculating a first performance metric for the first protocol using the first set of segments that are received using the first protocol; and

calculating a second performance metric for the second protocol using a second set of segments that are received using the second protocol.

7. The method of claim 6 , wherein comparing the first performance of the first protocol and the second performance of the second protocol comprises:

switching from the first protocol to the second protocol after receiving the first set of segments, wherein the second performance metric is calculated after the switching.

8. The method of claim 6 , wherein determining whether to switch from using the first protocol to the second protocol in the playback session comprises:

comparing the first performance metric to the second performance metric; and

switching to the second protocol when a difference between the second performance metric and the first performance metric meets a threshold.

9. The method of claim 8 , further comprising:

switching back to the first protocol when the difference does not meet the threshold.

10. The method of claim 1 , further comprising:

before performing the comparing and the determining whether to switch:

determining whether a buffer length meets a threshold; and

waiting to perform the comparing and the determining whether to switch until the buffer length meets the threshold.

11. The method of claim 1 , further comprising:

before performing the comparing and the determining whether to switch:

determining whether the profile in the profile ladder is a highest profile, wherein profiles in the profile ladder are associated with different bitrates; and

waiting to perform the comparing and the determining whether to switch until the profile being used to request the video is not the highest profile.

12. The method of claim 1 , wherein comparing the first performance of the first protocol and the second performance of the second protocol comprises:

determining whether a segment of video is downloaded successfully;

if the segment is not downloaded successfully, determining whether a number of failures meets a threshold, wherein the number of failures is based on a number of segments that have not been downloaded successfully in the playback session; and

when the number of failures meets a threshold, switching from the first protocol to the second protocol.

13. The method of claim 1 , wherein comparing the first performance of the first protocol and the second performance of the second protocol comprises:

determining whether the available bandwidth meets a threshold; and

when the available bandwidth meets the threshold, switching from the first protocol to the second protocol.

14. The method of claim 1 , further comprising:

determining a playback condition for the video; and

determining whether to switch from a first profile in the plurality of profiles to a second profile in the plurality of profiles based on the playback condition.

15. The method of claim 14 , further comprising:

switching from the first protocol to the second protocol; and

switching from the first profile to the second profile.

16. A non-transitory computer-readable storage medium containing instructions, that when executed, control a computer system to be operable for:

determining a plurality of profiles of a profile ladder and a plurality of protocols, wherein profiles in the plurality of profiles are associated with a plurality of bitrate levels, and wherein a first protocol defines a first specification of how a video is sent using the plurality of profiles and a second protocol defines a second specification of how the video is sent using the plurality of profiles;

sending a set of requests for a set of segments of a video at a first profile from the plurality of profiles, wherein a first protocol is specified to be used to receive the set of segments of the video based on the set of requests;

comparing a first performance of the first protocol based on the set of requests for the video and a second performance of a second protocol, wherein the plurality of profiles, the first protocol, and the second protocol are available for selection in a playback session for the video; and

determining whether to switch from using the first protocol to the second protocol in the playback session based on the comparing and whether to switch profiles in the plurality of profiles based on respective bitrates in the plurality of bitrate levels and an available bandwidth in the playback session, wherein the second protocol is specified to be used for a request for a segment of the video when switching to the second protocol and a second profile is specified for a request for a segment of video when switching profiles.

17. A method comprising:

receiving, by a computing device, a request for a video that is encoded in a plurality of profiles of a profile ladder, wherein the plurality of profiles are associated with different levels of a bitrate;

calculating, by the computing device, a performance metric for a plurality of protocols, wherein the plurality of protocols can be switched when sending a set of segments of the video using the plurality of profiles in a request for a segment of the video, and wherein a level from a plurality of levels for a profile is selected for the set of segments;

comparing, by the computing device, the performance metric for the plurality of protocols to predict a protocol in the plurality of protocols to use before a playback starts for the video in a playback session; and

outputting, by the computing device, information for the protocol as a setting for the playback session, wherein video for the playback session is able to be sent using the protocol, wherein profiles in the plurality of profiles can be switched in a request for a segment of video based on respective bitrates in the plurality levels and an available bandwidth in the playback session.

18. The method of claim 17 , wherein calculating the performance metric for a plurality of protocols comprises:

calculating a first performance metric for a first protocol; and

calculating a second performance metric for a second protocol, wherein the first performance metric and the second performance metric are calculated using historical data from playback sessions associated with a client device that requested the video.

19. The method of claim 17 , wherein calculating the performance metric for a plurality of protocols comprises:

using a function that compensates for a first protocol being selected less than a second protocol in the calculating of the performance metric.

20. The method of claim 17 , wherein comparing the performance metric for the plurality of protocols comprises:

determining a difference between a first performance metric for a first protocol and a second performance metric for a second protocol; and

when the difference meets a threshold, selecting one of the plurality of protocols with a highest performance metric.

21. The method of claim 20 , wherein when the difference does not meet a threshold, randomly selecting the protocol from the plurality of protocols.

22. The method of claim 17 , wherein the information for the protocol comprises a ranking of the plurality of protocols.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2020
From: DAI, TONGYU; XIE, LAN; ZHANG, WENHAO; FU, DELIANG; LI, CHAO; SHE, QIANG; GUI, YUTING; LIU, YICHENG; ZHOU, YANPING; XU, XIZHI
To: HULU, LLC
Reel/Frame 054597/0618 →
Continuity (1)
Related Publication 20220182685A1 · Jun 9, 2022