IP Library Granted Patent US 8,145,782
Granted Patent B2
US 8,145,782 · App. 12/976,883 · Granted Mar 27, 2012

Dynamic chunking for media streaming

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 8,145,782
App. No.
12/976,883
Granted
Mar 27, 2012
Kind
B2
Abstract

Systems and methods for chunking a media file for streaming over a network are disclosed. These systems and methods provide for receiving requests for chunks of a media file and responding to these requests by generating the requested chunks dynamically. The chunks can then be provided to the requesting entity. These systems and methods, which can be utilized with a dynamic file index generator, enable a high degree of flexibility in streaming chunked media files and preclude the need to chunk the media files and store the chunks prior to streaming.

Claims (82)

1. A server for communicating, with a network, a media file having a plurality of segments of a certain length, the server comprising:

an interface for communicating with the network;

a memory configured to store:

one or more of the plurality of media file segments; and

a plurality of instructions for communicating the media file over the network;

a processor communicatively coupled with the memory and the interface, the processor further configured to execute the plurality of instructions, the plurality of instructions configured to cause the server to:

receive, with the interface, a request for a first segment of the media file, the first segment comprising one of a plurality of separately-addressable segments of the media file;

dynamically determine a starting point and an ending point of the requested first segment of the media file, wherein the determination is based, at least in part, on the request for the first segment of the media file;

retrieve a first portion of the media file from the memory, wherein:

the first portion of the media file includes at least the requested first segment of the media file, and

the first portion of the media file includes a first format of a first container;

generate the requested first segment of the media file, wherein:

the requested first segment of the media file has a second format of the first container, and

the requested first segment of the media file is generated, at least in part, from the first portion of the media file without transcoding;

provide, with the interface, the requested first segment of the media file;

receive, with the interface, a request for a second segment of the media file, the second segment comprising one of the plurality of separately-addressable segments of the media file;

dynamically determine a starting point and an ending point of the requested second segment of the media file, wherein the determination is based, at least in part, on the request for the second segment of the media file;

retrieve a second portion of the media file from the memory, wherein:

the second portion of the media file includes at least the requested second segment of the media file, and

the second portion of the media file includes the first format of a second container;

generate the requested second segment of the media file, wherein:

the requested second segment of the media file has the second format of the second container, and

the requested second segment of the media file is generated, at least in part, from the second portion of the media file without transcoding; and

provide, with the interface, the requested second segment of the media file;

wherein the receiving the requests for the first and second segments of the media file and the providing the requested first and second segments of the media file occur during playback of the media file by a device communicatively linked to the network.

2. The server of claim 1 further having instructions configured to cause the server to retrieve the first and second portions of the media file with the interface and store the first and second portions of the media file in the memory.

3. The server of claim 1 wherein the second portion of the media file is the same as the first portion of the media file.

4. The server of claim 1 wherein the requested first segment of the media file and the requested second segment of the media file comprise contiguous segments of the media file.

5. The server of claim 1 further configured to receive the requests for the first and second segments of the media file from a Content Delivery Network (CDN).

6. The server of claim 1 wherein the plurality of segments of a first media file have a different length than a plurality of segments of a second media file.

7. A method for providing, with a data network, a plurality of segments of a media file, the segments having a certain size, the method comprising:

receiving a request for a first segment of the media file, the first segment comprising one of a plurality of separately-addressable segments of the media file;

dynamically determining a starting point and an ending point of the requested first segment of the media file, wherein the determination is based, at least in part, on the request for the first segment of the media file;

retrieving a first portion of the media file, wherein:

the first portion of the media file includes at least the requested first segment of the media file, and

the first portion of the media file includes a first format of a first container;

generating the requested first segment of the media file, wherein:

the requested first segment of the media file has a second format of the first container, and

the requested first segment of the media file is generated, at least in part, from the first portion of the media file without transcoding;

providing the requested first segment of the media file;

receiving a request for a second segment of the media file, the second segment comprising one of the plurality of separately-addressable segments of the media file;

dynamically determining a starting point and an ending point of the requested second segment of the media file, wherein the determination is based, at least in part, on the request for the second segment of the media file;

retrieving a second portion of the media file, wherein:

the second portion of the media file includes at least the requested second segment of the media file, and

the second portion of the media file includes the first format of a second container;

generating the requested second segment of the media file, wherein:

the requested second segment of the media file has the second format of the second container, and

the requested second segment of the media file is generated, at least in part, from the second portion of the media file without transcoding; and

