Patent ID: 8902967

Claim:
A system, comprising: a first media engine running on a host associated with a sender, which in operation, generates and encodes a type one media stream; transmits the encoded type one media stream to a distribution engine; a plurality of first hosts associated with first viewers, each first host associated with each first viewer comprising: a second media engine running on each first host associated with each first viewer, which in operation, accepts, decodes, and displays the type one media stream to the first viewer in real time; a media transcoding engine running on each first host associated with each first viewer, which in operation, transcodes a portion of the type one media stream into a portion of a type two media stream, wherein the type one media stream is subdivided into a plurality of portions, each portion of the type one media stream being assigned to one first host associated with one first viewer, the portion of the type one media stream being one of the plurality of portions; transmits the portion of type two media stream to the distribution engine; said distribution engine, which in operation, accepts and provides the portions of type one media stream to second media engine of the first host associated with the first viewer in real time; accepts and broadcasts the portions of the type two media stream from the media transcoding engine running on each first host associated with the first viewer to one or more second hosts associated with one or more second viewers; a third media engine running on each of the second hosts associated with the second viewers, which in operation, accepts, decodes, and displays the portions of the type two media stream to the second viewer in real time; and a viewer evaluation engine, which in operation, receives processing power and bandwidth information of a plurality of hosts, the plurality of hosts comprising the plurality of first hosts associated with the plurality of first viewers and the second host associated with the second viewer; identifies, based on the received processing power and bandwidth information of the plurality of hosts, the second host associated with the second viewer, and determines that the second host has enough processing power and bandwidth to process the portions of the type two media stream and lacks enough processing power and bandwidth to process the type one media stream; and identifies, based on the received processing power and bandwidth information of the plurality of hosts, the plurality of first hosts associated with the first viewers, and determines that each first host has enough processing power and bandwidth to process the type one media stream and to transcode at least one portion of the type one media stream to the portion of the type two media stream and that each first host lacks enough processing power and bandwidth to transcode the entire type one media stream to the entire type two media stream.