IP Library Granted Patent US 11,032,596
Granted Patent B2
US 11,032,596 · App. 15/859,009 · Granted Jun 8, 2021

Systems and methods for generating content streams

Inventor: Chenyong Xu (Fremont, CA)
Assignee: Facebook, Inc.
H04N21/2662H04N21/2385H04N21/23439H04N21/2402H04N21/25808H04N21/2668H04N21/4788G06Q50/01
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,032,596
App. No.
15/859,009
Granted
Jun 8, 2021
Kind
B2
Abstract

Systems, methods, and non-transitory computer-readable media can determine a viewing audience for a content producer. A bandwidth distribution for the viewing audience can be determined. One or more quality levels for encoding streams of content items created by the content producer can be determined based at least in part on the bandwidth distribution.

Claims (52)

1. A computer-implemented method comprising:

determining, by a computing system, first bandwidth capabilities of a first viewing audience for a first content producer on a system, wherein the first viewing audience comprises users of the system that are following the first content producer through the system;

constructing, by the computing system, a first bandwidth distribution that plots the first bandwidth capabilities of the first viewing audience for the first content producer;

determining, by the computing system, one or more first quality levels for encoding streams of content items created by the first content producer based at least in part on the first bandwidth distribution, wherein the one or more first quality levels correspond to one or more peaks in the first bandwidth distribution, wherein the one or more peaks include at least a global maximum and one or more local maxima, and wherein a number of streams to be encoded corresponds with a number of peaks in the first bandwidth distribution;

updating, by the computing system, the first bandwidth distribution for the first viewing audience for the first content producer to accommodate changes to the first viewing audience over time;

encoding, by the computing system, at least one stream of at least one content item created by the first content producer based at least in part on the one or more determined first quality levels;

determining, by the computing system, second bandwidth capabilities of a second viewing audience for a second content producer on the system, wherein the second bandwidth capabilities of the second viewing audience are different from the bandwidth capabilities of the viewing audience;

constructing, by the computing system, a second bandwidth distribution that plots the second bandwidth capabilities of the second viewing audience for the second content producer;

determining, by the computing system, one or more second quality levels for encoding streams of content items created by the second content producer; and

encoding, by the computing system, at least one stream of at least one content item created by the second content producer based on the one or more determined second quality levels.

2. The computer-implemented method of claim 1 , wherein the first viewing audience comprises users of the system that accessed at least one content item previously posted by the first content producer.

3. The computer-implemented method of claim 1 , wherein the one or more first quality levels are based on bandwidth capabilities of users corresponding to one or more percentiles in the first bandwidth distribution.

4. The computer-implemented method of claim 1 , wherein the one or more first quality levels are stored for encoding streams of additional content items that are created by the first content producer.

5. The computer-implemented method of claim 1 , the method further comprising:

determining, by the computing system, an updated viewing audience for the first content producer; and

determining, by the computing system, one or more updated quality levels for encoding streams of content items created by the first content producer based at least in part on the updated bandwidth distribution.

6. The computer-implemented method of claim 1 , wherein the bandwidth capabilities of the first viewing audience are determined based at least in part on an amount of data corresponding to a stream of a content item created by the first content producer that was received and a duration of time over which the data was received.

7. The computer-implemented method of claim 1 , wherein the bandwidth capabilities of the first viewing audience are determined based at least in part on a source rate at which a stream of a content item created by the first content producer that was received was encoded.

8. A computing system comprising:

at least one processor; and

a memory storing instructions that, when executed by the at least one processor, cause the computing system to perform:

determining first bandwidth capabilities of a first viewing audience for a first content producer on a system, wherein the viewing audience comprises users of the system that are following the content producer through the system;

constructing a first bandwidth distribution that plots the first bandwidth capabilities of the first viewing audience for the first content producer;

determining one or more first quality levels for encoding streams of content items created by the first content producer based at least in part on the first bandwidth distribution, wherein the one or more first quality levels correspond to one or more peaks in the first bandwidth distribution, wherein the one or more peaks include at least a global maximum and one or more local maxima, and wherein a number of streams to be encoded corresponds with a number of peaks in the first bandwidth distribution;

