  Most client hosts are equipped with multiple network interfaces (e.g., WiFi
and cellular networks). Simultaneous access of multiple interfaces can
significantly improve the users' quality of experience (QoE) in video
streaming. An intuitive approach to achieve it is to use Multi-path TCP
(MPTCP). However, the deployment of MPTCP, especially with link preference,
requires OS kernel update at both the client and server side, and a vast amount
of commercial content providers do not support MPTCP. Thus, in this paper, we
realize a multi-path video streaming algorithm in the application layer
instead, by considering Scalable Video Coding (SVC), where each layer of every
chunk can be fetched from only one of the orthogonal paths. We formulate the
quality decisions of video chunks subject to the available bandwidth of the
different paths, chunk deadlines, and link preferences as an optimization
problem. The objective is to to optimize a QoE metric that maintains a tradeoff
between maximizing the playback rate of every chunk and ensuring fairness among
chunks. The QoE is a weighted some of the following metrics: skip/stall
duration, average playback rate, and quality switching rate. However, the
weights are chosen such that pushing more chunks to the same quality level is
more preferable over any other choice. Even though the formulation is a
non-convex discrete optimization, we show that the problem can be solved
optimally with a polynomial complexity in some special cases. We further
propose an online algorithm where several challenges including bandwidth
prediction errors, are addressed. Extensive emulated experiments in a real
testbed with real traces of public dataset reveal the robustness of our scheme
and demonstrate its significant performance improvement compared to other
multi-path algorithms.
