Live video broadcasting on distributed networks
First Claim
1. A method for distributing a live program over a distributed network, the method being performed by a server and comprising:
- processing a data stream representing the live program into a plurality of substreams;
selecting a set of seeding devices from a plurality of devices in the distributed network to each receive at least one substream of the plurality of substreams; and
transmitting the plurality of substreams to the set of seeding devices with a sourcing instruction, wherein the sourcing instruction instructs the set of seeding devices to transmit specific substreams of the plurality of sub streams to specific devices of others of the plurality of devices as the plurality of substreams are received, the set of seeding devices further transmitting the sourcing instruction to the specific devices of the others of the plurality of devices, the sourcing instruction instructing the specific devices of the others of the plurality of devices to transmit one or more first substreams of the plurality of substreams to still other devices of the plurality of devices.
4 Assignments
0 Petitions
Accused Products
Abstract
The techniques related to providing a live program over the Internet are described. According to one aspect of the techniques, a data stream representing a live program is preprocessed to produce a plurality of substreams, each of the substreams comprising decimated samples of the data stream. The number of substreams is relatively large so that the bandwidth requirement for delivering one of the substreams is relatively low. With a group of seeding boxes receiving the substreams, a group of boxes in services are designated to receive the substreams from the seeding boxes, each of these boxes including the seeding boxes is able to support multiple outbound streams (e.g., greater than 2) so that there are enough data suppliers to service the ordering boxes or colonize more boxes to become the data suppliers. As a result, a live program can be timely serviced by peer boxes, significantly reducing the computation and bandwidth burdens on a server(s).
187 Citations
20 Claims
-
1. A method for distributing a live program over a distributed network, the method being performed by a server and comprising:
-
processing a data stream representing the live program into a plurality of substreams; selecting a set of seeding devices from a plurality of devices in the distributed network to each receive at least one substream of the plurality of substreams; and transmitting the plurality of substreams to the set of seeding devices with a sourcing instruction, wherein the sourcing instruction instructs the set of seeding devices to transmit specific substreams of the plurality of sub streams to specific devices of others of the plurality of devices as the plurality of substreams are received, the set of seeding devices further transmitting the sourcing instruction to the specific devices of the others of the plurality of devices, the sourcing instruction instructing the specific devices of the others of the plurality of devices to transmit one or more first substreams of the plurality of substreams to still other devices of the plurality of devices. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A system for distributing a live program over a distributed network, the system comprising:
-
a server; and a non-transitory computer-readable medium storing instructions configured to run on the server such that the server is configured to; generate a plurality of substreams comprising N substreams that are created from a data stream representing the live program, N being a finite integer and each of the N substreams including decimated samples of the live program, wherein a number of the N substreams are based, at least in part, on an availability of bandwidth across a plurality of devices in the distributed network; select a set of seeding devices from the plurality of devices in the distributed network to each receive at least one substream of the plurality of substreams; and transmit the plurality of substreams to the set of seeding devices with a sourcing instruction, wherein the sourcing instruction instructs the set of seeding devices to transmit specific substreams of the plurality of substreams to specific devices of others of the plurality of devices as the plurality of substreams are received, the set of seeding devices further transmitting the sourcing instruction to the specific devices of the others of the plurality of devices, the sourcing instruction instructing the specific devices of the others of the plurality of devices to transmit one or more first substreams of the plurality of substreams to still other devices of the plurality of devices. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification