IP Library Granted Patent US 9,838,455
Granted Patent B2
US 9,838,455 · App. 14/491,950 · Granted Dec 5, 2017

Fast encoding of live streaming media content

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 9,838,455
App. No.
14/491,950
Granted
Dec 5, 2017
Kind
B2
Abstract

Techniques and mechanisms described herein facilitate the management of encoders for live media content streams. A media content system may employ potentially many encoders to encode potentially many live media content streams. When supporting many live media content streams, there may be some channels that are not being viewed by anyone at a particular time. In some such situations, an encoder encoding a live media content stream that is not being viewed may be disabled. Then, live media content associated with the live media content stream may be stored in a buffer and updated as new live media content is received. When a user transmits a request to view a channel for which the encoder has been disabled, an encoder for the requested channel may be enabled. The buffered data may be used to quickly initialize the encoder.

Claims (34)

1. A method comprising:

receiving from a client device a request to access a live streaming media channel provided based on live streaming media channel input data, the live streaming media channel being in a deactivated state in which the live streaming media channel input data is not being encoded for transmission to client devices, the live streaming media channel being associated with a live streaming media channel buffer storing an interval of the live streaming media channel input data received while the live streaming media channel was in the deactivated state;

initiating a virtual encoder for encoding the live streaming media channel, the virtual encoder configured to encode the live streaming media channel input data including the buffered live streaming media channel input data to create live streaming media channel encoded data for transmission to client devices, the live streaming media channel encoded data being divided into a plurality of segments each having an associated segment length, the interval of live streaming media channel data stored in the buffer while the live streaming media channel is in a deactivated state being longer than the segment length; and

transmitting the live streaming media channel encoded data to the client device.

2. The method recited in claim 1 , wherein the virtual encoder is implemented as a non-static resource on a virtual machine, the non-static resource capable of being activated and deactivated upon request.

3. The method recited in claim 1 , the live streaming media channel input data including at least one random access point, the virtual encoder creating a segment of live streaming media channel encoded data starting with the random access point and having a length corresponding with the segment length.

4. The method recited in claim 1 , wherein the virtual encoder encodes the live streaming media channel input data faster than real-time.

5. The method recited in claim 1 , wherein a plurality of virtual encoders are initiated for encoding the live streaming media channel, each virtual encoder encoding a respective portion of the interval of live streaming media channel data encoded in the live streaming cyclic media channel buffer.

6. The method recited in claim 1 , the method further comprising:

generating channel description information characterizing the live streaming media channel encoded data; and

transmitting the channel description information to the client device.

7. The method recited in claim 6 , wherein the channel description information comprises a Hypertext Transfer Protocol (HTTP) Live Streaming (HLS) manifest file.

8. The method recited in claim 7 , wherein the HLS manifest file is a file selected from the group consisting of: an HLS m3u8 file, a Dynamic Adaptive Streaming over HTTP (DASH) Media Presentation Description (MPD) file, and a SmoothStreaming manifest file.

9. The method recited in claim 1 , the method further comprising:

transmitting an encoding instruction designating one or more encoding parameters to the virtual encoder.

10. The method recited in claim 9 , wherein the encoding parameter is a parameter selected from the group consisting of: a bit rate, an encoding format, and an encoding quality.

11. The method recited in claim 1 , the method further comprising:

deactivating the live streaming media channel buffer.

12. The method recited in claim 11 , wherein a live streaming media channel buffer is deactivated when the virtual encoder has encoded the data stored in the buffer.

13. The method recited in claim 1 , wherein the live streaming media channel is placed in the deactivated state when it is determined that the live streaming media channel is not being accessed by any client device.

14. The method recited in claim 13 , wherein the live streaming media channel is placed in the deactivated state when it is further determined that an actual or predicted usage criterion associated with the live streaming media channel meets a designated deactivation threshold.

15. The method recited in claim 1 , wherein the request is received at a media system configured to provide access to a plurality of on-demand media channels to a plurality of remote computing devices, the plurality of on-demand media channels including the live streaming media channel, the plurality of remote computing devices including the client device.

