IP Library › Granted Patent US 12,200,277
Granted Patent B2
US 12,200,277 · App. 18/402,648 · Granted Jan 14, 2025

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 12,200,277
App. No.
18/402,648
Granted
Jan 14, 2025
Kind
B2
Abstract

In some embodiments, a method sends a set of first requests for a set of first segments of a video in a playback session. A first protocol from a plurality of protocols is specified in at least one of the set of first requests. The set of first segments is received. The method determines whether to switch from using the first protocol to a second protocol in the playback session based on receiving the set of first segments. When switching to the second protocol, the method sends a second request in the playback session, wherein the second request indicates the second protocol is to be used to send a second segment of the video.

Claims (66)

1. A method comprising:

sending a set of first requests for a set of first segments of a video in a playback session, wherein a first protocol from a plurality of protocols is specified in at least one of the set of first requests;

receiving the set of first segments;

determining whether to switch from using the first protocol to a second protocol in the playback session based on receiving the set of first segments; and

when switching to the second protocol, sending a second request in the playback session, wherein the second request indicates the second protocol is to be used to send a second segment of the video.

2. The method of claim 1 , further comprising:

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

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 a client device that sent a request for the video.

5. The method of claim 1 , further comprising:

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

6. The method of claim 1 , further comprising:

comparing a first performance of the first protocol and a second performance of the second protocol, wherein determining whether to switch from using the first protocol to the second protocol is based on the comparing.

7. The method of claim 6 , further comprising:

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

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

8. The method of claim 7 , 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 set of first segments, wherein the second performance metric is calculated after the switching.

9. The method of claim 7 , 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;

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

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

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

determining whether a buffer length meets a threshold; and

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

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

determining whether a profile in a profile ladder is a highest profile, wherein profiles in the profile ladder are associated with different playback characteristics of the video; and

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

12. The method of claim 1 , wherein determining whether to switch from using the first protocol to the second protocol in the playback session 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, determining a switch from the first protocol to the second protocol should be determined.

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

determining an available bandwidth;

determining whether the available bandwidth meets a threshold; and

when the available bandwidth meets the threshold, determining a switch from the first protocol to the second protocol should be determined.

14. The method of claim 1 , wherein:

the set of first requests for the set of first segments is for a first profile from a plurality of profiles,

profiles in the plurality of profiles are associated with a plurality of bitrate levels,

the first protocol defines a first specification of how the video is sent using the plurality of profiles, and

the second protocol defines a second specification of how the video is sent using the plurality of profiles.

15. The method of claim 14 , further comprising:

when switching to a second profile, sending a third request in the playback session, wherein the third request indicates the second profile is to be used to send a third segment of the video.

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

sending a set of first requests for a set of first segments of a video in a playback session, wherein a first protocol from a plurality of protocols is specified in at least one of the set of first requests;

receiving the set of first segments;

determining whether to switch from using the first protocol to a second protocol in the playback session based on receiving the set of first segments; and

when switching to the second protocol, sending a second request in the playback session, wherein the second request indicates the second protocol is to be used to send a second segment of the video.

17. A method comprising:

receiving a set of first segments of a video in a playback session;

performing a first protocol switch analysis, wherein the first protocol switch analysis causes a switch from a first protocol to a second protocol when conditions using the first protocol to receive the set of first segments indicate the second protocol is predicted to perform better than the first protocol; and

performing a second protocol switch analysis, wherein the second protocol switch analysis switches to the second protocol to determine whether conditions using the second protocol to receive the set of first segments indicate the second protocol is predicted to perform better than the first protocol.

18. The method of claim 17 , wherein performing the first protocol switch analysis 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, determining a switch from the first protocol to the second protocol should be determined.

19. The method of claim 17 , wherein performing the first protocol switch analysis comprises:

determining an available bandwidth;

determining whether the available bandwidth meets a threshold; and

