Disclosed is a method and system to deliver real-time video data over the
Internet in a bandwidth efficient manner. A streaming processor receives
raw video data from a video source and communicates a compressed version
of the video data to a reflector network. The video data is compress by
grouping pixels into blocks and comparing blocks of adjacent frames of
video data to identify any changes. Only blocks that have been changed
are transmitted to the reflector network. In addition, if a block has
been changed in a manner to create a previously transmitted block, then
only an identification index for the block is transmitted. The actual
content of the block can then be recreated by comparing the index to a
list of previously received blocks. The reflector network provides the
compressed video stream to multiple clients through a series of
reflectors. Each client can customize the quality of the video stream
received by requesting a full-stream of a sub-stream from the reflector
network.