GroupCast

In this paper, we propose a preference-aware cooperative video streaming system for videos encoded using scalable video coding (SVC). In the proposed system, the collaborating users are interested in watching a video together on a shared screen. However, the willingness of each user to cooperate is subject to her own constraints such as user data plans. Using SVC, videos are segmented into chunks and each chunk is encoded using layers, where each layer can be fetched through any of the collaborating users. We formulate the problem of finding the optimal quality decisions and fetching policy of the SVC layers of video chunks subject to the available bandwidth, chunk deadlines, and cooperation willingness of the different users as an optimization problem. The objective is to optimize a QoE metric that maintains a trade-off between maximizing the playback rate of every chunk and ensuring fairness among all chunks to achieve the minimum skip (stall) duration without violating any of the imposed constraints. We propose an offline algorithm to solve the non-convex optimization problem when the bandwidth prediction is non-causally known. This algorithm has a run-time complexity that is polynomial in the video length and the number of collaborating users. Furthermore, we propose an online version of the algorithm for practical scenarios, where erroneous bandwidth prediction for a short window is used. Real implementation with android devices using SVC encoded video and a public dataset of bandwidth traces reveals the robustness and performance of the proposed algorithm and shows that the algorithm significantly outperforms round robin-based mechanisms in terms of avoiding skips/stalls and fetching video chunks at their highest quality possible.