IP Library Granted Patent US 12,075,124
Granted Patent B2
US 12,075,124 · App. 17/972,706 · Granted Aug 27, 2024

Systems and methods for real-time adaptive bitrate transcoding and transmission of transcoded media

Inventors: Steven Mayhew (Cupertino, CA); Maciej Dobrzynski (San Jose, CA); Jonathan Oliver (San Jose, CA)
Assignee: Rovi Guides, Inc.
H04N21/4621H04L65/75H04N21/433H04N21/44004H04N21/440236H04N21/2343H04N21/2662H04N21/845
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,075,124
App. No.
17/972,706
Filed
Oct 25, 2022
Granted
Aug 27, 2024
Kind
B2
Art Unit
2424
USPC
709/219
Abstract

Methods and systems are provided for streaming a media asset with an adaptive bitrate transcoder. A server receives, from a client device, a first request for a first portion of the plurality of portions to be transcoded at a first bitrate. The server then starts to transcode the plurality of portions at the requested first bitrate to generate a plurality of corresponding transcoded portions. The server updates a header of a transcoded portion to include: 1) a transcode latency value; and 2) a count value indicating a number of available pre-transcoded portions of the media asset at the time the first request was received. The server then transmits the transcoded portion to the client. The client device then determines a second bitrate based on the transcode latency value included in the header of the transcoded portion corresponding to the first portion.

Claims (54)

1. A method comprising:

receiving, from a client device, a first request for a first portion of a plurality of portions of a media asset to be transcoded at a first bitrate;

in response to receiving the first request, transcoding the first portion of the plurality of portions at the first bitrate;

updating a header of a transcoded portion of a plurality of transcoded portions corresponding to the first portion of the plurality of portions of the media asset to comprise a transcode latency value;

transmitting the transcoded portion corresponding to the first portion of the plurality of portions of the media asset at the first bitrate to the client device; and

receiving, from the client device, a client request for a second portion of the plurality of portions of the media asset to be transcoded at a second bitrate,

wherein the second bitrate is determined based on the transcode latency value included in the header of the transcoded portion corresponding to the first portion,

wherein the second bitrate based on the transcode latency value is determined based on an observed bandwidth,

wherein the observed bandwidth is based on an amount of data contained in the transcoded portion corresponding to the first portion and a final latency value,

wherein the final latency value is based on an analysis of a preliminary latency value and the transcode latency value,

wherein the preliminary latency value is based on an analysis of a second time value and a first time value,

wherein the first time value represents a time at which the first request was transmitted by the client device, and

wherein the second time value represents a time at which the transcoded portion corresponding to the first portion was received by the client device.

2. The method of claim 1 , further comprising:

calculating the transcode latency value by:

determining a third time value representing a time at which the first request was received;

determining a fourth time value representing a time at which transcoding at the first bitrate was started; and

analyzing the fourth time value and the third time value.

3. The method of claim 1 , further comprising:

updating the header of the transcoded portion of the plurality of transcoded portions corresponding to the first portion of the plurality of portions of the media asset to further comprise a count value indicating a number of available pre-transcoded portions of the media asset at a time the first request was received, and

wherein the client request was transmitted at a time determined based on the count value included in the header of the transcoded portion corresponding to the first portion.

4. The method of claim 3 , further comprising:

storing transcoded portions in a chunk buffer prior to transmitting the transcoded portion to the client device; and

wherein the count value indicates a number of transcoded portions of the media asset stored in the chunk buffer.

5. The method of claim 3 , wherein a subset of the plurality of portions comprises a complete segment of the media asset, and

wherein the time determined for transmission of the client request based on the count value is based on whether a first amount of data represented by the count value is greater than a second amount of data comprising a complete transcoded segment at the first bitrate.

6. A system comprising:

input/output circuitry configured to:

receive, from a client device, a first request for a first portion of a plurality of portions of a media asset to be transcoded at a first bitrate; and

control circuitry configured to:

in response to receiving the first request, transcode the first portion of the plurality of portions at the first bitrate;

update a header of a transcoded portion of a plurality of transcoded portions corresponding to the first portion of the plurality of portions of the media asset to comprise a transcode latency value,

wherein the input/output circuitry is further configured to:

transmit the transcoded portion corresponding to the first portion of the plurality of portions of the media asset at the first bitrate to the client device; and

receive, from the client device, a client request for a second portion of the plurality of portions of the media asset to be transcoded at a second bitrate,

wherein the second bitrate is determined based on the transcode latency value included in the header of the transcoded portion corresponding to the first portion,

wherein the second bitrate based on the transcode latency value is determined based on an observed bandwidth,

wherein the observed bandwidth is based on an amount of data contained in the transcoded portion corresponding to the first portion and a final latency value,

wherein the final latency value is based on an analysis of a preliminary latency value and the transcode latency value,

wherein the preliminary latency value is based on an analysis of a second time value and a first time value,

wherein the first time value represents a time at which the first request was transmitted by the client device, and

wherein the second time value represents a time at which the transcoded portion corresponding to the first portion was received by the client device.

7. The system of claim 6 , wherein the control circuitry is further configured to calculate the transcode latency value by:

determining a third time value representing a time at which the first request was received;

determining a fourth time value representing a time at which transcoding at the first bitrate was started; and

analyzing the fourth time value and the third time value.

8. The system of claim 6 , wherein the control circuitry is further configured to:

update the header of the transcoded portion of the plurality of transcoded portions corresponding to the first portion of the plurality of portions of the media asset to further comprise a count value indicating a number of available pre-transcoded portions of the media asset at a time the first request was received, and

wherein the client request was transmitted at a time determined based on the count value included in the header of the transcoded portion corresponding to the first portion.

9. The system of claim 8 , wherein the control circuitry is further configured to:

store transcoded portions in a chunk buffer prior to transmitting the transcoded portion to the client device; and

wherein the count value indicates a number of transcoded portions of the media asset stored in the chunk buffer.

10. The system of claim 8 , wherein a subset of the plurality of portions comprises a complete segment of the media asset, and

wherein the time determined for transmission of the client request based on the count value is based on whether a first amount of data represented by the count value is greater than a second amount of data comprising a complete transcoded segment at the first bitrate.

Assignments (3)
CHANGE OF NAME Recorded Oct 3, 2024
From: ROVI GUIDES, INC.
To: ADEIA GUIDES INC.
Reel/Frame 069106/0164 →
SECURITY INTEREST Recorded May 3, 2023
From: ADEIA GUIDES INC.; ADEIA IMAGING LLC; ADEIA MEDIA HOLDINGS LLC; ADEIA MEDIA SOLUTIONS INC.; ADEIA SEMICONDUCTOR ADVANCED TECHNOLOGIES INC.; ADEIA SEMICONDUCTOR BONDING TECHNOLOGIES INC.; ADEIA SEMICONDUCTOR INC.; ADEIA SEMICONDUCTOR SOLUTIONS LLC; ADEIA SEMICONDUCTOR TECHNOLOGIES LLC; ADEIA SOLUTIONS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 063529/0272 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 25, 2022
From: MAYHEW, STEVEN; DOBRZYNSKI, MACIEJ; OLIVER, JONATHAN
To: ROVI GUIDES, INC.
Reel/Frame 061525/0644 →
Continuity (3)
Continuation 17408110 · Aug 20, 2021
Continuation 17253721
Related Publication 20230188790A1 · Jun 15, 2023
Cited By (1)
US 12,713,077