Virtualization in adaptive stream creation and delivery
First Claim
Patent Images
1. A streaming server for receiving a request from a client to play a content stream and for providing the content stream through a network to the client, the streaming server comprising:
- a random access memory unit configured to store a plurality of data structures, wherein the streaming server is configured to receive the content stream, segment the content stream into the plurality of data structures rather than segment files, and store the plurality of data structures in the random access memory unit, wherein the plurality of data structures encompass pointers which correspond to time codes and a reference to the unsegmented content stream;
a processing unit configured to generate a manifest that includes a plurality of references corresponding to a plurality of fragments of the content stream;
wherein the streaming server is configured to send the manifest to the client;
wherein the streaming server is configured to receive a further request from the client to fetch one of the plurality of fragments of the content stream;
wherein the processing unit is further configured to obtain bytes associated with the requested fragment from the data structures stored in the random access memory unit, wherein the processing unit uses a start time and a stop time associated with the requested fragment and computes the corresponding pointers associated with the plurality of data structures to lookup bytes from the one or more data structures associated with the requested fragment; and
wherein the streaming server is configured to send the bytes associated with the requested fragment as a segment file to the client.
1 Assignment
0 Petitions
Accused Products
Abstract
An adaptive streaming server, a method, and a system are described herein that create a content stream to be delivered to one or more clients by segmenting the content into data structures which are stored in random access memory (volatile storage) rather than segmenting the content into segment files which are stored on a disk or database (non-volatile storage).
17 Citations
20 Claims
-
1. A streaming server for receiving a request from a client to play a content stream and for providing the content stream through a network to the client, the streaming server comprising:
-
a random access memory unit configured to store a plurality of data structures, wherein the streaming server is configured to receive the content stream, segment the content stream into the plurality of data structures rather than segment files, and store the plurality of data structures in the random access memory unit, wherein the plurality of data structures encompass pointers which correspond to time codes and a reference to the unsegmented content stream; a processing unit configured to generate a manifest that includes a plurality of references corresponding to a plurality of fragments of the content stream; wherein the streaming server is configured to send the manifest to the client; wherein the streaming server is configured to receive a further request from the client to fetch one of the plurality of fragments of the content stream; wherein the processing unit is further configured to obtain bytes associated with the requested fragment from the data structures stored in the random access memory unit, wherein the processing unit uses a start time and a stop time associated with the requested fragment and computes the corresponding pointers associated with the plurality of data structures to lookup bytes from the one or more data structures associated with the requested fragment; and wherein the streaming server is configured to send the bytes associated with the requested fragment as a segment file to the client. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method implemented by a streaming server for providing a content stream through a network to a client, the method comprising:
-
receiving a request from the client to play the content stream; receiving the content stream; segmenting the content stream into a plurality of data structures rather than segment files, where the plurality of data structures encompass pointers which correspond to time codes and a reference to the unsegmented content stream; storing the plurality of data structures in a random access memory unit; generating a manifest that includes a plurality references corresponding to a plurality of fragments of the content stream; sending the manifest to the client; receiving a further request from the client to fetch one of the fragments corresponding to the content stream; obtaining bytes associated with the requested fragment from the data structures stored in the random access memory unit by using a start time and a stop time associated with the requested fragment and computing the corresponding pointers associated with the plurality of data structures to lookup bytes from the one or more data structures associated with the requested fragment; and sending the bytes associated with the requested fragment as a segment file to the client. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification