IP Library Granted Patent US 10,476,943
Granted Patent B2
US 10,476,943 · App. 15/395,764 · Granted Nov 12, 2019

Customizing manifest file for enhancing media streaming

Inventors: Minchuan Chen (Redmond, WA); Amit Puntambekar (Fremont, CA); Michael Hamilton Coward (Menlo Park, CA)
Assignee: Facebook, Inc.
H04L67/10H04L65/4084H04L65/602H04L65/607H04L65/608H04L65/80
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 10,476,943
App. No.
15/395,764
Granted
Nov 12, 2019
Kind
B2
Abstract

An online system more efficiently streams multimedia content over the Internet for play back on client devices with varying computing power and network bandwidths by generating enhanced manifest files that more efficiently identify suitable media representations of the multimedia content. Each media representation has multiple media segments according to predefined byte ranges and a manifest file, which identifies location of the media file, bitrates, resolution, byte range, total duration, and other metadata. The online system customizes a manifest file for a user based on various factors including device capacity, network connectivity type and geolocation of the user. The online system also generates manifest fetch commands, which more efficiently fetch media segments for streaming. In response to changes of streaming server and media file (e.g., increased popularity), the online system dynamically updates corresponding manifest files.

Claims (68)

1. A computer-implemented method, comprising:

receiving, from a user of an online system, a request for streaming media content of a media file;

encoding, by the online system, the media file into one or more media representations of the media content, each of the one or more media representations of the media content describing a streaming quality of the media content;

generating a manifest file for each of the one or more media representations of the media content, each manifest file comprising information describing a location of a media representation of the one or more media representations of the media content, and a plurality of media segments for the media representation;

analyzing a plurality of user features describing the user and conditions associated with streaming the media content to the user, the plurality of user features including a history of streaming services received by the user, the history of streaming services identifying a quality of media representation preferred by the user;

generating a customized manifest file for the media file for the user based on the analysis of the user features and conditions associated with streaming the media content to the user, the customized manifest file comprising information describing a location of a media representation of the one or more media representations having the quality of media representation preferred by the user; and

providing the customized manifest file to user for streaming the media content of the media file.

2. The method of claim 1 , wherein the location of the media representation of the media content includes a universal resource locator (URL) of the media content represented by the media representation provided by a content provider.

3. The method of claim 1 , further comprising:

segmenting each of the one or more media representations of the media content into a plurality of media segments according to a predefined byte offset within the media representation of the media content.

4. The method of claim 1 , wherein analyzing the plurality of user features describing the user and conditions associated with streaming the media content to the user comprises:

extracting the plurality of user features describing the user and conditions associated with streaming the media content to the user; and

applying a trained model to the extracted the plurality of user features and conditions associated with streaming the media content to the user.

5. The method of claim 4 , further comprising:

generating a prediction identifying a media representation of the one or more media representations of the media content that is likely to be suitable for streaming given the conditions associated with streaming the media content to the user; and

selecting the media representation of the one or more media representations of the media content for the user based on the generated prediction.

6. The method of claim 5 , further comprising:

segmenting the selected media representation into a plurality of media segments according to a predefined byte offset within the selected media representation; and

generating a manifest file for the selected media representation;

providing the generated manifest file for the selected media representation to the user.

7. The method of claim 4 , wherein the trained model is trained on a corpus of training data using one or more machine learning schemes, the corpus of the training data being generated from a plurality of other users of the online system for receiving media streaming services provided by the online system.

8. The method of claim 1 , wherein the conditions associated with streaming the media content to the user comprise at least one of the following:

network bandwidth of a client device for streaming the media content to the user;

computing power of the client device for streaming the media content to the user;

network connectivity type of the client device;

type of the client device;

resolution of a display of the client device; and

geolocation of the client device.

9. The method of claim 1 , wherein the plurality of user features describing the user comprise at least one of the following:

geolocation of the user;

frequency of requests for media streaming services from the user;

