Streaming video over HTTP/TCP is rapidly becoming the industry standard for mobile video services. To compensate for rapid bandwidth fluctuations in mobile networks the industry is progressively migrating towards adaptive video streaming where multiple bitrate versions of a video are dynamically selected at runtime to adapt to the changing network condition. Surprisingly, two of the leading adaptive streaming systems in use today can underperform even constant-rate streaming. Further analysis revealed two bottlenecks, namely the rate control algorithm and the segmented HTTP delivery protocol. To tackle these bottlenecks this work: (a) proposes a new quality-driven rate controller to balance video quality against streaming performance; (b) proposes a novel predictive transmission technique to improve bandwidth utilization; and (c) presents a practical method to enable streaming applications to exploit transport-layer information for client buffer occupancy estimation. Trace-driven emulation experiments showed that the proposed methods outperform Microsoft’s Smooth Streaming by 300 %, Apple’s HLS by 167 %, and a recently proposed adaptive streaming algorithm by 60 %. This was further verified by experimental results obtained from production 3G/HSPA networks. The proposed methods can be implemented either in the sender/proxy-based or at the client, and thus can be readily deployed in today’s mobile networks.