updating the first bandwidth distribution for the first viewing audience for the first content producer to accommodate changes to the first viewing audience over time;

encoding at least one stream of at least one content item created by the first content producer based at least in part on the one or more determined first quality levels;

determining second bandwidth capabilities of a second viewing audience for a second content producer on the system, wherein the second bandwidth capabilities of the second viewing audience are different from the bandwidth capabilities of the viewing audience;

constructing a second bandwidth distribution that plots the second bandwidth capabilities of the second viewing audience for the second content producer;

determining one or more second quality levels for encoding streams of content items created by the second content producer; and

encoding at least one stream of at least one content item created by the second content producer based on the one or more determined second quality levels.

9. The system of claim 8 , wherein the first viewing audience comprises users of the system that accessed at least one content item previously posted by the first content producer.

10. The system of claim 8 , wherein the one or more first quality levels are determined based on bandwidth capabilities of users corresponding to one or more percentiles in the first bandwidth distribution.

11. The computing system of claim 8 , wherein the one or more first quality levels are stored for encoding streams of additional content items that are created by the first content producer.

12. The computing system of claim 8 , wherein the at least one processor causes the computing system to further perform:

determining an updated viewing audience for the first content producer; and

determining one or more updated quality levels for encoding streams of content items created by the first content producer based at least in part on the updated bandwidth distribution.

13. A non-transitory computer-readable storage medium including instructions that, when executed by at least one processor of a computing system, cause the computing system to perform a method comprising:

determining first bandwidth capabilities of a first viewing audience for a first content producer on a system, wherein the first viewing audience comprises users of the system that are following the first content producer through the system;

constructing a first bandwidth distribution that plots the first bandwidth capabilities of the first viewing audience for the first content producer;

determining one or more first quality levels for encoding streams of content items created by the first content producer based at least in part on the first bandwidth distribution, wherein the one or more first quality levels correspond to one or more peaks in the first bandwidth distribution, wherein the one or more peaks include at least a global maximum and one or more local maxima, and wherein a number of streams to be encoded corresponds with a number of peaks in the first bandwidth distribution;

updating the first bandwidth distribution for the first viewing audience for the first content producer to accommodate changes to the first viewing audience over time;

encoding at least one stream of at least one content item created by the first content producer based at least in part on the one or more determined first quality levels;

determining second bandwidth capabilities of a second viewing audience for a second content producer on the system, wherein the second bandwidth capabilities of the second viewing audience are different from the bandwidth capabilities of the viewing audience;

constructing a second bandwidth distribution that plots the second bandwidth capabilities of the second viewing audience for the second content producer;

determining one or more second quality levels for encoding streams of content items created by the second content producer; and

encoding at least one stream of at least one content item created by the second content producer based on the one or more determined second quality levels.

14. The non-transitory computer-readable storage medium of claim 13 , wherein the first viewing audience comprises users of the system that accessed at least one content item previously posted by the first content producer.

15. The non-transitory computer-readable storage medium of claim 13 , wherein the one or more first quality levels are determined based on bandwidth capabilities of users corresponding to one or more percentiles in the first bandwidth distribution.

16. The non-transitory computer-readable storage medium of claim 13 , wherein the one or more first quality levels are stored for encoding streams of additional content items that are created by the first content producer.

17. The non-transitory computer-readable storage medium of claim 13 , wherein the instructions, when executed by the at least one processor of the computing system, cause the computing system to further perform:

determining an updated viewing audience for the first content producer; and

determining one or more updated quality levels for encoding streams of content items created by the first content producer based at least in part on the updated bandwidth distribution.

Assignments (2)
CHANGE OF NAME Recorded Dec 3, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058301/0690 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 6, 2018
From: XU, CHENYONG
To: FACEBOOK, INC.
Reel/Frame 044848/0901 →
Continuity (1)
Related Publication 20190208245A1 · Jul 4, 2019