Live streaming to mobile platforms has become very popular. This technology allows a large number of viewers to watch the same video at the same time, so the data must be widely distributed. Viewers on mobile devices are connected to wireless networks and must receive the video data with minimal delay. These requirements make mobile live streaming a challenging task.
One technique for mobile live streaming is to group peers into clusters based on their proximity to increase the data exchange efficiency and handle the scalability issues of peer maintenance. The exchange protocol between peers is RTP. RTP sessions are split into a number of partial streams. The splitting mechanism has to allow real-time reassembling of the original media session at the receiver.
For each cluster, one cluster leader and one or more backup cluster leaders are assigned. Cluster leaders are used to manage peers inside the cluster and to connect new peers joining the cluster. Each peer periodically announces its existence to the cluster leader as well as all peers from which it has received RTP packets. This helps reduce unnecessary data transmission since RTP is based on UDP, and the sending peer does not know that the receiving peer is still in the network.
A new peer can choose a cluster to join based on the round trip time between various cluster leaders and itself. The cluster leader inserts the new peer into its peer list and sends it a list of other peers from which the media data can be acquired. The new peer picks one of the other peers to stream from.
When too many peers are in the cluster to be handled by a cluster leader, the cluster is split into two smaller clusters. The cluster leader assigns one of its backup cluster leaders to become the cluster leader for the new cluster. The new cluster leader becomes in charge of peers redirected to the cluster from the previous large one. When a cluster becomes too small, it merges with another small cluster.