IP Library Granted Patent US 11,134,115
Granted Patent B2
US 11,134,115 · App. 16/926,207 · Granted Sep 28, 2021

Systems and methods for frame duplication and frame extension in live video encoding and streaming

Inventors: Yuri Bulava (Tomsk, RU); Pavel Potapov (Tomsk, RU)
Assignee: DIVX, LLC
H04L65/607H04L65/601H04L65/605H04L67/02
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,134,115
App. No.
16/926,207
Granted
Sep 28, 2021
Kind
B2
Abstract

Embodiments of the invention provide for live encoding systems that can replicate a current encoded frame instead of re-encoding said current frame, and then adjust the replicated frame to different bitrates, resolutions, and/or contexts as necessary for the several different adaptive bitrate streams. In addition, various embodiments of the invention can extend a duration of a current frame being repackaged and/or re-encoded. Utilizing these and other techniques, live encoding systems in accordance with embodiments of the invention can more efficiently handle gaps in received data, slower feeding of data, and/or heavy loads on server hardware.

Claims (26)

1. A method of encoding an input stream into a plurality of adaptive bitrate streams using a live encoding system, the method comprising:

receiving an input stream using a live encoding system; and

encoding a given segment of the input stream into a plurality of adaptive bitrate segments using the live encoding system, wherein encoding the given segment of the input stream into the plurality of adaptive bitrate segments comprises:

assessing server load level using the live encoding system by determining an arrival time between segments of the input stream by comparing time stamp differences between the previous segment and the given segment to a clock implementation on the live encoding system; and

extending at least one frame from the given segment of the input stream by increasing a time duration of the at least one frame and using the extended at least one frame from the segment of the input stream in at least one of the plurality of adaptive bitrate segments when the arrival time between the two segments of the input stream exceeds a threshold.

2. The method of claim 1 further comprising streaming the encoded plurality of adaptive bitrate segments to a plurality of streaming clients over at least one network.

3. The method of claim 1 further comprising assessing server load level using the live encoding system by calculating an amount of data being received from the input stream using the live encoding system, wherein the extending is performed when the assessed server load level exceeds a threshold, wherein the threshold is a particular quantity of data received over a specified amount of time.

4. The method of claim 1 , wherein the plurality of adaptive bitrate segments are encoded into different maximum bitrates.

5. The method of claim 1 , wherein the input stream is a live stream.

6. The method of claim 5 , wherein the live stream comprises media selected from the group of audio tracks, video tracks, subtitle tracks, and multimedia tracks.

7. The method of claim 1 further comprising assessing server load level using the live encoding system by calculating an amount of load on the live encoding system using the live encoding system, wherein the extending is performed when the assessed server load level exceeds a threshold, wherein the threshold is a particular amount of computational work that the live encoding system is performing.

8. The method of claim 1 , wherein the input stream has a particular encoding, and wherein the extended at least one frame is encoded to have the same particular encoding.

9. A live encoding system, the live encoding system comprising:

at least one processing unit;

a memory storing a live encoding application comprising computer instructions, wherein the live encoding application instructs the at least one processing unit to:

receive an input stream; and

encode a given segment of the input stream into a plurality of adaptive bitrate segments, wherein the instructions to encode the given segment of the input stream into the plurality of adaptive bitrate segments further comprise instructions to:

assess server load level using the live encoding system by determining an arrival time between segments of the input stream by comparing time stamp differences between the previous segment and the given segment to a clock implementation on the live encoding system; and

extend at least one frame from the given segment of the input stream by increasing a time duration of the at least one frame and using the extended at least one frame from the segment of the input stream in at least one of the plurality of adaptive bitrate segments when the arrival time between the two segments of the input stream exceeds a threshold.

10. The live encoding system of claim 9 , wherein the live encoding application further includes instructions to stream the encoded plurality of adaptive bitrate segments to a plurality of streaming clients over at least one network.

11. The live encoding system of claim 9 , wherein the live encoding application further includes instructions to assess server load level by calculating an amount of data being received from the input stream, wherein the extending is performed when the assessed server load level exceeds a threshold, wherein the threshold is a particular quantity of data received over a specified amount of time.

12. The live encoding system of claim 9 , wherein the plurality of adaptive bitrate segments are encoded into different maximum bitrates.

13. The live encoding system of claim 9 , wherein the input stream is a live stream.

14. The live encoding system of claim 13 , wherein the live stream comprises media selected from the group of audio tracks, video tracks, subtitle tracks, and multimedia tracks.

15. The live encoding system of claim 9 , wherein the live encoding application further includes instructions to assess server load level by calculating an amount of load on the live encoding system, wherein the extending is performed when the assessed server load level exceeds a threshold, wherein the threshold is a particular amount of computational work that the live encoding system is performing.

16. The live encoding system of claim 9 , wherein the input stream has a particular encoding, and wherein the extended at least one frame is encoded to have the same particular encoding.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 5, 2021
From: BULAVA, YURI; POTAPOV, PAVEL
To: SONIC IP, INC.
Reel/Frame 055828/0739 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 5, 2021
From: SONIC IP, INC.
To: DIVX CF HOLDINGS LLC
Reel/Frame 055828/0748 →
CHANGE OF NAME Recorded Apr 5, 2021
From: DIVX CF HOLDINGS LLC
To: DIVX, LLC
Reel/Frame 055828/0770 →
Continuity (3)
Continuation 15055467 · Feb 26, 2016
Provisional Application 62126393 · Feb 27, 2015
Related Publication 20200344284A1 · Oct 29, 2020