IP Library › Granted Patent US 10,326,813
Granted Patent B2
US 10,326,813 · App. 15/157,817 · Granted Jun 18, 2019

Processing of live multimedia content and/or data streams over a communication network

Inventors: Akos Gyimesi (Budapest, HU); Gábor Nyerges (Veresegyház/Pest, HU); Gergely Hodicska (Budapest, HU); József Péter Kapusi (Budapest, HU); Balázs Vida (Pomáz/Pest, HU); József Tamás Ecsédi (Szentes/Csongrád, HU); Gyula Fehér (Budapest, HU); Zoltán Attila Németh (Budapest, HU); Sándor Lovász (Budapest, HU); Dávid Simon (Budapest, HU)
Assignee: International Business Machines Corporation
H04L65/602H04L65/4084H04L67/2842H04L69/14
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,326,813
App. No.
15/157,817
Granted
Jun 18, 2019
Kind
B2
Abstract

A method and associated device for streaming multimedia data over a communication network. Data associated with live multimedia content is received. Portions of the data are processed into data chunks. Each data chunk is associated with the live multimedia content. A request is received for the live multimedia content. The data chunks associated with the live multimedia content are transmitted over the communication network, in response to the request for the live multimedia content.

Claims (47)

1. A method for streaming multimedia data over a communication network, said method comprising:

directly receiving, from a content provider by an ingest server of a chunk processing architecture via one or more processors, live multimedia content being broadcast by the content provider;

dividing, by the ingest server via the one or more processors, the received live multimedia content into multiple data chunks, said dividing comprising generating the multiple data chunks in real time as the live multimedia content is being received, said generated multiple data chunks collectively comprising the live multimedia content, each generated data chunk of the multiple data chunks having a first chunk size;

associating, by a chunk server of the chunk processing architecture via the one or more processors, each data chunk having the first chunk size with a respective portion of the live multimedia content, said ingest server and said chunk server being different hardware servers within the chunk processing architecture;

indexing, by the ingest server via the one or more processors, each data chunk having the first chunk size according to a time associated with the live multimedia content such that each data chunk having the first chunk size is associated with a unique time at which each data chunk having the first chunk size begins;

storing, by the chunk processing architecture via the one or more processors, the data chunks having the first chunk size in a storage within the chunk processing architecture in real time as the data chunks having the first chunk size are being generated, said storage being a database or a cache;

at a current time during said receiving the live multimedia content and during said storing the data chunks having the first chunk size, directly receiving, by the chunk server from a Content Delivery Network (CDN) via the one or more processors, a request for the live multimedia content starting at one stored data chunk having the first chunk size that begins at a prior time that precedes the current time, said receiving the request by the chunk server having occurred after the CDN had received the request originating from a client device;

in response to said receiving the request by the chunk server, converting by the chunk server via the one or more processors, the stored data chunks having the first chunk size, starting at the one stored data chunk, to a plurality of data chunks having a second chunk size that differs from the first chunk size; and

directly transmitting, by the chunk server to the CDN via the one or more processors, the data chunks having the second chunk size, for subsequent transmission of the data chunks having the second chunk size from the CDN to the client device over the communication network.

2. The method of claim 1 , wherein said storing the data chunks having the first chunk size comprises storing the data chucks having the first chunk size in the storage in a universal or unified format independent of a format and a size associated with the client device that requested the multimedia content.

3. The method of claim 2 , wherein the transmitted data chunks having the second chunk size comprise different, non-contiguous portions of the live multimedia content spliced together.

4. The method of claim 1 , said method further comprising:

instantiating, by the one or more processors, resources required for processing the requested live multimedia content, in response to the request for the live multimedia content.

5. The method of claim 1 , wherein the live multimedia content is live video content.

6. The method of claim 1 , wherein the prior time of the one stored data chunk having the first chunk size is at an earlier time than the time to which any other data chunk of the stored data chunks having the first chunk size is associated.

