IP Library Granted Patent US 10,165,029
Granted Patent B2
US 10,165,029 · App. 14/263,494 · Granted Dec 25, 2018

Caching and streaming of digital media content subsets

Inventor: Stephen Basile (San Francisco, CA)
Assignee: Fastly Inc.
H04L65/60H04L65/4084H04L65/605H04L67/2842H04N21/2343H04N21/23106H04W4/18
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,165,029
App. No.
14/263,494
Granted
Dec 25, 2018
Kind
B2
Abstract

Systems, methods, apparatuses, and software for provide a digital media caching environment are provided herein. In one example, a method of operating a content node to provide a digital media caching environment is provided. The method includes receiving a request transferred by an end user device for digital media content. Responsive to the request, the method includes retrieving at least a header portion and a content subset of the digital media content from an origin server and transmuxing the content subset of the digital media content from an origin format into a stream format suitable for streaming to the end user device, and streaming the content subset in the stream format for delivery to the end user device.

Claims (36)

1. A method of operating a content node to provide a digital media caching environment, the method comprising:

receiving, by the content node, a request transferred by an end user device for digital media content;

retrieving, by the content node, a header portion for the digital media content from an origin server;

caching, by the content node, the header portion for the digital media content;

processing, by the content node, the header portion to determine a content subset of the digital media content that is associated with the request, wherein the content subset is a byte range corresponding to the request;

retrieving, by the content node, the content subset from the origin server and transmuxing the content subset of the digital media content into a stream format suitable for rendering by the end user device;

caching, by the content node, the retrieved content in its transmuxed format;

receiving a subsequent request for digital media content, wherein the subsequent request comprises a request for content in a second stream format;

processing, by the content node, the cached header portion to determine a subsequent content subset of the digital media content that is associated with the subsequent request for digital media content, wherein the second content subset comprises: a byte range corresponding to a portion of the cached transmuxed content, and non-cached content that precedes the cached transmuxed content;

re-transmuxing the portion of the cached transmuxed content corresponding to the subsequent request into the second stream format;

retrieving, by the content node, the non-cached content from the origin server, and transmuxing the non-cached content into the second stream format; and

streaming, by the content node, the re-transmuxed content corresponding to the second content subset in the second stream format, and the non-cached content retrieved from the origin server in the second stream format.

2. The method of claim 1 , wherein the header portion comprises a header of a file of the digital media content, and wherein the content subset comprises a byte range of media content included in the file of the digital media content.

3. The method of claim 1 , further comprising:

issuing at least a first Hypertext Transfer Protocol (HTTP) range request for delivery to the origin server to retrieve the header portion and issuing at least a second HTTP range request for delivery to the origin server to retrieve the content subset.

4. The method of claim 1 , wherein the digital media content comprises a video, a live broadcast, or an audio file.

5. The method of claim 1 , wherein the content subset of the digital media content comprises a timewise portion of the digital media content.

6. A content node comprising:

one or more non-transitory computer readable storage media;

a processing system communicatively coupled to the one or more non-transitory computer readable media;

program instructions stored on the one or more non-transitory computer readable storage media that, when read and executed by the processing system, direct the processing system to:

retrieve, by the content node, a request transferred by an end user device for digital media content;

retrieve, by the content node, a header portion of the digital media content from an origin server;

cache, by the content node, the header portion for the digital media content;

process, by the content node, the header portion to determine a content subset of the digital media content that is associated with the request, wherein the content subset is a byte range corresponding to the request;

retrieve, by the content node, the content subset of the digital media content and transmux the content subset of the digital media content into a stream format suitable for rendering by the end user device;

cache, by the content node, the retrieved content in its transmuxed format;

retrieve a subsequent request for digital media content, wherein the subsequent request comprises a request for content in a second stream format;

process, by the content node, the cached header portion to determine a subsequent content subset of the digital media content that is associated with the subsequent request for digital media content, wherein the second content subset comprises: a byte range corresponding to a portion of the cached transmuxed content, and non-cached content that precedes the cached transmuxed content;

re-transmux the portion of the cached transmuxed content corresponding to the subsequent request into the second stream format;

retrieve, by the content node, the non-cached content from the origin server, and transmux the non-cached content into the second stream format; and

stream, by the content node, the re-transmuxed content corresponding to the second content subset in the second stream format, and the non-cached content retrieved from the origin server in the second stream format.

7. The content node of claim 6 , wherein the header portion comprises a header of a file of the digital media content, and wherein the content subset comprises a byte range of media content included in the file of the digital media content.

8. The content node of claim 6 , wherein the program instructions further direct the processing system to issue at least a first Hypertext Transfer Protocol (HTTP) range request for delivery to the origin server to retrieve the header portion and issue at least a second HTTP range request for deliver to the origin server to retrieve the content subset.

9. The content node of claim 6 , wherein the digital media content comprises a video, a live broadcast, or an audio file.

10. The content node of claim 6 , wherein the content subset of the digital media content comprises a timewise portion of the digital media content.

Assignments (2)
SECURITY INTEREST Recorded Feb 17, 2021
From: FASTLY, INC.
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AND COLLATERAL AGENT
Reel/Frame 055316/0616 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 5, 2014
From: BASILE, STEPHEN
To: FASTLY INC.
Reel/Frame 033039/0396 →
Continuity (2)
Provisional Application 61934053 · Jan 31, 2014
Related Publication 20150222681A1 · Aug 6, 2015