We consider the problem of minimizing the bandwidth needed by media-on-demand servers that use stream merging. We consider the on-line case where client requests are not known ahead of time. To facilitate stream merging, clients have the ability to receive data from two streams simultaneously and can buffer up to half of a full stream. We present a new family of on-line stream merging algorithms called dynamic tree algorithms. The bandwidth requirements of the best of these, the dynamic Fibonacci tree algorithms, are within a factor of the minimum between log φ ( n)+ O(1) and log φ (1/(2 D))+ O(1) from the off-line optimal, where n is the number of requests, D is the guaranteed maximum start-up delay measured as a fraction of the time for a full stream, and φ=(1+ 5 )/2 . The new on-line algorithms use a dynamic Fibonacci tree to control how new arrivals should merge with existing streams. Empirical studies show that the dynamic Fibonacci tree algorithms perform much better than indicated by the analysis.