7. The method of claim 1 , wherein the prior time of the one stored data chunk having the first chunk size is later than the time to which at least one other data chunk of the stored data chunks having the first chunk size is associated.

8. A computer system, comprising one or more processors and one or more computer readable hardware storage devices, said one or more hardware storage devices containing program code executable by the one or more processors to implement a method for streaming multimedia data over a communication network, said method comprising:

directly receiving, from a content provider by an ingest server of a chunk processing architecture via one or more processors, live multimedia content being broadcast by the content provider;

dividing, by the ingest server via the one or more processors, the received live multimedia content into multiple data chunks, said dividing comprising generating the multiple data chunks in real time as the live multimedia content is being received, said generated multiple data chunks collectively comprising the live multimedia content, each generated data chunk of the multiple data chunks having a first chunk size;

associating, by a chunk server of the chunk processing architecture via the one or more processors, each data chunk having the first chunk size with a respective portion of the live multimedia content, said ingest server and said chunk server being different hardware servers within the chunk processing architecture;

indexing, by the ingest server via the one or more processors, each data chunk having the first chunk size according to a time associated with the live multimedia content such that each data chunk having the first chunk size is associated with a unique time at which each data chunk having the first chunk size begins;

storing, by the chunk processing architecture via the one or more processors, the data chunks having the first chunk size in a storage within the chunk processing architecture in real time as the data chunks having the first chunk size are being generated, said storage being a database or a cache;

at a current time during said receiving the live multimedia content and during said storing the data chunks having the first chunk size, directly receiving, by the chunk server from a Content Delivery Network (CDN) via the one or more processors, a request for the live multimedia content starting at one stored data chunk having the first chunk size that begins at a prior time that precedes the current time, said receiving the request by the chunk server having occurred after the CDN had received the request originating from a client device;

in response to said receiving the request by the chunk server, converting by the chunk server via the one or more processors, the stored data chunks having the first chunk size, starting at the one stored data chunk, to a plurality of data chunks having a second chunk size that differs from the first chunk size; and

directly transmitting, by the chunk server to the CDN via the one or more processors, the data chunks having the second chunk size, for subsequent transmission of the data chunks having the second chunk size from the CDN to the client device over the communication network.

9. The computer system of claim 8 , wherein said storing the data chunks having the first chunk size comprises storing the data chucks having the first chunk size in the storage in a universal or unified format independent of a format and a size associated with the client device that requested the multimedia content.

10. The computer system of claim 9 , wherein the transmitted data chunks having the second chunk size comprise different, non-contiguous portions of the live multimedia content spliced together.

11. The computer system of claim 8 , said method further comprising:

instantiating, by the one or more processors, resources required for processing the requested live multimedia content, in response to the request for the live multimedia content.

12. The computer system of claim 8 , wherein the live multimedia content is live video content.

13. The computer system of claim 8 , wherein the prior time of the one stored data chunk having the first chunk size is at an earlier time than the time to which any other data chunk of the stored data chunks having the first chunk size is associated.

14. The computer system of claim 8 , wherein the prior time of the one stored data chunk having the first chunk size is later than the time to which at least one other data chunk of the stored data chunks having the first chunk size is associated.

15. A computer program product, comprising one or more computer readable hardware storage devices having computer readable program code stored therein, said program code containing instructions executable by one or more processors to implement a method for streaming multimedia data over a communication network, said method comprising:

directly receiving, from a content provider by an ingest server of a chunk processing architecture via one or more processors, live multimedia content being broadcast by the content provider;

dividing, by the ingest server via the one or more processors, the received live multimedia content into multiple data chunks, said dividing comprising generating the multiple data chunks in real time as the live multimedia content is being received, said generated multiple data chunks collectively comprising the live multimedia content, each generated data chunk of the multiple data chunks having a first chunk size;

associating, by a chunk server of the chunk processing architecture via the one or more processors, each data chunk having the first chunk size with a respective portion of the live multimedia content, said ingest server and said chunk server being different hardware servers within the chunk processing architecture;