providing the requested second segment of the media file;

wherein the receiving the requests for the first and second segments of the media file and the providing the requested first and second segments of the media file occur during playback of the media file by a device communicatively linked to the data network.

8. The method of claim 7 wherein the first portion of the media file is the same as the second portion of the media file.

9. The method of claim 7 wherein the requests for the first and second segments of the media file are received from a CDN.

10. The method of claim 9 wherein the requested first and second segments of the media file are provided to the CDN.

11. The method of claim 7 wherein the data network comprises a first network and the retrieving at least a portion of the media file from a data origin occurs over a second network.

12. A system for communicating, with a network, a media file having a plurality of segments of a certain size, the system comprising:

a data storage configured to store the media file having a first format;

a processing server communicatively coupled with the data storage, the processing server configured to:

receive, with a network, a request for a first segment of the media file, the first segment comprising one of a plurality of separately-addressable segments of the media file;

dynamically determine a starting point and an ending point of the requested first segment of the media file, wherein the determination is based, at least in part, on the request for the first segment of the media file;

retrieve a first portion of the media file from the data storage, wherein:

the first portion of the media file includes at least the requested first segment of the media file, and

the first portion of the media file includes the first format of a first container;

generate the requested first segment of the media file, wherein:

the requested first segment of the media file has a second format of the first container, and

the requested first segment of the media file is generated, at least in part, from the first portion of the media file without transcoding;

provide, with a network, the requested first segment of the media file;

receive, with a network, a request for a second segment of the media file, the second segment comprising one of the plurality of separately-addressable segments of the media file;

dynamically determine a starting point and an ending point of the requested second segment of the media file, wherein the determination is based, at least in part, on the request for the second segment of the media file;

retrieve a second portion of the media file from the data storage, wherein:

the second portion of the media file includes at least the requested second segment of the media file, and

the second portion of the media file includes the first format of a second container;

generate the requested second segment of the media file, wherein:

the requested second segment of the media file has the second format of the second container, and

the requested second segment of the media file is generated, at least in part, from the second portion of the media file without transcoding; and

provide, with the interface, the requested second segment of the media files;

wherein the receiving the requests for the first and second segments of the media file and the providing the requested first and second segments of the media file occur during playback of the media file by a device communicatively linked to the network.

13. The system of claim 12 further comprising a media caching server configured to:

send the requests for the first and second segments of the media file with the network to the processing server;

receive the requested first and second segments of the media file with the network from the processing server; and

store the requested first and second segments of the media file in a memory.

14. The system of claim 13 wherein the media caching server is further configured to provide the requested first and second segments of the media file to a device communicatively coupled with the media caching server.

15. The system of claim 13 configured such that the media caching server will not send the requests for the a segment of the media file with the network to the processing server if the media caching server has the segment of the media file stored in the memory.

Assignments (5)
CHANGE OF NAME Recorded Mar 31, 2026
From: ADEIA MEDIA HOLDINGS LLC
To: ADEIA MEDIA HOLDINGS INC.
Reel/Frame 075304/0073 →
SECURITY INTEREST Recorded May 28, 2025
From: ADEIA INC. (F/K/A XPERI HOLDING CORPORATION); ADEIA HOLDINGS INC.; ADEIA MEDIA HOLDINGS INC.; ADEIA IMAGING LLC; ADEIA MEDIA LLC; ADEIA MEDIA SOLUTIONS INC.; ADEIA SEMICONDUCTOR BONDING TECHNOLOGIES INC.; ADEIA TECHNOLOGIES INC.; ADEIA GUIDES INC.; ADEIA SOLUTIONS LLC; ADEIA SEMICONDUCTOR ADVANCED TECHNOLOGIES INC.; ADEIA SEMICONDUCTOR SOLUTIONS LLC; ADEIA SEMICONDUCTOR INTELLECTUAL PROPERTY LLC; ADEIA SEMICONDUCTOR TECHNOLOGIES LLC; ADEIA PUBLISHING INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 071454/0343 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 4, 2024
From: BRIGHTCOVE INC.
To: ADEIA MEDIA HOLDINGS LLC
Reel/Frame 067609/0435 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 8, 2015
From: CACTI ACQUISITION LLC
To: BRIGHTCOVE INC.
Reel/Frame 034745/0158 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 30, 2014
From: UNICORN MEDIA. INC.
To: CACTI ACQUISITION LLC
Reel/Frame 032792/0728 →