Streaming video using erasure encoding
Abstract
A system, apparatus and method for presenting a video over a network using erasure codes is described. According to one system and method, the network has nodes, portions of a video being encoded as encoded portions each having sections, the sections for each encoded portion being distributed among segments, the segments being distributed among the nodes; an apparatus including a network interface coupled to the network; a control system coupled to the network interface and configured to initiate a video request and communicate with a subset of the nodes to receive a subset of the segments; and a decoder coupled to the network interface and configured to decode a subset of the sections for each of the encoded portions to generate the portions of the video; and a presentation device coupled to the apparatus, the presentation device presenting the portions of the video.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A method for distributing media comprising:
dividing at least a slice of a video file into a plurality of portions; encoding each portion of the plurality of portions to generate encodings including a plurality of sections; defining segments each including a section from each encoding of the plurality of encodings; distributing each segment to a different node of a first group of nodes; receiving, by a server, a request for the video file from a first node; and transmitting, by the server, an assignment of the first group to the first node.
2 . The method of claim 1 , wherein the at least a slice of the video file is a first slice of the video file, the video file comprising a second slice, the segments being first segments, the method comprising:
transmitting second segments encoding the second slice to a second group of nodes; and transmitting an assignment to the second group of nodes to the first node just before playback of the first segment is completed.
3 . The method of claim 2 , wherein the first and second slice have approximately the same playback duration.
4 . The method of claim 1 , wherein a number of the segments is such that the cumulative data transmission rate of the first group of nodes to the first node is at least as fast as the playback rate of the video file.
5 . The method of claim 1 , wherein the number of segments is approximately equal to a ratio of a download bandwidth and an upload bandwidth for a network coupling the server, first node, and the first group of nodes.
6 . The method of claim 1 , wherein encoding each portion of the plurality of portions to generate encodings including a plurality of sections further comprises encrypting each portion of the plurality of portions.
7 . The method of claim 1 , wherein encoding each portion of the plurality of portions to generate encodings including a plurality of sections comprises performing erasure encoding of each portion of the plurality of portions.
8 . The method of claim 1 , wherein encoding each portion of the plurality of portions to generate encodings including a plurality of sections comprises performing erasure encoding such that less than all of the plurality of sections of each encoding are required to recreate a corresponding portion of the plurality of portions.
9 . The method of claim 1 , further comprising:
receiving, by the first node, the assignment of the first group of nodes; requesting, by the first node, the segments from the first group of nodes; receiving, by the first node, the segments from the first group of nodes; decoding, by the first node, the plurality of portions from the plurality of sections included in the segments; displaying, by the first node, video according to the plurality of portions.
10 . The method of claim 1 , wherein the segments include primary segments and at least one backup segment.
11 . A system for distributing media comprising one or more processors and one or more memory devices operably coupled to the one or more processors, the one or more memory devices storing executable data effective to cause the one or more processors to:
divide at least a slice of a video file into a plurality of portions; encode each portion of the plurality of portions to generate encodings including a plurality of sections; define segments each including a section from each encoding of the plurality of encodings; distribute each segment to a different node of a first group of nodes; receive, by a server, a request for the video file from a first node; and transmit, by the server, an assignment of the first group to the first node.
12 . The system of claim 11 , wherein the at least a slice of the video file is a first slice of the video file, the video file comprising a second slice, the segments being first segments, the executable data being further effective to cause the one or more processors to:
transmit second segments encoding the second slice to a second group of nodes; and transmit an assignment to the second group of nodes to the first node just before playback of the first segment is completed.
13 . The system of claim 12 , wherein the first and second slice have approximately the same playback duration.
14 . The system of claim 11 , wherein a number of the segments is such that the cumulative data transmission rate of the first group of nodes to the first node is at least as fast as the playback rate of the video file.
15 . The system of claim 11 , wherein the number of segments is approximately equal to a ratio of a download bandwidth and an upload bandwidth for a network coupling the server, first node, and the first group of nodes.
16 . The system of claim 11 , wherein the executable data is further effective to encode each portion of the plurality of portions to generate encodings including a plurality of sections by encrypting each portion of the plurality of portions.
17 . The system of claim 11 , wherein the executable data is further effective to encode each portion of the plurality of portions to generate encodings including a plurality of sections by performing erasure encoding.
18 . The system of claim 11 , wherein the executable data is further effective to encode each portion of the plurality of portions to generate encodings including a plurality of sections by performing erasure encoding such that less than all of the plurality of sections of each encoding are required to recreate a corresponding portion of the plurality of portions.
19 . The system of claim 1 , wherein the first node is operable to:
receive the assignment of the first group of nodes; request the segments from the first group of nodes; receive the segments from the first group of nodes; decode the plurality of portions from the plurality of sections included in the segments; and display video according to the plurality of portions.
20 . The system of claim 11 , wherein the segments include primary segments and at least one backup segment.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.