indexing, by the ingest server via the one or more processors, each data chunk having the first chunk size according to a time associated with the live multimedia content such that each data chunk having the first chunk size is associated with a unique time at which each data chunk having the first chunk size begins;

storing, by the chunk processing architecture via the one or more processors, the data chunks having the first chunk size in a storage within the chunk processing architecture in real time as the data chunks having the first chunk size are being generated, said storage being a database or a cache;

at a current time during said receiving the live multimedia content and during said storing the data chunks having the first chunk size, directly receiving, by the chunk server from a Content Delivery Network (CDN) via the one or more processors, a request for the live multimedia content starting at one stored data chunk having the first chunk size that begins at a prior time that precedes the current time, said receiving the request by the chunk server having occurred after the CDN had received the request originating from a client device;

in response to said receiving the request by the chunk server, converting by the chunk server via the one or more processors, the stored data chunks having the first chunk size, starting at the one stored data chunk, to a plurality of data chunks having a second chunk size that differs from the first chunk size; and

directly transmitting, by the chunk server to the CDN via the one or more processors, the data chunks having the second chunk size, for subsequent transmission of the data chunks having the second chunk size from the CDN to the client device over the communication network.

16. The computer program product of claim 15 , wherein said storing the data chunks having the first chunk size comprises storing the data chucks having the first chunk size in the storage in a universal or unified format independent of a format and a size associated with the client device that requested the multimedia content.

17. The computer program product of claim 15 , said method further comprising:

instantiating, by the one or more processors, resources required for processing the requested live multimedia content, in response to the request for the live multimedia content.

18. The computer program product of claim 15 , wherein the live multimedia content is live video content.

19. The computer program product of claim 15 , wherein the prior time of the one stored data chunk having the first chunk size is at an earlier time than the time to which any other data chunk of the stored data chunks having the first chunk size is associated.

20. The computer program product of claim 15 , wherein the prior time of the one stored data chunk having the first chunk size is later than the time to which at least one other data chunk of the stored data chunks having the first chunk size is associated.

Assignments (5)
CORRECTIVE ASSIGNMENT TO CORRECT THE SPELLING OF GERGELY HODICSKA'S NAME AND REPLACE ASSIGNMENT DOCUMENT PREVIOUSLY RECORDED ON REEL 039391 FRAME 21. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 30, 2020
From: GYIMESI, AKOS; NYERGES, GABOR; HODICSKA, GERGELY; KAPUSI, JÓZSEF PÉTER; VIDA, BALÁZS; ECSÉDI, JÓZSEF TAMÁS; FEHÉR, GYULA; NÉMETH, ZOLTÁN ATTILA; LOVÁSZ, SÁNDOR; SIMON, DÁVID
To: USTREAM, INC.
Reel/Frame 054235/0843 →
NUNC PRO TUNC ASSIGNMENT Recorded Sep 28, 2020
From: USTREAM, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 053899/0807 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 13, 2016
From: USTREAM, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 040004/0275 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED ON REEL 038860 FRAME 0805. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jul 19, 2016
From: GYIMESI, AKOS; NYERGES, GABOR; HODIESKA, GERGELY; KAPUSI, JOZSEF PETER; VIDA, BALAZS; ECSEDI, JOZSEF TAMAS; FEHER, GYULA; NEMETH, ZOLTAN ATTILA; LOVASZ, SANDOR; SIMON, DAVID
To: USTREAM, INC.
Reel/Frame 039391/0021 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2016
From: GYIMESI, AKOS; NYERGES, GABOR; HODIESKA, GERGELY; KAPUSI, JOZSEF PETER; VIDA, BALAZS; ECSEDI, JOZSEF TAMAS; FEHER, GYULA; NEMETH, ZOLTAN ATTILA; LOVASZ, SANDOR; SIMON, DAVID
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038860/0805 →
Continuity (2)
Provisional Application 62165515 · May 22, 2015
Related Publication 20160344781A1 · Nov 24, 2016
Cited By (2)
US 12,250,226 US 12,262,072