when the available bandwidth meets the threshold, determining a switch from the first protocol to the second protocol should be determined.

20. The method of claim 17 , wherein performing the second protocol switch analysis comprises:

determining whether a buffer length meets a threshold;

when the buffer length meets the threshold, determining whether a profile in a profile ladder is a highest profile, wherein profiles in the profile ladder are associated with different playback characteristics of the video; and

comparing a change when using the second protocol to a threshold;

switching back to the first protocol when the change does not meet the threshold; and

maintaining using the second protocol when the change meets the threshold.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 2, 2024
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 065999/0255 →
Continuity (2)
Continuation 17116711 · Dec 9, 2020
Related Publication 20240137585A1 · Apr 25, 2024
References Cited (43)
US 8125901B2 · Appleby et al. · 2012 [cited by applicant]
US 8443099B2 · Baldwin · 2013 [cited by applicant]
US 9047225B1 · Evans · 2015 [cited by applicant]
US 11019374B2 · Wallendael et al. · 2021 [cited by applicant]
US 20030231586A1 · Chheda · 2003 [cited by applicant]
US 20070022442A1 · Gil et al. · 2007 [cited by applicant]
US 20080288611A1 · Toyomura et al. · 2008 [cited by applicant]
US 20130290492A1 · ElArabawy et al. · 2013 [cited by applicant]
US 20140201382A1 · Shivadas et al. · 2014 [cited by applicant]
US 20140280781A1 · Gregotski · 2014 [cited by applicant]
US 20140330887A1 · Gilberton et al. · 2014 [cited by applicant]
US 20150036740A1 · Yang et al. · 2015 [cited by applicant]
US 20150180924A1 · O'Callaghan · 2015 [cited by applicant]
US 20160044080A1 · duBreuil · 2016 [cited by applicant]
US 20160134677A1 · Mueller et al. · 2016 [cited by applicant]
US 20160295216A1 · Aaron et al. · 2016 [cited by applicant]
US 20170019446A1 · Son et al. · 2017 [cited by applicant]
US 20170353516A1 · Gordon · 2017 [cited by applicant]
US 20180063549A1 · Amer et al. · 2018 [cited by applicant]
US 20180242015A1 · Katsavounidis · 2018 [cited by applicant]
US 20190327510A1 · Kalagi et al. · 2019 [cited by applicant]
US 20200186580A1 · Thomas et al. · 2020 [cited by applicant]
US 20220182685A1 · Dai et al. · 2022 [cited by applicant]
EP 212130694 · 2021 [cited by applicant]
EP 4013060A1 · 2022 [cited by applicant]
IN 202144053201 · 2021 [cited by applicant]
JP 2000509592A · 2000 [cited by applicant]
JP 2007006438A · 2007 [cited by applicant]
JP 2015507857A · 2015 [cited by applicant]
JP 2015106358A · 2015 [cited by applicant]
JP 2017517922A · 2017 [cited by applicant]
JP 2021196166A · 2021 [cited by applicant]
JP 7309825B2 · 2023 [cited by applicant]
KR 1020080031434A · 2008 [cited by applicant]
KR 1020210174259 · 2021 [cited by applicant]
MX a2021015148 · 2021 [cited by applicant]
MX 2021015148 · 2022 [cited by applicant]
WO 2013079598A1 · 2013 [cited by applicant]
WO 2015157362A1 · 2015 [cited by applicant]
European Application Serial No. 21213069.4. Search Report mailed May 13, 2022, 11 pgs. [cited by applicant]
Indian Application Serial No. 202144053201, Office Action mailed Jun. 21, 2022, 7 pgs. [cited by applicant]
Japanese Office Action, Application No. 2021-196166, dated Feb. 7, 2023, English Translation, 5 pages. [cited by applicant]
KR Office Action, Notice of Grounds for Rejection, KR Application No. 10-2021-0174259, issued May 29, 2023, English translation, 7 pages. [cited by applicant]