history of streaming services received by the user, the history of the streaming services identifying quality of media representation in each received streaming service by the user; and

user preference for types of media content for streaming.

10. The method of claim 1 , wherein the one or more media representations of the media content are supported by dynamic adaptive streaming over HTTP (DASH) streaming protocol.

11. A non-transitory computer readable storage medium having instructions encoded thereon that, when executed by a processor, cause the processor to perform the steps including:

receiving, from a user of an online system, a request for streaming media content of a media file;

encoding, by the online system, the media file into one or more media representations of the media content, each of the one or more media representations of the media content describing a streaming quality of the media content;

generating a manifest file for each of the one or more media representations of the media content, each manifest file comprising information describing a location of a media representation of the one or more media representations of the media content, and a plurality of media segments for the media representation;

analyzing a plurality of user features describing the user and conditions associated with streaming the media content to the user, the plurality of user features including a history of streaming services received by the user, the history of streaming services identifying a quality of media representation preferred by the user;

generating a customized manifest file for the media file for the user based on the analysis of the user features and conditions associated with streaming the media content to the user, the customized manifest file comprising information describing a location of a media representation of the one or more media representations having the quality of media representation preferred by the user; and

providing the customized manifest file to user for streaming the media content of the media file.

12. The non-transitory computer readable storage medium of claim 11 , wherein the location of the media representation of the media content includes a universal resource locator (URL) of the media content represented by the media representation provided by a content provider.

13. The non-transitory computer readable storage medium of claim 11 , further comprising:

segmenting each of the one or more media representations of the media content into a plurality of media segments according to a predefined byte offset within the media representation of the media content.

14. The non-transitory computer readable storage medium of claim 11 , wherein analyzing the plurality of user features describing the user and conditions associated with streaming the media content to the user comprises:

extracting the plurality of user features describing the user and conditions associated with streaming the media content to the user; and

applying a trained model to the extracted the plurality of user features and conditions associated with streaming the media content to the user.

15. The non-transitory computer readable storage medium of claim 14 , further comprising:

generating a prediction identifying a media representation of the one or more media representations of the media content that is likely to be suitable for streaming given the conditions for streaming the media content to the user; and

selecting the media representation of the one or more media representations of the media content for the user based on the generated prediction.

16. The non-transitory computer readable storage medium of claim 15 , further comprising:

segmenting the selected media representation into a plurality of media segments according to a predefined byte offset within the selected media representation; and

generating a manifest file for the selected media representation;

providing the generated manifest file for the selected media representation to the user.

17. The non-transitory computer readable storage medium of claim 14 , wherein the trained model is trained on a corpus of training data using one or more machine learning schemes, the corpus of the training data being generated from a plurality of other users of the online system for receiving media streaming services provided by the online system.

18. The non-transitory computer readable storage medium of claim 11 , wherein the conditions associated with streaming the media content to the user comprise at least one of the following:

network bandwidth of a client device for streaming the media content to the user;

computing power of the client device for streaming the media content to the user;

network connectivity type of the client device;

type of the client device;

resolution of a display of the client device; and

geolocation of the client device.

19. The non-transitory computer readable storage medium of claim 11 , wherein the plurality of user features describing the user comprise at least one of the following:

geolocation of the user;

frequency of requests for media streaming services from the user;

history of streaming services received by the user, the history of the streaming services identifying quality of media representation in each received streaming service by the user; and

user preference for types of media content for streaming.

20. The non-transitory computer readable storage medium of claim 11 , wherein the one or more media representations of the media content are supported by dynamic adaptive streaming over HTTP (DASH) streaming protocol.

Assignments (2)
CHANGE OF NAME Recorded Nov 18, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058897/0824 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 8, 2017
From: CHEN, MINCHUAN; PUNTAMBEKAR, AMIT; COWARD, MICHAEL HAMILTON
To: FACEBOOK, INC.
Reel/Frame 041206/0422 →
Continuity (1)
Related Publication 20180191587A1 · Jul 5, 2018