16. A system comprising:

a communications interface operable to receive from a client device a request to access a live streaming media channel provided based on live streaming media channel input data, the live streaming media channel being in a deactivated state in which the live streaming media channel input data is not being encoded for transmission to client devices, the live streaming media channel being associated with a live streaming media channel buffer storing an interval of the live streaming media channel input data received while the live streaming media channel was in the deactivated state; and

a processor operable to:

initiate a virtual encoder for encoding the live streaming media channel, the virtual encoder configured to encode the live streaming media channel input data including the buffered live streaming media channel input data to create live streaming media channel encoded data for transmission to client devices, the live streaming media channel encoded data being divided into a plurality of segments each having an associated segment length, the interval of live streaming media channel data stored in the buffer while the live streaming media channel is in a deactivated state being longer than the segment length, and

provide the encoded live streaming media channel for access by the client device.

17. The system recited in claim 16 , wherein the virtual encoder is implemented as a non-static resource on a virtual machine, the non-static resource capable of being activated and deactivated upon request.

18. The system recited in claim 16 , the live streaming media channel input data including at least one random access point, the virtual encoder creating a segment of live streaming media channel encoded data starting with the random access point and having a length corresponding with the segment length.

19. The system recited in claim 16 , wherein the virtual encoder encodes the live streaming media channel input data faster than real-time.

20. One or more non-transitory computer readable media having instructions stored thereon for performing a method, the method comprising:

receiving from a client device a request to access a live streaming media channel provided based on live streaming media channel input data, the live streaming media channel being in a deactivated state in which the live streaming media channel input data is not being encoded for transmission to client devices, the live streaming media channel being associated with a live streaming media channel buffer storing an interval of the live streaming media channel input data received while the live streaming media channel was in the deactivated state;

initiating a virtual encoder for encoding the live streaming media channel, the virtual encoder configured to encode the live streaming media channel input data including the buffered live streaming media channel input data to create live streaming media channel encoded data for transmission to client devices, the live streaming media channel encoded data being divided into a plurality of segments each having an associated segment length, the interval of live streaming media channel data stored in the buffer while the live streaming media channel is in a deactivated state being longer than the segment length; and

transmitting the live streaming media channel encoded data to the client device.

Assignments (8)
CHANGE OF NAME Recorded Mar 31, 2026
From: ADEIA MEDIA HOLDINGS LLC
To: ADEIA MEDIA HOLDINGS INC.
Reel/Frame 075304/0012 →
CHANGE OF NAME Recorded Oct 1, 2024
From: TIVO CORPORATION
To: TIVO LLC
Reel/Frame 069083/0260 →
CHANGE OF NAME Recorded Oct 1, 2024
From: TIVO LLC
To: ADEIA MEDIA HOLDINGS LLC
Reel/Frame 069083/0332 →
SECURITY INTEREST Recorded May 19, 2023
From: ADEIA GUIDES INC.; ADEIA MEDIA HOLDINGS LLC; ADEIA MEDIA SOLUTIONS INC.; ADEIA SEMICONDUCTOR BONDING TECHNOLOGIES INC.; ADEIA SEMICONDUCTOR SOLUTIONS LLC; ADEIA SEMICONDUCTOR TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 063707/0884 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 1, 2021
From: MOBITV, INC.; MOBITV SERVICES, INC.
To: TIVO CORPORATION
Reel/Frame 056444/0076 →
SECURITY INTEREST Recorded Aug 10, 2018
From: MOBITV, INC.
To: ALLY COMMERICAL FINANCE LLC
Reel/Frame 046761/0718 →
SECURITY INTEREST Recorded Feb 15, 2017
From: MOBITV, INC.
To: ALLY BANK
Reel/Frame 041718/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 18, 2014
From: EINARSSON, TORBJORN
To: MOBITV, INC.
Reel/Frame 034552/0959 →