High-quality multimedia streaming applications have strict and often contradicting requirements for network characteristics. Data should be transported in real-time, which restricts usage of retransmissions and buffering. On the other hand, quality should be kept as high as possible. This is why streaming systems should adapt to different network conditions when problems occur. Especially in a heterogeneous IP network infrastructure comprising both wired and wireless components it is often very difficult to achieve optimal trade-off between latency, quality and network overhead, because selection of optimal strategy for end-to-end streaming depends highly on the type of the underlying network. In this paper we address several strategies to optimize streaming applications for different network conditions. In addition, we propose performance evaluation mechanisms to find the bottleneck in the network with minimal modifications to the current mainstream protocol implementations. We also outline an example streaming system utilizing the proposed adaptive technologies to optimize its performance in varying network conditions.