IP Library Granted Patent US 11,470,139
Granted Patent B2
US 11,470,139 · App. 16/909,795 · Granted Oct 11, 2022

Video encoding for low-concurrency linear channels

Inventor: Alexander Giladi (Denver, CO)
Assignee: Comcast Cable Communications, LLC
H04L65/70
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,470,139
App. No.
16/909,795
Granted
Oct 11, 2022
Kind
B2
Abstract

Systems, methods, and devices relating to video encoding for low-concurrency video channels are described herein. A video processing system may receive a manifest request for an encoded video stream associated with a selected channel. Based on the manifest request, the video processing system may request for a real-time linear (RTL) encoder to be started to encode the input compressed video stream for the channel in real-time. Also based on the manifest request, the video processing system may assign a faster-than-real-time (FTRT) encoder from a pool of already-running FTRT encoders to encode the video stream in real-time until the RTL encoder is fully started. The FTRT encoder may encode at a lower quality level to enable expedited real-time encoding. Based on the RTL encoder being fully started, the video processing system may switch the encoding from the FTRT encoder to the RTL encoder. The FTRT encoder may be returned to the FTRT encoder pool.

Claims (48)

1. A method comprising:

receiving, from a video output device, a request for an encoded video stream;

requesting, based on receiving the request, a real-time linear (RTL) encoder that is not started to be started;

assigning, from faster-than-real-time (FTRT) encoders that are already started, an FTRT encoder to encode at least part of the video stream;

causing the assigned FTRT encoder to encode at least a first portion of the video stream for delivery to the video output device;

based on determining that the requested RTL encoder has been started, causing the FTRT encoder to stop encoding the at least the first portion of the video stream and causing the requested RTL encoder to encode at least a second portion of the video stream for delivery to the video output device.

2. The method of claim 1 , wherein the assigning the FTRT encoder to encode at least part of the video stream comprises:

selecting the FTRT encoder from a pool of one or more FTRT encoders that are already started.

3. The method of claim 2 , further comprising:

assigning, based on the causing the FTRT encoder to stop encoding the video stream, the FTRT encoder back to the pool of one or more FTRT encoders that are already started.

4. The method of claim 1 , wherein the at least part of the video stream to be encoded by the FTRT encoder comprises buffered compressed video received from a contribution video source.

5. The method of claim 1 , wherein the video stream is associated with a channel selected by a viewer.

6. The method of claim 1 , wherein the causing the assigned FTRT encoder to encode at least a first portion of the video stream comprises encoding the at least the first portion of the video stream in faster-than-real time.

7. The method of claim 1 , wherein the causing the assigned FTRT encoder to encode at least a first portion of the video stream comprises transitioning from encoding in faster-than-real time to encoding in real time.

8. The method of claim 1 , wherein:

the causing the assigned FTRT encoder to encode at least a first portion of the video stream comprises encoding at a first bitrate, and the causing the requested RTL encoder to encode at least a second portion of the video stream comprises encoding at a second bitrate greater than the first bitrate.

9. The method of claim 1 , wherein:

the causing the assigned FTRT encoder to encode at least a first portion of the video stream comprises encoding at a first video resolution, and the causing the requested RTL encoder to encode at least a second portion of the video stream comprises encoding at a second video resolution greater than the first video resolution.

10. The method of claim 1 , wherein the determining that the RTL encoder has been started is based on receiving an application programming interface (API) call from the RTL encoder.

11. A device comprising:

one or more processors; and

memory storing instructions that, when executed by the one or more processors, cause the device to:

receive, from a video output device, a request for an encoded video stream;

request, based on receiving the request, for a real-time linear (RTL) encoder that is not started to be started;

assign, from faster-than-real-time (FTRT) encoders that are already started, an FTRT encoder to encode at least part of the video stream;

cause the assigned FTRT encoder to encode at least a first portion of the video stream for delivery to the video output device;

based on determining that the requested RTL encoder has been started, cause the FTRT encoder to stop encoding the at least the first portion of the video stream and cause the requested RTL encoder to encode at least a second portion of the video stream for delivery to the video output device.

12. The device of claim 11 , wherein the instructions, when executed, cause the device to assign the FTRT encoder to encode at least part of the video stream by:

selecting the FTRT encoder from a pool of one or more FTRT encoders that are already started.

13. The device of claim 12 , wherein the instructions, when executed, further cause the device to:

assign, based on the causing the FTRT encoder to stop encoding the video stream, the FTRT encoder back to the pool of one or more FTRT encoders that are already started.

14. The device of claim 11 , wherein the at least part of the video stream to be encoded by the FTRT encoder comprises buffered compressed video received from a contribution video source.

15. The device of claim 11 , wherein the causing the assigned FTRT encoder to encode at least a first portion of the video stream comprises encoding the at least the first portion of the video stream in faster-than-real time.

16. The device of claim 11 , wherein the instructions, when executed, cause the device to cause the assigned FTRT encoder to encode at least a first portion of the video stream by transitioning from encoding in faster-than-real time to encoding in real time.

17. A non-transitory computer-readable medium storing instructions that, when executed by one or more processors, cause:

receiving, from a video output device, a request for an encoded video stream;

requesting, based on receiving the request, a real-time linear (RTL) encoder that is not started to be started;

assigning, from faster-than-real-time (FTRT) encoders that are already started, an FTRT encoder to encode at least part of the video stream;

causing the assigned FTRT encoder to encode at least a first portion of the video stream for delivery to the video output device;

based on determining that the requested RTL encoder has been started, causing the FTRT encoder to stop encoding the at least the first portion of the video stream and causing the requested RTL encoder to encode at least a second portion of the video stream for delivery to the video output device.

18. The non-transitory computer-readable medium of claim 17 , wherein the instructions, when executed, cause assigning the FTRT encoder to encode at least part of the video stream by:

selecting the FTRT encoder from a pool of one or more FTRT encoders that are already started.

19. The non-transitory computer-readable medium of claim 18 , wherein the instructions, when executed, further cause:

assigning the FTRT encoder back to the pool of one or more FTRT encoders that are already started.

20. The non-transitory computer-readable medium of claim 17 , wherein the at least part of the video stream to be encoded by the FTRT encoder comprises buffered compressed video received from a contribution video source.

21. The method of claim 1 , wherein the determining that the RTL encoder has been started is while the FTRT encoder is encoding the at least first portion of the video stream.

22. The method of claim 1 , wherein the FTRT encoder is different from the RTL encoder.

23. The method of claim 22 , wherein the causing the requested RTL encoder to encode at least the second portion of the video stream for delivery to the video output device comprises switching encoding from the FTRT encoder to the RTL encoder.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 12, 2020
From: GILADI, ALEXANDER
To: COMCAST CABLE COMMUNICATIONS, LLC
Reel/Frame 053478/0265 →
Continuity (1)
Related Publication 20210400102A1 · Dec 23, 2021